Ответ вслух Middle CI/CD обновлено

Стратегии деплоя: rolling, blue-green, canary

Вопрос

Расскажи о стратегиях деплоя и когда какую выбрать.

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

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

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

Коротко

Самая простая стратегия это rolling: инстансы обновляются по одному или пачками. Ресурсов почти не нужно, но во время выкатки работают обе версии, и откат это такая же выкатка назад.

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

  • Rolling: инстансы по очереди, дёшево, обе версии работают одновременно

  • Blue-green: два окружения, мгновенное переключение и откат, но двойные ресурсы

  • Canary: малая доля трафика, решение по метрикам

  • Feature flags отделяют релиз фичи от деплоя кода

  • Для всех, кроме recreate: обратно совместимые API и миграции

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

  • Как автоматически решить, что canary плохой?
  • Что делать с базой при blue-green?

Разбор

Самая простая стратегия это rolling: инстансы обновляются по одному или пачками. Ресурсов почти не нужно, но во время выкатки работают обе версии, и откат это такая же выкатка назад.

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

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

Отдельно стоят feature flags: код выкачен, но фича выключена и включается по флагу для части пользователей. Для небольшого проекта я бы взял blue-green, для крупного canary плюс флаги.

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

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

Термины по теме