Ответ вслух Senior Docker Compose обновлено

Compose или Kubernetes

Вопрос

Команда из 5 человек, один продукт, нагрузка умеренная. Спорят: Compose на паре серверов или Kubernetes. Что посоветуешь и почему?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Начну с требований, а не с технологии. Какая нужна доступность: переживём ли час простоя при падении сервера?

Что должно прозвучать в ответе

  • Определить требования: доступность, число сервисов и узлов, частота деплоев, кто будет поддерживать

  • Compose: простота, низкий порог, всё видно в одном файле; минусы: один хост, ручное переключение при отказе

  • Kubernetes: несколько узлов, самовосстановление, rolling update, HPA, экосистема; минусы: сложность и стоимость сопровождения

  • Управляемый Kubernetes в облаке снимает часть сложности control plane, но не всю

  • Промежуточные варианты: PaaS, Nomad, Swarm

  • Решение обратимо, если образы и конфигурация через переменные окружения (12 factor)

Что могут спросить следом

  • Что сломается первым при росте на Compose?
  • Сколько стоит поддержка своего кластера?

Разбор

Начну с требований, а не с технологии. Какая нужна доступность: переживём ли час простоя при падении сервера? Сколько сервисов и как часто деплоим? Кто будет поддерживать платформу? Compose хорош простотой: один файл, всё понятно любому разработчику, отладка обычными средствами Docker. Минусы: он управляет одним хостом, при падении сервера всё лежит, пока кто-то не поднимет на другом, а обновление без простоя приходится собирать самому. Kubernetes даёт планирование по узлам, самовосстановление, rolling update, автомасштабирование и большую экосистему, но требует знаний и времени на сопровождение, и для команды из пяти человек это может быть заметной долей работы. Управляемый кластер в облаке снимает заботу о control plane, но сетевые политики, обновления и наблюдаемость остаются. Для умеренной нагрузки я бы начал с Compose или PaaS, а образы и конфигурацию сразу делал по 12 factor, чтобы переезд в Kubernetes был механическим, когда реально понадобятся несколько узлов и высокая доступность.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.