Ответ
Canary Deployment (канареечное развертывание) — это стратегия выкатки новой версии приложения, при которой трафик постепенно переключается с текущей стабильной версии на новую. Сначала новая версия становится доступна лишь небольшой группе пользователей (например, 1-5%), которая выступает в роли «канарейки в шахте».
Если мониторинг не выявляет ошибок или деградации производительности, доля трафика на новую версию постепенно увеличивается до 100%. В противном случае трафик быстро откатывается на стабильную версию.
Процесс развертывания:
- Развертывание: Новая версия (v2) разворачивается на серверах параллельно со старой (v1).
- Маршрутизация: Небольшая часть трафика (например, 10%) направляется на v2, а основная (90%) — на v1.
- Мониторинг: Собираются метрики (ошибки, задержки, использование ресурсов) для обеих версий.
- Принятие решения:
- Успех: Доля трафика на v2 постепенно увеличивается до 100%. Старая версия v1 выводится из эксплуатации.
- Неудача: Трафик полностью возвращается на v1, а v2 откатывается для анализа проблем.
Ключевые преимущества:
- Минимизация рисков: Проблемы затрагивают лишь малую часть пользователей.
- Быстрый откат: Возможность мгновенно вернуть весь трафик на стабильную версию.
- Тестирование в реальных условиях: Проверка производительности и функциональности на реальном пользовательском трафике.
Эта стратегия часто реализуется с помощью балансировщиков нагрузки, Ingress-контроллеров в Kubernetes или Service Mesh (например, Istio, Linkerd).