Дежурства без выгорания: как настроить on-call и не сгореть

Anton41

New member
Своё первое дежурство я вспоминаю с содроганием. Телефон лежал на тумбочке экраном вверх, будильник стоял на семь утра, а в голове крутилась одна мысль: только бы не сработало. И срабатывало, в 3:40, из-за временного скачка задержки на одном из десяти инстансов, который сам вернулся в норму через минуту. Я вставал, шёл к ноутбуку, смотрел графики, ничего не делал и потом ещё час не мог уснуть. Через полгода таких ночей я поймал себя на том, что тихо ненавижу собственную работу, хотя на работе ничего катастрофического не происходило.

Проблема была не в дежурствах как таковых, а в том, что нас будили по любому поводу. Алерты шли из системы мониторинга на всё, что можно было измерить: загрузка процессора, свободная память, длина очереди, количество ретраев, любой пятиминутный пик. Формально мы были в курсе всего. Фактически мы перестали верить алертам, а это гораздо страшнее отсутствия мониторинга. Когда сигналов слишком много, мозг учится их игнорировать, и однажды в этой каше теряется та самая настоящая авария, ради которой всё и строилось.

Перелом случился, когда мы сели и честно выписали, что вообще значит сломалось. Не выросла память, не упал один инстанс, а пользователь не может оплатить заказ, не открывается главная, не уходит письмо. Всё, что не приводило к такому исходу, перестало быть поводом для ночного звонка. Оказалось, что из примерно двухсот правил настоящих, требующих немедленного вмешательства, осталось меньше двадцати. Остальное спокойно уехало в дашборды и в утренний обзор, который дежурный читает с кофе, а не с фонариком.

Дальше пошли технические детали, которые дали больше всего эффекта. Мы развели severity: то, что реально будит ночью, и то, что спокойно ждёт рабочего дня. Сделали дедупликацию, чтобы одна авария не превращалась в сорок сообщений и не создавала ощущение конца света. Настроили группировку по сервису, а не по отдельному инстансу. Завели короткие ранбуки: три-четыре шага с конкретными командами и понятным текстом прямо в теле алерта, чтобы дежурный не гадал, куда смотреть первым. И добавили железное правило: если алерт не требует действия, у него нет права на существование.

Отдельная история это люди. Мы договорились, что ошибочный алерт не повод для стыда, его нормально выключить или переписать. Ввели недельный график, но с честным обменом: если у человека отпуск или семейное событие, он не дежурит, и это не обсуждается. После ночного инцидента следующий день идёт без плановых задач, только разбор и сон. И, что важнее всего, мы начали платить за дежурства отдельно. Кстати, разговор о деньгах снял больше напряжения, чем любые лекции про заботу о команде.

Чтобы спорить не вкусами, а цифрами, мы завели три метрики: сколько раз за смену человека разбудили, какая доля срабатываний оказалась ложной и сколько времени проходит от алерта до реакции. Через три месяца число ночных побудок упало примерно в пять раз, а доля шума снизилась с шестидесяти с лишним процентов до десяти-пятнадцати. Самое смешное, что вместе с этим упало и время реакции на настоящие аварии: люди перестали откладывать сигнал на утро с мыслью, что всё равно ерунда.

Что бы я посоветовал тем, кто только заходит на эту дорогу. Начните с ревизии: выгрузите все алерты за месяц и посмотрите, по каким из них вы реально что-то делали. Честный ответ обычно неприятный. Уберите всё, что не связано с пользователем и его опытом. Напишите ранбуки, пусть даже плохие, их всегда можно дописать. Сделайте ротацию предсказуемой, а выходные настоящими выходными. И не романтизируйте героизм: дежурный, который в третий раз за ночь спасает прод, это не повод для гордости, а симптом сломанного процесса.

Сейчас я дежурю спокойно и даже с некоторым удовольствием. Телефон на ночь не переворачиваю экраном вниз, потому что знаю: если он зазвонит, значит, дело действительно того стоит. По моему опыту, выгорание рождается не из нагрузки, а из бессмысленности нагрузки, и именно эту бессмысленность можно убрать руками. А теперь вопрос к вам: какие приёмы помогли именно вашей команде сделать дежурства человеческими, и что вы до сих пор считаете своим главным провалом в настройке алертов?
 
Назад
Вверх