Skip to content
PПромтбук
RUEN
01Деплой

Canary rollout: % трафика и метрики

Canary-релиз: распределение трафика, метрики для алерта, длительность фаз, escalation, триггеры отката.

Спроектируй canary rollout для {{service}} на {{platform}}.

Фазы (рекомендованные пропорции)

ФазаТрафикДлительностьУсловие промоушна
0. Internal0% (только staff/feature flag)30-60 минsmoke OK, no error spike
1. Canary1-5%15-30 минerror rate ≤ baseline+10%, p95 ≤ baseline+15%
2. Early25%30-60 минте же + бизнес-метрика стабильна
3. Half50%30-60 минте же
4. Full100%

Не сокращай фазы «потому что выглядит ОК». Многие баги проявляются только на масштабе.

Метрики для автомата

Технические (обязательно)

  • Error rate (4xx/5xx), отдельно по эндпоинтам
  • p50/p95/p99 latency
  • CPU/memory на инстансах canary
  • Throughput (RPS)
  • Apdex или SLO burn rate

Бизнес (если применимо)

  • Conversion в ключевом флоу (signup, checkout)
  • Revenue per session
  • Drop-off на ключевых страницах

Шум-фильтры

  • Baseline считается от той же фазы дня/недели (не abs ratio)
  • Минимум N запросов на canary, иначе сигнал слабый
  • Игнор первые 60s после переключения трафика (warmup)

Триггеры отката (автоматические)

  • Error rate > baseline × 2 за 3 минуты подряд
  • p95 > baseline × 1.5 за 5 минут
  • 5xx > 1% от трафика canary
  • Critical alert от downstream (платежи, auth)
  • Drop в business-метрике > 20% за 10 минут

Триггеры эскалации (ручной взгляд)

  • Error rate baseline × 1.3-2.0
  • Новые типы ошибок в логах
  • Подозрительные метрики в одном регионе

Длительность всего rollout

  • Hot path / payments / auth: 4-8 часов минимум
  • Обычный код: 1-3 часа
  • Мелкий фикс / визуальное: 30-60 минут
  • Никогда не катим в пятницу вечером

Инструменты (по платформе)

k8s + Argo Rollouts

  • Strategy: canary со steps по 5/25/50/100
  • AnalysisTemplate с Prometheus queries
  • Auto-rollback по AnalysisRun

Fly.io

  • fly deploy --strategy canary
    • кастомный health-check скрипт

Cloudflare / Edge

  • Traffic split через worker
  • Метрики из Cloudflare Analytics + alerts

LaunchDarkly / Unleash

  • Percentage rollout по user-targeting
  • Server-side guards для платных фич

Что мониторить вживую

Дашборд во время rollout (минимум 4 виджета):

  1. Error rate: canary vs stable (overlay)
  2. Latency p95: canary vs stable (overlay)
  3. Business metric: canary cohort
  4. Traffic distribution (показывает, что rollout идёт)

Канал в Slack/Telegram: уведомления при каждом шаге фазы + при rollback.

Подготовка

  • Baseline метрики измерены за предыдущие 7 дней
  • Алерты настроены и протестированы
  • Rollback команда отрепетирована (см. rollback-playbook)
  • Database migration — двухфазная (expand → contract отдельный релиз)
  • Feature flag (если есть) — kill switch на месте
  • On-call знает: что катится, когда, кому звонить

Формат вывода

Конкретный план для {{service}}:

  • Таблица фаз с числами
  • Список метрик с порогами
  • Алерты (YAML/JSON для платформы)
  • Чек-лист подготовки
  • Команды старта / отката

Анти-паттерны

  • ❌ Один шаг 0% → 100% и «посмотрим что будет»
  • ❌ Промоушн фазы по таймеру без проверки метрик
  • ❌ Только error rate без latency — медленный API «работает»
  • ❌ Smoke только в фазе 0, потом доверие
  • ❌ Canary на одном регионе, заявка про глобальный rollout
  • ❌ Sticky session — все юзеры canary остаются на canary навсегда
  • ❌ Не учтены downstream: canary шлёт badли в общую очередь
К подразделу «Деплой»
Похожие промты