Постмортем инцидента для публикации
Превращает внутренний разбор аварии в публичный постмортем: хронология, настоящая причина вместо «человеческого фактора», выводы без самобичевания и без корпоративного тумана.
Пример ответа
Недоступность оформления заказов 14 марта, 09:12–11:47
Что произошло
В течение двух часов тридцати пяти минут пользователи не могли оформить заказ: страница оплаты возвращала ошибку. Просмотр каталога и корзина работали штатно. Затронуто около 4 200 попыток оформления. Платежи не проходили и не списывались — двойных списаний и потери денег не было. Данные не потеряны.
Хронология
- 09:12 — выкатили обновление сервиса оплаты. Выкатка прошла без ошибок, метрики в первые минуты в норме.
- 09:14 — доля ошибок оформления начала расти. Автоматический алерт не сработал: порог был настроен на пятиминутное окно и абсолютное число ошибок, а трафик утром низкий.
- 09:41 — первое обращение в поддержку.
- 09:58 — поддержка эскалировала на дежурного. От начала проблемы до обнаружения — 46 минут.
- 10:15 — дежурный подтвердил связь с выкаткой, начали откат.
- 10:32 — откат завершён, ошибки не прекратились. Стало ясно, что дело не только в коде.
- 11:20 — нашли настоящую причину: изменение схемы в базе, применённое в рамках той же выкатки, откатом кода не отменяется.
- 11:47 — применили обратную миграцию, оформление восстановилось.
Причина
Выкатка содержала миграцию, которая делала поле обязательным. Старый код, к которому мы вернулись при откате, это поле не заполнял — поэтому откат не только не помог, но и закрепил проблему на следующие семьдесят пять минут.
Глубже: наш процесс выкатки исходит из того, что откат кода возвращает систему в прежнее состояние. Для выкаток с миграциями схемы это неверно, и в процессе это нигде не было отражено. Проверка совместимости миграции со старой версией кода не входила в чек-лист.
Что мы уже сделали
- Разделили выкатку кода и миграции схемы: миграция уезжает отдельным шагом заранее и обязана быть совместимой с текущей версией кода.
- Переделали алерт: теперь он смотрит на долю ошибок, а не на их число, и срабатывает за девяносто секунд независимо от объёма трафика.
Что делаем сейчас
- Добавляем в конвейер автоматическую проверку: прогон тестов предыдущей версии кода против новой схемы. Ожидаем к концу месяца.
Что запланировано
- Учения по откату на предпродакшене раз в квартал, первые — в апреле.
Замечания редактора
- Заменил обезличенные обороты: «было принято решение об откате» → «начали откат»; «произошёл сбой в работе сервиса» → конкретное описание симптома; «в результате инцидента пострадали пользователи» → число попыток оформления.
- Убрал «человеческий фактор». В исходном разборе причиной значилось «инженер не учёл совместимость миграции». Это не причина: чек-листа, который заставил бы учесть, не существовало. Причина — в процессе, и сформулирована так.
- Вынес наверх факт о деньгах. В вашем варианте «списаний не было» стояло в конце. Это первое, что хочет знать читатель, — поднял в первый абзац.
- Не хватает данных: сколько из 4 200 попыток вернулись позже и оформили заказ? Если большая часть вернулась — скажите, это заметно меняет восприятие. Если нет — не говорите ничего, но будьте готовы к вопросу.
- Перепроверьте перед публикацией: интервал 09:14 взят из графика, а не из логов, — уточните по логам. И решите, называть ли брокер и версию базы: сейчас они не названы, но специалисты всё равно догадаются, а умолчание выглядит как попытка что-то скрыть.
- Убрал: фамилию дежурного, внутреннее имя сервиса и оборот «к счастью, всё обошлось» — при недоступности оплаты на два с половиной часа он звучит пренебрежительно.
Похожие промпты
Структура технической статьи для Хабра
Собирает план технической статьи под аудиторию Хабра: заход, который не выглядит рекламой, честная структура разбора и места, где нужны детали, а не общие слова.
Разбор дискуссии в треде: аргументы сторон
Разбирает длинный спор в X: кто что утверждает, какие аргументы опираются на факты, где стороны спорят о разном и в чём они на самом деле согласны.
Анализ трендов в X по теме
Разбирает, что обсуждают в X по вашей теме прямо сейчас: сюжеты, тональность, кто задаёт тон, где органика, а где накрутка.
Вирусные посты для Telegram-канала
Пишет посты для Telegram-канала с высоким потенциалом пересылок: цепляющие первые строки, проверенные виральные форматы и призывы, которые запускают репосты.