Takéoperational runbook, incident runbook, playbookPokročilý
Definice
Runbook je provozní návod pro opakovatelný zásah v systému, typicky při incidentu, údržbě nebo nasazení. Popisuje předpoklady, rozhodovací body, přesné kroky, ověření výsledku a eskalaci, aby tým neimprovizoval pod tlakem. Kvalitní runbook bývá testovaný, vlastněný konkrétním týmem a průběžně upravovaný podle skutečných incidentů i změn infrastruktury.
Proč runbook snižuje chaos při incidentu
Runbook dává týmu předem připravený postup pro situace, ve kterých je čas drahý a chyba se rychle násobí. Provozní inženýr nemusí hledat historické poznámky, ptát se v chatu ani hádat, zda je bezpečné restartovat službu. Runbook sjednocuje reakci napříč směnami, zkracuje zaučení nových lidí a pomáhá po incidentu doložit, co se skutečně provedlo.
Dobrý runbook není román ani obecný checklist. Užitečný runbook vede člověka od prvního signálu, třeba alarmu, logu nebo push notifikace, k ověření dopadu, nápravě a předání informace dalším lidem. Kroky mají být proveditelné i ve tři ráno, kdy operátor nezná celý kontext služby.
Co má obsahovat provozní runbook
Provozní runbook obvykle začíná jasným účelem: jaký problém řeší a kdy se nemá použít. Následují předpoklady, například požadovaná oprávnění, přístup do observability nástrojů a bezpečnostní omezení. Každý krok by měl mít očekávaný výsledek, protože pouhé „restartuj službu“ nestačí. Operátor potřebuje vědět, podle čeho pozná úspěch i selhání.
- Spouštěč: konkrétní alarm, metrika, tiket nebo zákaznický dopad.
- Diagnostika: dotazy do logů, dashboardy, příkazy a rozhodovací větve.
- Náprava: bezpečné změny, rollback, restart, přepnutí provozu nebo omezení funkce.
- Eskalace: vlastník služby, bezpečnostní tým, databázový specialista nebo management incidentu.
- Kontrola: metriky, syntetické testy, zákaznický kanál a zápis do postmortemu.
Kde runbook končí a automatizace začíná
Runbook může být čistě textový dokument, spustitelný skript nebo kombinace obojího. Text je vhodný pro rozhodování, komunikaci a výjimky. Automatizace je vhodná pro kroky, které mají jednoznačný vstup a bezpečný výsledek, například sběr diagnostiky nebo obnovení neúspěšného jobu. Automatizovaný runbook ale stále potřebuje popsat limity, rizika a způsob ručního zásahu.
Rozumný tým často nejprve napíše ruční runbook, použije ho při několika skutečných incidentech a teprve opakované části převede do skriptu. Tím se snižuje riziko, že automatizace rychle a spolehlivě provede špatný zásah.
Runbook v incident managementu
Incidentový runbook pomáhá udržet disciplínu v okamžiku, kdy se technický problém mění na organizační problém. Runbook může určit, kdo vede incident, kdo komunikuje se zákazníky, kdo provádí změny v produkci a kdo pouze sleduje metriky. Oddělení rolí brání tomu, aby několik lidí současně měnilo stejný systém.
Runbook také chrání před tichým věděním v hlavě jednoho seniorního člověka. Pokud je postup známý jen ústně, dovolená nebo odchod člena týmu se stává provozním rizikem. Udržovaný runbook dělá z individuální zkušenosti sdílený provozní majetek.
Údržba runbooku po reálném zásahu
Runbook stárne stejně rychle jako infrastruktura. Změněný název deploymentu, přesunutý dashboard nebo nové oprávnění může z funkčního návodu udělat past. Po každém použití by tým měl zaznamenat, které kroky fungovaly, které chyběly a které byly nebezpečně nejasné. Krátká revize po incidentu má často větší hodnotu než velká dokumentační akce jednou ročně.
Příklady z praxe
Výpadek platebního API
Platební API začne vracet chyby 503 a monitoring spustí alarm pro vysokou chybovost. Runbook navede službu konajícího inženýra ke kontrole dashboardu, ověření závislé databáze, bezpečnému restartu deploymentu a potvrzení, že health check znovu prochází. Výsledkem je zásah se stejným pořadím kroků bez ohledu na to, kdo má službu právě na telefonu.
kubectl -n payments rollout restart deployment/payment-api kubectl -n payments rollout status deployment/payment-api curl -fsS https://status.example.com/health/paymentsRollback po neúspěšném nasazení
E-shop zaznamená po nočním deployi výrazně více neúspěšných objednávek. Release runbook určí hranici pro rollback, osobu oprávněnou změnu schválit, komunikační kanál pro podporu a kontrolu objednávek po návratu staré verze. Výsledkem je rychlé obnovení provozu a jasný záznam, proč se změna vrátila.
Časté omyly
- MýtusRunbook je jen dokumentace pro juniory.
- Ve skutečnostiRunbook používají i seniorní lidé, protože při incidentu snižuje kognitivní zátěž a sjednocuje reakci týmu. Senior často lépe ví, proč krok existuje, ale i senior může pod tlakem přeskočit kontrolu nebo zapomenout eskalaci.
- MýtusKdyž máme monitoring, runbook už nepotřebujeme.
- Ve skutečnostiMonitoring upozorní, že se něco děje, ale sám neurčí bezpečný postup nápravy. Runbook propojuje signál z monitoringu s diagnostikou, rozhodnutím, opravou a kontrolou výsledku.
Časté dotazy
- Kdy má smysl napsat runbook?
- Runbook se vyplatí vytvořit ve chvíli, kdy se stejný zásah může opakovat, má dopad na zákazníky nebo vyžaduje koordinaci více lidí. Typickým kandidátem je incident s databází, výpadek externí služby, ruční rollback, obnova certifikátu nebo reakce na bezpečnostní upozornění. Jednorázový experiment runbook nepotřebuje, ale opakovaný noční zásah bez dokumentace je signál, že provozní návod chybí.
- Čím se runbook liší od postmortemu?
- Runbook popisuje konkrétní provozní postup pro známou situaci, zatímco postmortem zpětně analyzuje incident a hledá příčiny, dopad a zlepšení. Runbook se používá během zásahu, protože říká, co udělat a jak ověřit výsledek. Postmortem se píše po události a často vede k úpravě runbooku, pokud tým zjistí, že některý krok chyběl nebo byl zavádějící.
- Kdo má runbook udržovat aktuální?
- Runbook může patřit týmu, který vlastní službu, ne jednotlivci, který postup kdysi napsal. Prakticky to znamená jasného vlastníka, revizi při změnách architektury a kontrolu po každém větším incidentu. Pokud runbook nemá vlastníka, rychle zastará. Zastaralý návod je horší než žádný, protože dává operátorovi falešnou jistotu v kritické situaci.
- Jak podrobný má být runbook?
- Runbook má být dost přesný na provedení bez dlouhého dohledávání, ale nemá zakrývat rizika slepým seznamem příkazů. U kritických kroků je vhodné uvést očekávaný výstup, kontrolní metriku a okamžik, kdy má operátor zastavit a eskalovat. Příliš obecný runbook nepomůže juniorovi, příliš mechanický runbook může navést člověka ke škodlivé změně v nevhodném kontextu.
Zdroje
- Azure Automation runbook types(otevře se v novém okně)
- Google Cloud Architecture Framework(otevře se v novém okně)
- Debugging Kubernetes(otevře se v novém okně)
- AWS Well-Architected(otevře se v novém okně)