Что такое canary deployment?
Этот вопрос проверяет знание canary deployment, метода развертывания, позволяющего тестировать новую версию на небольшом числе пользователей.
Короткий ответ
Canary deployment — это стратегия развертывания, при которой новая версия приложения сначала запускается для небольшой части пользователей. Если тестирование проходит успешно, она постепенно заменяет старую версию.
Длинный ответ
Canary deployment снижает риски развертывания за счёт постепенного обновления:
- Малый процент пользователей — новая версия сначала получает 5-10% трафика.
- Мониторинг и тестирование — отслеживаются ошибки, метрики производительности.
- Постепенное развертывание — если всё работает хорошо, новая версия получает больше трафика.
- Откат (Rollback) — если обнаружены проблемы, трафик перенаправляется обратно на старую версию.
Пример в Kubernetes с Istio:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: canary-deployment
spec:
hosts:
- myapp.com
http:
- route:
- destination:
host: my-app-v1
weight: 80
- destination:
host: my-app-v2
weight: 20
Canary deployment позволяет тестировать обновления без риска массовых сбоев.