Настройка Post-Mortem процесса для анализа инцидентов

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка Post-Mortem процесса для анализа инцидентов
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Настройка Post-Mortem процесса для анализа инцидентов

Post-mortem — это структурированный анализ инцидента после его устранения. Цель — понять, почему произошло, и предотвратить повторение. Без post-mortem одинаковые инциденты случаются снова и снова, потому что никто не занимался устранением корневых причин.

Принципы blameless post-mortem

Blameless — не про поиск виноватых. Если инженер допустил ошибку, причина — в системе, которая позволила эту ошибку совершить без защитных механизмов. Правильный вопрос: «Почему система позволила это произойти?», а не «Кто нажал не ту кнопку?».

Культура blame приводит к тому, что люди скрывают инциденты и не признают ошибки. Это хуже, чем сам инцидент.

Когда проводить post-mortem

  • SEV1 инциденты — всегда, в течение 48 часов
  • SEV2 инциденты — всегда, в течение 72 часов
  • SEV3 — по решению команды, если инцидент выявил системную проблему
  • Повторяющиеся SEV4 — стоит провести, если один и тот же симптом третий раз

Структура post-mortem документа

# Post-Mortem: [Краткое описание инцидента]

**Дата:** 2025-11-15
**Severity:** SEV1
**Длительность:** 47 минут (14:23 - 15:10 UTC)
**Impact:** ~12,000 пользователей не могли завершить оплату

## Хронология

| Время | Событие |
|---|---|
| 14:23 | PagerDuty алерт: error rate > 5% на payment service |
| 14:28 | Инженер принял алерт, начал расследование |
| 14:35 | Обнаружено: БД не принимает новые подключения |
| 14:42 | Выявлена причина: connection pool исчерпан |
| 14:55 | Применено временное решение: restart connection pool manager |
| 15:10 | Сервис восстановлен, ошибки ушли |

## Корневая причина

Connection pool (pgBouncer) был настроен на max_client_conn=100.
После деплоя новой версии приложения количество воркеров увеличилось с 4 до 8,
каждый открывает до 15 соединений. При пиковой нагрузке: 8 * 15 = 120 > 100.

## Что пошло не так

- pgBouncer max_client_conn не пересматривался при изменении числа воркеров
- Нет алерта на приближение к лимиту connection pool (было бы видно заранее)
- В deployment checklist нет пункта про проверку DB connection settings

## Что сработало хорошо

- Алерт обнаружил проблему через 2 минуты после начала
- Runbook для DB connection issues помог быстро локализовать причину
- Команда отреагировала в рамках SLA

## Action Items

| Задача | Ответственный | Срок |
|---|---|---|
| Увеличить max_client_conn до 300, пересчитать под текущую архитектуру | @db-team | 2 дня |
| Добавить метрику pgbouncer_clients_active и алерт при > 80% | @ops-team | 3 дня |
| Обновить deployment checklist: раздел DB connections | @team-lead | 1 неделя |
| Документировать формулу расчёта connection pool | @db-team | 1 неделя |

Проведение post-mortem встречи

Участники: все, кто участвовал в ответе на инцидент + технический лид + при необходимости product owner.

Длительность: 60-90 минут. Если нужно больше — проблема в подготовке документа.

Структура встречи:

  1. Обзор хронологии (10 мин) — все должны иметь одинаковое понимание фактов
  2. Анализ корневых причин (20-30 мин) — техника 5 Why
  3. Что можно было сделать лучше (15 мин)
  4. Что сработало хорошо (5 мин) — важно для морального духа
  5. Формирование action items (15 мин) — с ответственными и сроками

Техника 5 Why для поиска корневой причины

Почему сервис упал?
→ Connection pool исчерпан

Почему connection pool исчерпан?
→ Число соединений превысило max_client_conn

Почему число соединений превысило лимит?
→ Число воркеров увеличилось при деплое

Почему увеличение воркеров не было учтено в конфиге pgBouncer?
→ Нет процесса проверки DB-конфига при изменении масштаба

Почему нет такого процесса?
→ Deployment checklist не охватывает зависимости конфигов

Корневая причина: отсутствие процесса проверки конфигурационных зависимостей при деплое. Action item направлен именно сюда.

Хранение и аналитика post-mortem

Документы хранятся в Confluence/Notion с тегами: severity, service, cause-category. Категории причин:

  • Configuration (неправильный конфиг)
  • Deployment (проблема при деплое)
  • Dependency failure (сторонний сервис)
  • Capacity (нехватка ресурсов)
  • Human error (ошибочное действие)

Ежеквартальный обзор: какие категории преобладают → куда направить инвестиции в надёжность.

Action Items: как избежать кладбища задач

Post-mortem бесполезен, если action items никто не выполняет. Обязательные условия:

  • Конкретный ответственный (не «команда», а имя)
  • Чёткий срок
  • Тикет в Jira/Linear создаётся сразу на встрече
  • Обзор выполнения на следующей post-mortem встрече

Сроки внедрения процесса

  • Шаблон документа + хранилище — 1 день
  • Обучение команды + первый тестовый post-mortem — 1-2 дня
  • Интеграция с incident tracker — 1 день