Ответ вслух Senior Стратегии деплоя обновлено

Спроектируйте канареечный релиз

Вопрос

Интервьюер: «Как бы вы автоматизировали canary-релизы для 40 сервисов, чтобы плохую версию откатывало без человека?»

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Беру Argo Rollouts: он заменяет Deployment и умеет шаги с весами и анализом. Шаги 5%, 25%, 50%, 100% с паузами по 10 минут.

Что должно прозвучать в ответе

  • Инструмент: Argo Rollouts, Flagger или меш с весами трафика

  • Шаги веса (1, 5, 25, 50, 100%) и паузы между ними

  • Метрики анализа: доля ошибок, задержка p99, по сравнению со stable, плюс бизнес-метрика

  • Пороги и минимальный объём выборки, автоматический откат

  • Совместимость БД и сессий, sticky-маршрутизация при необходимости

  • Шаблон для всех сервисов и уведомления команде

Что могут спросить следом

  • Что делать сервисам с маленьким трафиком?
  • Как канарить асинхронный воркер из очереди, у которого нет HTTP-трафика?

Разбор

Образцовый ответ: «Беру Argo Rollouts: он заменяет Deployment и умеет шаги с весами и анализом. Шаги 5%, 25%, 50%, 100% с паузами по 10 минут. На каждом шаге AnalysisTemplate запрашивает Prometheus: доля 5xx и p99 задержки канарейки против stable, плюс для критичных сервисов бизнес-метрика вроде успешных оплат. Порог, например, ошибки канарейки не выше stable плюс 1 п.п. и минимум 500 запросов в окне, иначе шаг продлевается. Провал анализа автоматически возвращает весь трафик на stable и пишет в канал команды. Всё это общий Helm-шаблон, сервис только задаёт свои пороги. Для малого трафика доля больше и окно длиннее, для воркеров канарейка по доле консьюмеров и метрикам ошибок обработки».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.