Как вы относитесь к тому что вся архитектура сайта в production «запакована» в Docker контейнеры? Практикуется ли такая архитектура часто?
Здравствуйте, у меня немного теоретический вопрос.
Нормально ли это, частая ли практика, если все необходимые вещи для работы сайта работают в контейнерах?
Например.
Container1: jenkins
Container2: MongoDb
Container3: java app
Container4: Grafana
.... и так д
Конечно же соотв данные и логи выведены из контейнера и хранятся на жестком диске.
Какова вероятность, что Docker сервис "ляжет" (может лечь)?
Или в production - для всего в идеальном случае должна быть своя машина?
Спасибо за мнения.
Это зависит от продакшена и "сайта". Если это динамически масштабируемый web-сервис на облачной платформе, то контейнеры в самый раз. А если это просто сайт на VPS, то контейнеры не нужны.
Если уж контейнеры всё-таки использовать, то упаковывать каждый отдельный элемент системы в отдельный контейнер. А то весь смысл контейнеризации теряется, проще снапшот сделать.
Спасибо за ответ. Что Вы подразумеваете под "динамически масштабируемый web-сервис"? Если я Вас правильно понимаю, то да. Подвязаны ноды для Spark и реплики баз данных.
Ударение идёт на масштабирование в будущем.
И почему это на VPS контейнеры не нужны? Проще же взять готовый контейнер где уже всё работает, нежели "танцевать с бубном" и вручную настраивать и стартовать все нужные сервисы.
Или вы имеете введу, что масштаб не тот?
Ну и если смотреть, то да, в облаке можно без проблем масштабироваться, но по сути, там же тоже машины, сервера и так д.. Просто организовано по другому.
Можно же так же, взять мощный сервер и на нём разворачивать контейнеры. Мы сейчас не говорим о том, что когда-то ресурсы в сервера закончатся.
web_dev, Что Вы подразумеваете под "динамически масштабируемый web-сервис"?
Динамический масштабируемый - это, например, когда при превышении некоторого предела запросов автоматически запускаются дополнительные инстансы AWS EC2, а на них так же автоматом разворачиваются и стартуют необходимые микросервисы.
Проще же взять готовый контейнер где уже всё работает, нежели "танцевать с бубном" и вручную настраивать и стартовать все нужные сервисы.
Средний админ может за полчаса с нуля настроить VPS. А хорошо написанное приложение за 5 минут на этом VPS'е разворачивается без всяких танцев с бубном. Как только понадобилось "плясать", надо обеспокоится уровнем своего профессионализма.
А использовать контейнеры без реальной на то необходимости - это ненужное усложнение системы, дополнительное звено отказа и расход ресурсов, пусть даже незначительный.
Сергей Горностаев, Значит на счёт динамического, я Вас правильно понял.
Средний админ может за полчаса с нуля настроить VPS. А хорошо написанное приложение за 5 минут на этом VPS'е разворачивается без всяких танцев с бубном. Как только понадобилось "плясать", надо обеспокоится уровнем своего профессионализма.
- речь не идёт о настройке VPS речь о достаточно сложно архитектуре которая состоит из, как минимум десятка сторонних сервисов (logstash, kibana, mongo, etc..). Сомневаюсь, что за пол часа без докера можно это всё настроить.
А использовать контейнеры без реальной на то необходимости - это ненужное усложнение системы, дополнительное звено отказа и расход ресурсов, пусть даже незначительный.
- согласен. Но в данном случае необходимость тогда есть. Просто интересовал вопрос, нормальная ли это практика в production использовать Docker.