Чем canary-выкатка принципиально отличается от blue-green?
- Что такое canary-релиз?
- Что такое blue-green deployment?
Blue-green — второй полный комплект и переключение всего трафика разом: мгновенный откат, но ошибку сразу видят все. Canary — новая версия на малую долю трафика, сравнение метрик и постепенное расширение.
- Canary ограничивает «радиус поражения», но требует наблюдаемости с разрезом по версии
- Blue-green требует двойных ресурсов на время переключения
- В обоих случаях база общая — схема должна быть совместима с обеими версиями
А ещё Автоматический анализ canary (Argo Rollouts, Flagger) — остановка по метрикам без человека
Подробно
Blue-green. Рядом с работающим окружением (blue) поднимается полное новое (green). После проверки балансировщик переключает весь трафик на green. Откат — переключение обратно, секунды. Плюсы: простота, быстрый откат, возможность прогреть и проверить новую версию до переключения. Минусы: двойные ресурсы, дефект после переключения сразу у всех пользователей, долгие соединения (WebSocket) нужно переносить.
Canary. Новая версия получает 1–5% трафика, затем 10, 25, 50, 100% с паузами. На каждом шаге сравниваются метрики новой версии с базовой (доля ошибок, задержка, бизнес-метрики). Хуже — откат, лучше или так же — продолжаем. Плюсы: дефект затрагивает малую долю, экономия ресурсов. Условия: метрики с разрезом по версии, достаточный трафик для статистики, автоматика решения (Argo Rollouts, Flagger, Spinnaker).
Общее требование — совместимость с данными: база, брокер, кэш общие для обеих версий.
Rolling update — частный случай без анализа: экземпляры заменяются постепенно, но решение о продолжении не принимается по метрикам.
Что хотят услышать
- Механика каждого подхода.
- Ключевое различие: все разом против доли с анализом.
- Требования: двойные ресурсы против наблюдаемости по версиям.
- Общая база и совместимость схемы.
Частые ошибки
- Делать canary без сравнения метрик по версиям.
- Считать, что blue-green позволяет не думать о совместимости схемы.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Canary дешевле по ресурсам: новую версию вообще не нужно запускать
- ✗Blue-green не позволяет откатиться, а canary позволяет
- ✓Canary показывает версию малой доле пользователей и сравнивает её метрики с базовыми
- ✗Canary не требует совместимости версий по схеме данных, ведь трафика на новую версию немного
Что спросят дальше
- Когда вы выберете blue-green вместо canary?
- Что должно автоматически останавливать раскатку канарейки?
Разбор темы
- Выкатка без простоя и миграции схемы
Rolling, blue-green и canary с их ценой, отделение деплоя от релиза через feature flags, expand–contract для схемы БД, совместимость соседних версий и стратегия отката.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.