Действуй как Release Engineer. Выбери стратегию деплоя для {{service}}. Профиль трафика: {{traffic_profile}}. Tolerance: {{risk_tolerance}}.
Шаги
-
Оцени 4 измерения сервиса.
- Statefulness. Stateless (web/API) → любая стратегия. Stateful (worker с in-memory state, БД) → ограниченный выбор.
- Backward compatibility. Новая версия совместима со старой (одна БД-схема, один API contract)? Если нет — нужны expand-contract миграции.
- Traffic shape. Steady RPS → canary удобен. Spiky (cron, batch) → rolling/blue-green проще.
- Бюджет инфры. Blue-green требует 2× capacity на время деплоя. На малых инсталляциях это дорого.
-
Сравни 5 стратегий.
| Стратегия | Когда | Downtime | Risk | Infra cost | Rollback time |
|---|---|---|---|---|---|
| Rolling | Stateless, низкий риск | 0 | Medium (новая версия видна всем постепенно) | 1× + N/maxSurge | Полный rolling назад: минуты |
| Blue-green | Большой релиз, нужен быстрый rollback | 0 | Low (полное тестирование на green до switch) | 2× на время | Секунды (router flip) |
| Canary | Прод-валидация на реальном трафике | 0 | Lowest (impact ограничен % трафика) | 1× + canary fleet | Секунды (traffic shift back) |
| Shadow | Performance/correctness без user impact | 0 | None (тень не отвечает юзеру) | 2× compute | N/A — никогда не serve users |
| Feature flag | Разделить deploy от release | 0 | Lowest (бинарный toggle) | 1× | Мгновенно (flag flip) |
-
Decision tree.
- Stateless + steady traffic + есть observability? → canary (5% → 25% → 100% с auto-promotion).
- Stateless + spiky / низкий трафик? → rolling с health-check.
- Большой релиз (мажор, breaking deps) + бюджет на 2×? → blue-green.
- Новый алгоритм/тяжёлая логика, нужна prod-валидация без риска? → shadow (mirror traffic, compare outputs).
- Постепенный rollout фичи по сегментам пользователей? → feature flag (поверх любой deploy-стратегии).
- Stateful воркер с in-memory state? → blue-green или managed drain (graceful shutdown с persistent state checkpoint).
-
Combination strategies.
- Canary + feature flag: деплоим binary через canary (инфраструктурная безопасность), фичу включаем через flag (продуктовая безопасность).
- Blue-green + DB migration: миграция запущена до switch (expand), switch, после стабилизации — contract.
- Shadow → canary → rolling: для критических сервисов прогоняем последовательно.
Anti-patterns
- ❌ Canary без auto-promotion и без auto-rollback — превращается в «manual prod testing» с забытой канарейкой неделями.
- ❌ Blue-green с shared state (одна БД, общий cache) — green получает данные blue'я, тесты на green не отражают реальность.
- ❌ Rolling deploy с maxUnavailable=0 на 2-реплика сервисе — деплой никогда не закончится.
- ❌ Feature flag без kill-switch и без TTL — флагов становится 200, никто не помнит что они делают.
- ❌ Shadow trafic, но при этом тень пишет в БД — корраптит данные.
Формат вывода
## Выбранная стратегия: <name>
## Обоснование
- Statefulness: ...
- Traffic: ...
- Risk: ...
- Cost: ...
## Implementation plan
- Tooling (Argo Rollouts / Flagger / vanilla k8s / Cloud-native)
- Traffic split steps
- Promotion criteria (metrics + thresholds)
- Rollback triggers
## Pre-flight checklist
- [ ] Backward-compat verified
- [ ] Observability ready (per-version metrics)
- [ ] DB migrations decoupled
- [ ] Rollback runbook tested
## Risks & mitigations
| Risk | Likelihood | Mitigation |
Принцип: стратегия — это не «модно vs немодно». Это compromise между скоростью feedback и blast radius. Выбирай по сервису, а не по компании.
Похожие промты
site / seo
Стратегия внутренней перелинковки
Граф ссылок: какие страницы — хабы, какие — спицы, как передавать link equity.
seointernal-linkingstrategy
Открыть
Продвинутый30-60 мин
site / analytics
North-Star метрика и input-метрики
Одна главная метрика которая отражает успех продукта + 3-5 драйверов под неё.
analyticsmetricsstrategy
Открыть
Продвинутый30-60 мин
site / deploy
Canary rollout: % трафика и метрики
Canary-релиз: распределение трафика, метрики для алерта, длительность фаз, escalation, триггеры отката.
deploycanaryrollout
Открыть
Продвинутый30-60 мин