Какие стратегии выкатки вы знаете и как выбрать подходящую?
- Чем recreate, rolling, blue-green и canary отличаются по риску и стоимости?
Recreate — остановить старое, запустить новое: простой, зато просто. Rolling — постепенная замена экземпляров, без простоя, откат медленный. Blue-green — полная копия окружения, переключение трафика целиком и мгновенный откат, но двойные ресурсы. Canary — новая версия получает малую долю трафика, по метрикам решают — расширять или откатывать; самый безопасный, требует хорошего мониторинга.
- Любая стратегия без простоя требует совместимости версий API и схемы БД
- Canary с автоматическим анализом: Argo Rollouts, Flagger
- Откат должен быть отрепетирован, а не теоретическим
А ещё Feature flags дополняют стратегии: выкатка кода и включение функции — разные события
Подробно
Сравнение:
| стратегия | простой | откат | ресурсы | риск |
|---|---|---|---|---|
| recreate | есть | новая выкатка | 1× | высокий |
| rolling | нет | постепенный | ~1× | средний |
| blue-green | нет | мгновенный | 2× | средний: все пользователи сразу |
| canary | нет | быстрый | ~1× | низкий |
Canary на практике: 1% → 10% → 50% → 100% с паузами; на каждом шаге сравнивают ошибки и задержки canary с основной версией. Плохие метрики — автоматический откат.
Выбор:
- внутренний сервис, допустим простой — recreate или rolling;
- платёжный путь, высокий трафик — canary;
- нужно мгновенно вернуть всё как было — blue-green.
Базы данных: миграции в стиле «расширить и сжать» (expand and contract): сначала добавить совместимую схему, выкатить код, потом убрать старое.
Что хотят услышать
- Четыре стратегии и их компромиссы.
- Обоснованный выбор под сервис.
- Совместимость версий и миграции БД.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Recreate выкатывает без простоя, а rolling требует двойных ресурсов
- ✓Canary — часть трафика и метрики, blue-green — переключение целиком
- ✗Blue-green — постепенная замена подов по одному, canary — полная копия окружения
- ✗Rolling даёт самый быстрый откат, поэтому canary и blue-green не нужны
Связанные вопросы
- Чем canary-выкатка принципиально отличается от blue-green? Middle
- Что такое rolling update при выкатке новой версии? Junior
- Во время rolling update в проде одновременно работают старая и новая версии сервиса. Какое требование из этого следует? Middle
- Как Deployment выполняет обновление и как откатить неудачную версию? Middle
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.