Открываю новую рубрику на блоге «Стартапы (startups)» (от англ. start-up — запускать), речь пойдет о запуске интернет-проектов, архитектуре и масштабировании сайтов, финансовой и организационной стороне деятельности.
И первый пост будет на тему высоконагруженных (highload) интернет-проектов в режиме вопрос-ответ.
Отвечать на вопросы будет (Москва, Россия) – независимый консультант по масштабируемости и отказоустойчивости интернет-проектов, а так же автор блога .
1) Что считать «высоконагруженным» (highload) интернет-проектом?
Какой-либо формальной границы, естественно, не существует: кто-то называет таковыми только всем известных интернет-гигантов, а кто-то – любой сайт, с которым перестал справляться хостинг за 5$ в месяц. Реальная граница находится между этими крайностями, можно попробовать сформулировать её следующим образом: высоконагруженным интернет-проектом можно считать тот, которому потребовалось прибегнуть к нетривиальным техническим решениям для удовлетворения текущих или ожидаемых в ближайшем будущем потребностей своей аудитории.
Наверное многие ожидали увидеть в ответе на этот вопрос какую-то пороговую цифру запросов в секунду или хотя бы месячной или дневной аудитории, но это было бы не справедливо: в зависимости от специфики проекта за одним запросом может стоять как тривиальная операция (например статичный информационный сайт), так сложная работа, требующая обработки большого количества данных (поиск чего-либо, работа с медиа-файлами и пр.).
В большинстве случаев проект начинает чувствовать влияние нагрузки, когда изначальная (тривиальная) реализация функционала перестает справляться и команде разработчиков приходится прибегать к новым, менее очевидным, техническим решениям для поддержания работоспособности проекта при продолжающемся росте аудитории.
2) Какой хостинг следует выбирать молодым интернет-стартапам: облачные хостинг-решения, аренда выделенных серверов (dedicated) или покупать собственные сервера и размещать в дата-центрах (colocation)?
Этот вопрос скорее финансовый, чем технический. Если стартап находится на ранней стадии, то его основная задача – проверить идею, зачастую с очень примитивным прототипом, при минимальных финансовых вложениях. В таком случае выбор стоит между обычным (shared) хостингом (если прототип статичен или написан на PHP) и виртуальным (VPS, VDS или один инстанс «в облаках»). Выбор не сложный, так как нагрузки как таковой не предвидится и все определяет использование в прототипе технологий, не доступных на shared хостинге.
На поздних же стадиях, когда проект получил финансирование или уже начал зарабатывать самостоятельно, да, стоит задумываться о более долгосрочном «месте жительства» проекта. Первое о чем стоит подумать это не тип хостинга, а страна, где он будет располагаться. Основные аспекты, которые стоит учитывать: близость к целевой аудитории проекта (по сети, а не географически, что не всегда одно и то же), а также особенности законодательства страны в области ИТ. Именно из-за юридических, правоохранительных и прочих национальных особенностей многие (я в их числе) предпочитают хостинг в Европе для русскоязычных интернет-проектов.
Покупку серверов с colocation за границей провернуть не так просто именно с организационной точки зрения (не говоря о финансовой), так что у большинства выбор сводится к dedicated vs cloud. Облака удобны для тех, кто не способен спрогнозировать изменение спроса аудитории, но способен автоматизировать запуск и остановку дополнительных серверов и подключение их к обслуживанию интернет-проекта, плюс нужно быть готовыми переплачивать за данное удобство, особенно при размещении на территории США. Арендуемые железные сервера же хороши, когда у проекта стабильная предсказуемая нагрузка или когда идет работа с данными, существенно превышающими по объему доступную оперативную память.
