45  /  96

Где размещать проект

Просмотров: 1178 (Статистика ведётся с 06.02.2017)

Студия должна понимать сама и суметь объяснить клиентам какой вид размещения необходим конкретному проекту и почему. Неспособность объяснить это клиенту понятно, чётко и аргументировано - повод для серьёзного сомнения в компетенции студии.

Вариантов размещения немного:

  • Виртуальный (shared) сервер - пришёл, установил и всё работает.
  • VPS - можно самому "гаечки" покрутить.
  • Dedicated/Colocation - своё карман не тянет.
  • Облако - что-то новое и непонятное.

Частое заблуждение: что маленький проект надо размещать на виртуальном хостинге; большой - на VPS, совсем большой - на собственном "железе". На самом деле это далеко не всегда верно. Определяющим здесь должно быть не нагрузка, а ваши требования и предпочтения.

Риски при выборе площадки для размещения

  • Взять слишком много и переплатить (не можем заранее спрогнозировать потребление ресурсов).
  • Взять слишком мало и «просесть» по производительности.
  • Безопасность (если в штате нет толкового системного администратора).
  • Надежность (как резервировать доступность на уровне датацентра?).
  • Сетевая доступность.

Виртуальный (shared) хостинг

Это - всегда "общежитие", но самый простой вариант. Хороший хостинг снимает практически всю головную боль (бэкапы, резервирование и тому подобное). Но на таком хостинге сайт всегда будет ограничен по ресурсам. Любые соседи при их повышенной активности так или иначе будут влиять на сайт. Например, на таком хостинге нет инструментов, позволяющих хорошо и аккуратно ограничить дисковую активность. В результате, если какой-то пользователь начнёт активно работать с диском, то при достаточности всех остальных ресурсов, вы всё равно ощутите "тормоза" на своём сайте.

У вас минимум возможностей по кастомизации серверной части. В случае аварии у вас нет средств по восстановлению, кроме забрасывания писем в ТП.

Собственное оборудование или "облако"?

Примечание: Под "облаком" будем понимать VPS и облачный сервис в силу довольно большой идентичности. В обоих случаях вы работаете с виртуальными машинами.

Экономика. Считается, что "облачное" решение - более дешёвое, чем собственный сервер. На самом деле, при прямом сравнении аналогичных конфигураций "облачное" решение будет дороже. Более того, есть платежи, которые изначально могут быть не учтены, например, стоимость трафика, которая, как правило, считается отдельно. Есть определённая сложность расчетов при оплате "по потреблению": при резком росте нагрузки (DDoS, «хабраэффект», ошибки в разработке) возможны значительные расходы (в разы больше запланированных).

Реальная экономия использования облака кроется в других местах:

  • Нет инсталляционных платежей, есть только эксплуатационные.
  • Если проект "не пошёл" то потери только в тех платах, которые уже совершены, для сворачивания не нужно выполнять ни каких дополнительных действий и нести какие-то затраты. В случае собственных серверов вы теряете гораздо больше.
  • Экономия на времени обслуживания системы в целом. Если надо просто поменять диск, то для этого нужно тратить довольно много времени: поездка в дата центр, собственно замена, возможное переконфигурирование сервера и так далее.

Масштабируемость. Считается, что масштабируемость в облаке намного выше, чем в случае собственного сервера. С одной стороны это так, но не надо забывать про способность к масштабированию самого приложения. Например, если приложение сконфигурировано таким образом, что БД потребляет определённый объём памяти, веб-сервер потребляет определённый объём памяти, то увеличение памяти на виртуальной машине не даст прироста производительности. Требуется переконфигурирование приложения. Это возможно не для всех приложений.

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

Надёжность. Считается что "облако" надёжнее. Тем не менее VPS перегружается гораздо чаще чем собственный сервер. При правильной конфигурации сервер может работать годами. И грамотный дата-центр всегда страхуется по электропитанию не только через UPS, но и дизельными генераторами.

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

Облачные провайдеры подвержены всё тем же рискам, что и обычные провайдеры: природные, человеческие факторы, катаклизмы.

Само по себе облако не надёжнее, но позволяет построить более надёжную инфраструктуру, так как ресурсов машин больше и можно заранее спроектировать и зарезервировать машины или сервисы и тем себя подстраховывать на случай каких-то аварий. В "облаке" эти машины можно конфигурировать произвольным образом, включать и отключать тогда, когда это необходимо не платя за ненужные мощности. В случае собственного сервера это означало бы покупку нового сервера со всеми вытекающими отсюда затратами и рисками.

Ресурсы. Распределение ресурсов в "облаке" так же не гарантировано. В лучшем случае провайдер будет обещать 95% времени выделять обещанные ресурсы, но 100% гарантии не даст ни кто.

Дополнительные сервисы. "Облако" предоставляет сервисы, которые, при размещении на собственных серверах пришлось бы реализовывать самостоятельно. Например, облачные хранилища для статической информации. Такие хранилища доступны (99.99%), надежны (99.999999999%), поддерживают версионность и шифрование. Благодаря ему снижается стоимость эксплуатации, оно может использоваться совместно с CDN, снижается нагрузка на web-узлы, сайту становится легко переезжать, его легко бэкапить, производится синхронизация контента между множественными web-узлами, ускоряется рендеринг страниц в браузере.

Кроме того доступны сервисы:

  • Автомасштабирование
  • Мониторинг
  • Балансировщики
  • Облачные базы данных
  • Облачные NoSQL
  • Облачный кэш

Не смотря на все сложности и риски "облачное" размещение выбирать можно и нужно, если учитываются все риски. Сравните плюсы и минусы размещения в "облаке".

ПлюсыМинусы
Экономия за счет возможности планирования ресурсов Нельзя гарантированно получить некоторые ресурсы
Экономия и отсутствие рисков, связанные с вложениями в инфраструктуру Сложность расчетов «по потреблению»
Моментальное вертикальное и горизонтальное масштабирование Ложное ощущение гарантий безопасности и отказоустойчивости
Удобство администрирования Ограничения инфраструктуры (аппаратная часть, специфичное ПО)
Экономия времени Затраты (время) на обучение сотрудников специфике конкретного сервиса
Возможность построить отказоустойчивую инфраструктуруМедленные диски
Возможность построить масштабируемую инфраструктуру
CPU и RAM – по требованию
Дополнительные сервисы

5
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии