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.

Kategorie: Cloud a DevOpsAktualizováno

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

  1. 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/payments
  2. Rollback 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

  1. Azure Automation runbook types(otevře se v novém okně)Microsoft
  2. Google Cloud Architecture Framework(otevře se v novém okně)Google Cloud
  3. Debugging Kubernetes(otevře se v novém okně)Kubernetes
  4. AWS Well-Architected(otevře se v novém okně)Amazon Web Services

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.