Playbook reakcji na incydenty dla małych i średnich zespołów
· 8 min czytania
W skrócie: Gdy w piątek o 23:30 padnie serwer produkcyjny, to nie czas wymyślać procedury od zera. Playbook reakcji na incydenty to dokument definiujący role, komunikację i procedury zanim ich potrzebujesz. Oto minimalny playbook odpowiedni dla 5-20 osobowego zespołu.
W skrócie: Gdy w piątek o 23:30 padnie serwer produkcyjny, to nie czas wymyślać procedury od zera. Playbook reakcji na incydenty to dokument definiujący role, komunikację i procedury zanim ich potrzebujesz. Oto minimalny playbook odpowiedni dla 5-20 osobowego zespołu.
Role podczas incydentu
Jasne role eliminują chaos. Nawet mały zespół potrzebuje przynajmniej:
- Incident Commander (IC) - zarządza incydentem, podejmuje decyzje, eskaluje. Nie pisze kodu.
- Technical lead - osoba, która zna obszar problemowy. Pisze poprawkę.
- Communications lead - aktualizuje status page, klientów, management. Dla małego zespołu może być tym samym co IC.
- Scribe - zapisuje timeline, kto co robi, kiedy. Kluczowe dla post-mortem.
W zespole do 5 osób typowo IC + Technical lead = 2 role podzielone, pozostałe bierze IC.
Poziomy severity
Zdefiniuj 3-4 poziomy ważności z wyprzedzeniem:
- SEV1 (Critical) - główna usługa całkowicie niedostępna. Reaguje się natychmiast, paging również w nocy.
- SEV2 (Major) - znacząca degradacja (część funkcji, niektórzy użytkownicy). Reakcja do 30 min w godzinach pracy, do 1 h poza.
- SEV3 (Minor) - mały wpływ, workaround istnieje. Reakcja do następnego dnia roboczego.
- SEV4 (Cosmetic) - bez wpływu user-facing, idzie do zwykłej kolejki.
Procedura przy SEV1: pierwsze 15 minut
- 00:00 - Detekcja. Alert przychodzi z monitoringu lub od klienta. Ktoś na rotacji on-call potwierdza, że problem jest prawdziwy.
- 00:02 - Aktywacja IC. Otwiera się dedykowany kanał komunikacji (Slack #incident-N lub Discord). Wzywany jest Technical lead.
- 00:05 - Pierwszy status update. Na publicznej status page: "Investigating reports of [problem]." Email do osób wewnętrznych, które powinny wiedzieć.
- 00:10 - Initial diagnostics. Sprawdź ostatnie deploye, wykresy monitoringu, error logi. Co się zmieniło w ostatnich 30-60 min?
- 00:15 - Decyzja: rollback, hotfix czy workaround? Jeśli nie od razu jasne, IC eskaluje lub wzywa kolejnych inżynierów.
Komunikacja: reguła "5 + 30"
Aktualizacja status page co najmniej co 30 minut podczas SEV1, nawet jeśli nie masz nowych info. "Wciąż badamy, ETA wciąż nieznana" to lepszy update niż cisza - klienci przynajmniej wiedzą, że ktoś pracuje nad problemem.
Pierwszy update musi być do 5 minut od detekcji. Bez względu na to, czy znasz przyczynę.
Rollback jako default
Przy SEV1, który zaczął się krótko po wdrożeniu, rollback jest pierwszym wyborem, nie hotfix. Hotfix pod presją w nocy to źródło kolejnych bugów. Rollback przywraca znany dobry stan i daje czas na spokojną diagnostykę rano.
Dla rollbacku trzeba mieć:
- Wersjonowanie wdrożenia (Docker tagi, Git tagi, artefakt wdrożenia)
- Database migrations backwards compatible (jeśli nowa wersja drop-uje kolumnę, stara nie naprawi)
- Udokumentowana procedura rollbacku (komendy, ile trwa, kto może uruchomić)
Post-mortem do 48 godzin
Po każdym incydencie SEV1/SEV2 napisz dokument ze strukturą:
- Summary - 2-3 zdania co się stało, ile trwało, kogo dotknęło
- Timeline - dokładne czasy detekcji, kluczowych akcji, rozwiązania
- Root cause - dlaczego to się stało (powód techniczny + proceduralny)
- Impact - liczba dotkniętych klientów, wpływ na business
- What went well - co zrobiliśmy dobrze (doceń zespół)
- What went wrong - gdzie straciliśmy czas
- Action items - konkretne zadania z ownerem i deadlinem (nie "lepiej testować" - raczej "dodać test integracyjny dla payment flow w ciągu 14 dni, owner: X")
Reguła blameless post-mortem: Nie szukasz winnego, szukasz systemowej słabości. "John wdrożył złą wersję" to zły wniosek - prawidłowy to "proces deploy nie zawierał fazy canary, która złapałaby błąd przed pełnym rolloutem".
Rotacja on-call
Dla zespołu z produktem 24/7:
- Rotacje tygodniowe - krótsze wypalają, dłuższe oznaczają ciągłość kontekstu
- Zawsze primary + secondary on-call. Secondary przejmuje, gdy primary nie reaguje do 5 min.
- Kompensacja (extra payment, time-off) za nocne i weekendowe paging
- Miesięczny "on-call review" - kto był często budzony, co można zautomatyzować
Narzędzia
- Monitoring (ePulz.io, Datadog, New Relic) - detekcja + alerting
- Paging (PagerDuty, Opsgenie, Better Stack) - eskalacja, rotacja, SMS/voice
- Status page (własna, ePulz.io, StatusPage.io) - komunikacja zewnętrzna
- Hosting runbooków (Notion, GitHub Wiki, internal docs) - playbooki i runbooki
- Szablon postmortem (Confluence, Notion template) - standaryzacja
Wnioski
Reakcji na incydent nie da się improwizować pod presją. 30 minut zainwestowane w napisanie playbooka zwróci się przy pierwszej większej awarii - mniej chaosu, krótszy MTTR, lepsza komunikacja z klientami i zespół, który wie co robić.
Zacznij od automatycznej detekcji
ePulz.io rozwiązuje pierwsze minuty reakcji na incydent: detekcja + alerting przez e-mail, Telegram i webhook do Slack / Discord / PagerDuty.
Wypróbuj ePulz.io za darmo - 7 dni bez karty kredytowej.
Załóż konto