Хостинг для стартапа: конструктор, облака или свое железо?

ed3fb66af8164d599da7f393bc210bcb.jpg

Какой хостинг выбрать? Этим вопросом рано или поздно задается любой стартап. Ответ в каждом случае придется искать самостоятельно — оценивать плюсы-минусы, прикидывать риски и считать бюджет. Максимально упростить этот процесс и систематизировать виды хостингов и их особенности нам помог выпускник ФРИИ и основатель проекта AdminDivision.ru Егор Андреев, который помогает стартапам Акселератора ФРИИ масштабировать свою IT-инфраструктуру.

Описание задачи всегда начинается одинаково: есть написанный код сайта, его нужно разместить на каком-то хостинге, чтобы клиенты получили доступ. Классический «дедовский» вариант — купить сервер, настроить его и разместить на нем сайт — плох уже тем, что за корректной работой «железа», операционной системы и софта придется следить самостоятельно. У основателей нового проекта на это нет ни времени, ни ресурсов. Поэтому стартапы активно пытаются использовать другие виды хостинга, чтобы сэкономить время и деньги, особенно на старте проекта. И здесь начинается самое интересное: поскольку все предложения разные, они отличаются по цене, объему услуг, степени ответственности хостинг-провайдера и другим параметрам. Как разобраться? Для начала принять общее правило: чем больше работ возьмет на себя провайдер, тем меньше головной боли достанется стартапу. Но нужно учитывать, что в дополнение стартап получает более высокий прайс и отсутствие возможности настраивать систему самостоятельно. Далее следуют нюансы, специфические для каждого вида хостинга.

1. Конструктор сайтов


Примеры: tilda, wix, lpgenerator.
Примерный чек: $10-$50 в месяц.

48e6042c9ff24be2911a33dc9a76bfca.png

Это самый простой и заманчивый для стартапа вариант. Здесь поставщик услуги уже позаботился обо всем, вам даже не понадобится программист. Просто заходите, создаете свою страничку из шаблонов, нажимаете «сохранить» и все. Ваша страница видна миру — можно работать.

Такой формат идеален для посадочных страниц, сайтов-визиток, одностраничных сайтов с простейшей логикой (типа формы обратной связи или формы оплаты). Если ваш сайт должен быть многостраничным, иметь полноценную логику в виде каталога товаров и регистрации пользователей, а также другие дополнительные сервисы, то конструктор — не ваш оптимальный вариант. Лучше ищите другие виды хостинга.

2. Shared-хостинг


Еще его называют «Шаред» или просто «Хостинг».

Примеры: timeweb, masterhost, reg.ru.
Примерный чек: $2-$30 в месяц.

c5daf4c734f241099d928800e6cdea42.png

Самый дешевый вариант — разместить сайт на php. Shared-хостинг — это физически большой железный сервер, на котором созданы изолированные окружения для работы десятков и сотен клиентов хостинга. Вам выдается доступ к админке и логин/пароль для доступа к FTP. Вы выкладываете свой код — и он работает. При этом сотрудники хостинга (как правило, хмурые бородатые дяденьки) следят за тем, чтобы у вас не было проблем с «железом», операционной системой, базой данных, веб-сервером. Ваша зона ответственности — только код. Это значит, что вы не можете менять практически ничего в настройках сервера. Такой вариант отлично подойдет для сайтов на стандартных движках, блогов, небольших интернет-магазинов. Но есть два случая, при которых этот вид хостинга может принести проблемы.

1. Когда у сайта начинает расти показатель посещаемости. В этом случае либо все начинает «тормозить», либо хостер грозится перевести вас с тарифа за символические $2 на вполне ощутимые $50–100, а если не заплатите — отключить.

2. Когда вам нужен новый функционал. Например, поставить вот эту новую библиотеку обработки картинок или использовать вот ту хипстерскую базу данных. В варианте с shared-хостингом это сделать не получится. Вы пользуетесь тем, что для вас предусмотрели упомянутые выше бородатые дяденьки.

Если ваш сайт больше похож на «убийцу Убера», чем на «блог на Wordpress», есть две альтернативы: собирать свой сайт на облачных сервисах или смотреть в сторону полноценных виртуальных машин.

3. Облачные сервисы


Примеры: Amazon Web Services, Microsoft Azure, Google Cloud Platform.
Примерный чек: от $1 до бесконечности.

db2f6b2b6e90464486c42f554105dc42.png

Здесь вы собираете свой веб-сервис из огромного набора кубиков и деталей, довольно приятных. Вот у нас веб-сервер, вот база данных, вот очередь сообщений, вот хранилище для фотографий котиков, вот machine learning по ним, вот push-оповещения на мобильные — и ваш новый уникальный вариант кошачьего Тиндера готов.

Если разобраться, как работают эти кубики, можно довольно быстро собирать рабочие продукты с минимумом программирования. Приятный бонус на старте: оплата обычно идет не по абонентке, а за фактически потребленное количество ресурсов. Например, по числу запросов к базе данных, объему файлов в хранилище, числу разосланных уведомлений и т.д. То есть оплата за хостинг начинается с нуля и растет пропорционально росту нагрузки. Это позволяет стартапу долгое время масштабировать свою IT-инфраструктуру, понемногу увеличивая сумму затрат на хостинг.

Минусы облачных сервисов гармонично вытекают из их плюсов.

1. Вы ограничены тем функционалом, который заложили разработчики сервисов. Конечно, довольно широкий функционал дает много возможностей, но (!) чуть-чуть поднастроить его под себя не получится. Работает правило: используем как есть или переписываем с нуля.

2. По мере роста потребления ресурсов стоимость облачного сервиса может стать неоправданно высокой. Да, этот вид хостинга позволяет начать с $10. Для прототипа продукта или запуска стартапа с первой парой клиентов — прекрасно. Но если проект взлетит, то появляется риск платить пропорционально $10 000 за пару тысяч своих клиентов. И здесь нужно хорошо просчитать экономику.

Но даже если затраты на хостинг были заранее рассчитаны, вам все равно может понадобиться съехать с облачных сервисов. Причины могут быть и локальные (технические ограничения), и общерыночные (изменения российского законодательства). Важно учитывать, что просто «взять и переехать» из «облака» не получится. Придется дорого и долго программировать. Это тоже вариант, и его нужно просчитать заранее, чтобы понимать стоимость риска.

Облачные сервисы отлично подойдут для быстрого создания прототипа, в качестве бэкенда мобильных приложений и других подобных сервисов. Проверять идеи для стартапа — тестировать гипотезы — с их помощью тоже очень удобно. Когда нужен чуть больший контроль над хостингом, можно использовать полноценные машины (виртуальные или физические).

4. Виртуальные машины


Они же VM (Virtual Machine), VPS (Virtual Private Server), VDS (Virtual Dedicated Server) или просто «Виртуалки».

Примеры: Digital Ocean, Selectel, Amazon EC2, Azure VM.
Примерный чек: $5-$100 в месяц.

7684fe387abe485f99703798748bc994.png

У хостера стоят огромные железные сервера. Их ресурсы нарезаются на порции, которые выглядят как небольшие сервера со своей операционной системой, — именно это и сдается клиентам в аренду. Вы получаете машину с полным доступом и нужным количеством ресурсов (ядер процессора, оперативной памяти, места на дисках и т.д.).

Плюсы очевидны. Это полноценная машина, на которую можно устанавливать любой софт и настраивать его любым способом. Если с физическим сервером случится беда, хостер все починит сам, вы даже об этом, возможно, не узнаете. Кроме того, размер машины можно увеличивать по мере необходимости. Например, начать с варианта за $5, а потом взять нужный дополнительный объем, просто нажав кнопку «Расширить» и заплатив за него. А еще здесь можно запустить несколько машин и разделить между ними роли (веб-сервер — база данных) и нагрузку (веб-сервер 1, веб-сервер 2, веб-сервер 3).

Минусы тоже есть. Теперь настраивать под себя операционную систему и софт не только можно, но и необходимо. К тому же приходится следить за локальными процессами работы (хватает ли оперативной памяти, достаточно ли места на дисках, не упала ли база данных). И делать это нужно самостоятельно, постоянно и лучше профессионально.

Виртуальные машины подойдут большинству стартапов как на старте, так и во время бурного роста. Главное, чтобы в команде был хороший админ (или хотя бы была возможность привлечения такого специалиста). Всем стартапам стоит посоветовать сразу делить сайт на части и использовать несколько машин вместо одной большой. Это поможет расти в будущем. В момент, когда расходы на хостинг составят пару сотен долларов, можно будет задуматься о переходе на физические сервера. Именно задуматься, сесть и посчитать, прикинуть варианты, а не переезжать в «пожарном режиме», когда страдают клиенты и горят нервные клетки основателей.

5. Аренда выделенного сервера


Он же Dedicated Server, или просто «Дедик».

Примеры: Hetzner, Selectel, Servers.ru, Hostkey.
Примерный чек: $50-$500 в месяц.

1a285fb91f754f2da3d2f48dad207976.png

Это аренда настоящего физического сервера. Можно выбрать любую конфигурацию «железа», любую операционную систему и получить мощнейшую машину. Либо поднять свою систему виртуализации и самостоятельно нарезать нужное число «виртуалок». Трюк в том, что аренда выделенного сервера обходится в среднем в 3–5 раз дешевле аренды «виртуалки» соответствующей мощности. Или, иными словами, за те же деньги можно получить в 3–5 раз больше ресурсов.

Но тут есть значительный минус — теперь под вашей ответственностью не только операционная система, но и само «железо». Если сгорит, скажем, один из жестких дисков, то хостер заменит его бесплатно по звонку. И если вы правильно настроили сервер и вовремя заметили, что диск сгорел, сайт даже не «упадет». Но если сгорит сам сервер целиком, ваш сайт не будет доступен, пока хостер не подготовит замену (это занимает от нескольких часов до нескольких дней). И есть вероятность, что сервис придется поднимать из резервной копии. Это тоже требует времени и может вообще не получиться, если вы к этому специально не готовились.

Чтобы избежать проблем, потребуется иметь хотя бы один дополнительный резервный сервер, а также иметь компетенции (сотрудника), как этот сервер заставить работать в случае краха основной машины. И то и другое стоит денег, и экономия при переходе на свое железо может быть уже не такой явной.

Арендованные физические сервера хорошо подойдут достаточно большим проектам с потреблением в несколько тысяч долларов.

6. Покупка собственного железа


Примерная цена: $2 000-$10 000 за сервер разово.

6e7cd94b990240f8acb4a17e9b29bae3.jpg

«Железо» можно не арендовать, а купить. Вполне рабочий вариант, если вам очень нужно освоить несколько миллионов, в смысле, превратить операционные (ежемесячные) расходы в капитальные (разовые). И вы точно уверены, что:
а) будете использовать купленное «железо» больше срока, за который оно «отобьется» по сравнению с арендой,
б) вам хватит мощности на весь расчетный срок.

Помимо разовых расходов, больше плюсов, по сравнению с арендой, нет.

А минусов хватает. Если на сервере что-то сгорит — это ваша проблема. В лучшем случае производитель сервера пришлет замену. Если мощности «железа» не будет хватать, то вы либо докупаете новые сервера (получив у себя зоопарк из нескольких поколений машин), либо продаете текущее «железо» на Avito и покупаете новое.

Также надо помнить, что каждые несколько лет сервера становятся мощнее в пару раз (закон Мура до сих пор работает), при этом цена остается сопоставимой. Если арендуете сервер несколько лет, то можете в один момент отказаться от текущего сервера и взять новый, за те же деньги, но заметно мощнее. Если сервер ваш — так сделать будет нельзя.

Резюме


  • Если нужно сверстать лендинг или одностраничник, удобно будет воспользоваться конструктором сайтов. Проще некуда.
  • Если сайт простой и написан на php, можно использовать shared-хостинг. Дешево и сердито.
  • Для веб-сервиса с богатым функционалом можно пробовать либо Облачные сервисы (если вы любите и умеете ими пользоваться), либо Виртуальные машины.
  • Если чек за хостинг высокий и хочется сэкономить, можно присмотреться к аренде физического сервера.
  • Выбирая любой вариант, не забудьте посчитать, в какой момент станут критичны ограничения для конкретно вашего сервиса и прикинуть варианты, что с этим можно будет сделать.

Бурного роста и высокого аптайма!

© Habrahabr.ru