Вопрос проверяет понимание стратегии канареечного деплоя для безопасного и постепенного развертывания новых версий приложений.
Канареечный деплой (canary deployment) — это стратегия развертывания, при которой новая версия приложения сначала выпускается для небольшого процента пользователей (например, 5-10%). После проверки стабильности и отсутствия критических ошибок трафик постепенно увеличивается до 100%. Название происходит от метода, использовавшегося шахтерами: канарейки в клетках предупреждали об утечке газа.
Основная цель — снизить риски при релизе. Если новая версия содержит баги или ухудшает производительность, это затронет лишь малую часть пользователей. Откат происходит быстро и безболезненно. Также можно сравнивать метрики (latency, error rate) между старой и новой версиями в реальном времени.
Предположим, у нас есть Kubernetes-кластер с сервисом. Мы создаем два deployment: stable (v1) и canary (v2). С помощью ingress-контроллера (например, Nginx) направляем 10% трафика на canary:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app
annotations:
nginx.ingress.kubernetes.io/canary: "true"
nginx.ingress.kubernetes.io/canary-weight: "10"
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app-canary
port:
number: 80После мониторинга в течение 30 минут без ошибок увеличиваем вес до 50%, затем до 100%.
Канареечный деплой — это эффективный способ безопасного развертывания, особенно для высоконагруженных систем, где критична стабильность. Он позволяет минимизировать влияние ошибок на пользователей и быстро реагировать на проблемы.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию