Как организовать ротацию on-call дежурств?

Как организовать ротацию on-call дежурств

Организация on-call — это не только расписание: это набор правил, ролей, инструментов и культуры, которые вместе минимизируют простой сервиса и защищают людей от выгорания.

Принципы

  • Чёткое разделение ролей (primary, secondary, eskalation).

  • Предсказуемость и справедливость в расписании.

  • Автоматизация и runbook-ориентированность (каждый алерт — с runbook).

  • Поддержка и компенсация для дежурных (TOIL/оплата/время для восстановления).

  • Blameless-культура и регулярные постмортемы.

Модели ротации (часто используемые)

  • Еженедельная ротация (1 week) — удобна для команд: 7×24 покрытие, меньше переключений.

  • Дневная ротация (24-часа) — для очень больших команд/отделов с короткими сменами.

  • Follow-the-sun — глобальное покрытие с региональными сменами (минимизирует ночные вызовы для каждого региона).

  • Primary/Secondary: primary отвечает за все страницы; secondary — резерв и помощь в сложных инцидентах.

Рекомендация: для небольших команд (5–10 человек) — weekly primary + backup secondary; максимум 1–2 подряд недели одному человеку.

Роли и политика эскалации

  • Primary — принимает и обрабатывает алерты, запускает инцидент.

  • Secondary — поддерживает primary/замещает при escalations.

  • Incident Commander (IC) — назначается при крупном инциденте.

  • Эскалация: P1 — если primary не ACK в 5–10 мин → уведомление secondary → если нет реакции → старший инженер/lead → менеджмент.

Подберите таймауты под свою дисциплину и SLO (пример: ACK P1 — 5 мин, P2 — 30 мин).

Handover (передача смены) — обязательный чек-лист

  • Активные инциденты и статус (ID, owner, next steps).

  • Открытые тикеты / задачи, которые влияют на прод.

  • Планируемые изменения/деплои в ближайшие 24–48 часов.

  • Изменения в конфигурации, контакт-лист, доступы.

  • Краткий отчёт о pager-нагрузке за смену.

Передача должна быть письменно задокументирована (чат/вики).

Инструменты и автоматизация

  • Планирование/эскалация: PagerDuty, Opsgenie, VictorOps.

  • Расписания и swap-функции (самостоятельный swap, администрирование отпусков).

  • Alerts → runbook links, dedupe, suppression, rate-limits.

  • Statuspage и шаблоны коммуникаций для внешней и внутренней связи.

  • Метрики on-call: time to ack, pages per shift, false positives.

Снижение нагрузки и защита on-call

  • Минимизировать шум: threshold + debouncing, suppression windows, grouping.

  • Обязательные runbooks и автоматические mitigations (self-healing).

  • Ограничение подрядных дежурств: максимум 1–2 подряд недели.

  • Компенсация: оплата / день восстановления / компенсационные выходные (TOIL).

Обучение и сопровождение

  • Shadow shifts для новых on-call (наблюдение за опытным инженером).

  • Регулярные walkthroughs runbooks и fire-drills.

  • Доступность документации/скриптов в один клик из алерта.

Метрики эффективности и непрерывное улучшение

  • MTTA (time to acknowledge), MTTR, pages per shift, % alerts with runbook.

  • После каждого P1 — postmortem и action items (обновление алертов, runbooks, автоматизация).

Пример минимальной политики

  • Ротация: 1 неделя primary, 1 неделя отдых/backup; максимум 2 недели подряд.

  • Swap: возможен через UI с уведомлением тим-лида.

  • ACK SLA: P1 — 5 мин, P2 — 30 мин.

  • После P1: IC назначается и создаётся инцидент-ticket; postmortem в течение 72 часов.

Организация on-call — это баланс технических мер и заботы о людях: хорошие правила, инструменты и культура снижают количество страниц и повышают качество реагирования.