Ответ
Для zero downtime деплоя используйте стратегии:
Blue-Green Deployment
- Разверните новую версию (Green) параллельно с текущей (Blue)
- Переключите трафик (например, через LB) после тестирования
- Пример с AWS ALB:
aws alb modify-listener --listener-arn arn:aws:elasticloadbalancing... --default-actions Type=forward,TargetGroupArn=green-tg-arn
Canary Releases
- Постепенно направляйте часть трафика (5% → 50% → 100%)
- Инструменты: Istio, Nginx, Flagger
Rolling Updates (Kubernetes)
- Постепенная замена подов с контролем health checks:
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 1
Feature Flags
- Включайте фичи для части пользователей через конфиги
Обязательно:
- Автоматические откаты при ошибках
- Мониторинг метрик (5xx, latency) во время деплоя
- Тестирование в staging, схожем с prod