Es ist 3 Uhr, die Mail mit Schweregrad 1 kommt, und die Person mit Bereitschaft hat die Kladde seit drei Wochen nicht mehr angesehen. Was tut sie jetzt? Die Antwort darf nicht in ihrem Gedächtnis stehen, sondern in einem Runbook: einer kurzen Anleitung zu genau diesem Alarm, die sagt, was er bedeutet, wie man in zwei Minuten prüft, ob er echt ist, welche Abfragen weiterhelfen, welche Maßnahmen sicher sind und wann man Hilfe holt.

Seit Lektion 3.4.5 verlangt die Kladde von jedem Alarm, dass er seine Abfrage nennt. Die Burn-Rate-Alarme aus 3.15.2 nennen außerdem ein Runbook, das es noch nicht gibt. Diese Lektion schreibt die Runbooks, für jeden Alarm eines, und macht aus dem Schritt, der am häufigsten von Hand und am fehleranfälligsten getippt würde, ein Skript.

Was in ein Runbook gehört

Ein Runbook ist kein Handbuch. Es wird unter Druck gelesen, oft nachts, und muss in fünf Minuten zur ersten Maßnahme führen. Darum hat jedes Runbook der Kladde dieselben Abschnitte in derselben Reihenfolge:

Abschnitt Frage Beispiel
Bedeutung Was ist kaputt, für wen, wie dringend? „Kundinnen können nicht buchen; das Budget verbrennt 14-mal so schnell wie geplant.“
Erste Prüfung Ist der Alarm echt? Höchstens zwei Minuten eine Abfrage oder ein Aufruf der Seite
Abfragen Womit grenze ich ein? Dateien unter ops/queries/, nie Abfragen im Text
Sichere Maßnahmen Was darf ich ohne Rückfrage tun, in welcher Reihenfolge? zurückrollen, einen Schalter ausschalten, einen Job neu starten
Nicht tun Was sieht naheliegend aus und richtet Schaden an? „Nicht die Warteschlange leeren.“
Eskalation Wann hole ich wen? „SEV 1 nach 30 Minuten nicht eingedämmt: Vertretung anrufen“

Sicher heißt dabei dreierlei: Die Maßnahme lässt sich rückgängig machen, sie ändert und löscht keine Daten, und sie vergibt keine Rechte. Zurückrollen auf eine vorige Revision ist sicher; die Datenbank auf einen früheren Zeitpunkt zurückzusetzen ist es nicht. Was nicht sicher ist, steht im Runbook als Eskalation, nicht als Maßnahme.

Runbooks liegen als Markdown unter runbooks/ im Repository, neben dem Code, den sie betreffen. Damit gilt für sie, was für Code gilt: Änderungen gehen als Pull Request mit Review, und wer einen Alarm ändert, sieht im selben Pull Request, ob das Runbook noch passt.