Что такое канареечный деплой (Canary Deployment)?

Ответ

Канареечный деплой — это стратегия развертывания нового ПО, при которой новая версия приложения становится доступной лишь для небольшой, ограниченной группы пользователей. Название — аналогия с канарейками в шахтах, которые первыми реагировали на опасный газ.

Если новая версия работает стабильно (нет ошибок, всплеска потребления ресурсов), её постепенно "раскатывают" на всё большую аудиторию, пока она полностью не заменит старую версию. Если возникают проблемы — трафик быстро переключается обратно на стабильную версию.

Как это работает (этапы):

  1. Развертывание: Рядом со стабильной версией приложения (V1) разворачивается новая (V2).
  2. Перенаправление трафика: На уровне инфраструктуры (балансировщик нагрузки, API Gateway, Service Mesh) настраивается правило, по которому малая часть трафика (например, 1-5%) направляется на V2, а остальные 99-95% — на V1.
  3. Мониторинг: Команда наблюдает за метриками V2: ошибки (HTTP 5xx), время ответа, использование CPU/памяти.
  4. Принятие решения:
    • Успех: Если V2 стабильна, доля трафика на неё постепенно увеличивается (до 25%, 50%, 100%).
    • Неудача: Если обнаружены проблемы, трафик на V2 мгновенно перекрывается, и все 100% запросов снова идут на V1. Проблемная версия откатывается.

Важно: Эта логика реализуется не в коде приложения, а на уровне инфраструктуры (Nginx, Istio, Linkerd, облачные балансировщики).

Плюсы:

  • Минимальный риск для пользователей.
  • Возможность протестировать новую версию под реальной нагрузкой.
  • Быстрый и безболезненный откат.

Минусы:

  • Усложнение инфраструктуры и процесса развертывания.
  • Требует развитой системы мониторинга и сбора метрик.

Сравните со стратегией Blue-Green Deployment, где трафик переключается сразу на 100% между двумя идентичными окружениями.