Best Practices Incident Response für Solo-Entwickler

Zusammenfassung

Solo-Devs brauchen drei essenzielle Dinge für Incident Response: zuverlässiges Alerting mit Health Checks ohne False Positives, Runbooks für die 3-Uhr-morgens-Momente, und selbst gebaute Status-Pages. Diese drei Basics dauern nur ein Wochenende zum Bauen und ersparen dir später etwa 40 Minuten beim Debuggen von Incidents.

Dunkle Entwickler-Workstation in der Nacht mit Incident-Response-Monitoring-Dashboard auf mehreren Bildschirmen

Best Practices Incident Response

Best Practices für Incident Response werden für Enterprise-Teams geschrieben, nicht für Solo-Devs. Du baust eine Seite project, sie findet Nutzer, und eines Morgens tweetet jemand, dass sie seit drei Stunden down ist. Du hast es nicht bemerkt. Kein Alerting. Kein Runbook. Keine Status-Page.

Das ist der Fehlerfall für 90 % der selbst gebauten Produkte. Nicht ein Breach, nicht ein katastrophaler Infrastructure-Event, nur: niemand hat dir gesagt, dass es broken ist, du hattest keinen Plan, und deine Nutzer haben es vor dir bemerkt.

Das erfordert nicht ein 40-seitiges Playbook oder einen Enterprise-Tool-Stack. Es braucht drei Dinge: wissen, wenn etwas broken ist, wissen, was man dagegen tun kann, und Status kommunizieren an jeden, dem es wichtig ist. Dieser Guide behandelt jedes davon aus der Perspektive des Builders, inklusive was man selbst baut und was man aus bestehenden Tools zusammenstöpselt.

Was zuerst kaputtgeht, wenn man solo on-call ist

Das erste Incident, das du solo managst, wirst du 12 Minuten damit verbringen, herauszufinden, wo die Probleme liegen, bevor du 4 Minuten damit verbringst, sie tatsächlich zu fixen.

Das ist der echte Overhead. Nicht Downtime. Der Koordinations-Overhead eines Teams von einer Person, die nichts aufgeschrieben hat. Wo sind die Environment Variables? Welcher Service failet tatsächlich? Betrifft das alle Nutzer oder nur einen Customer? Du verbringst das Golden Window eines Incidents damit, nach Antworten zu suchen, die du hätte pre-answern sollen.

Das Fix ist keine komplexe Tooling. Es ist, diese Fragen beantwortet zu haben, bevor es 3 Uhr morgens ist.

Es gibt einen nützlichen Test: stell dir vor, deine Production API geht jetzt gerade down. Du hast 10 Minuten. Kannst du die relevanten Logs finden, die failing Component identifizieren, und rollback oder hotfix machen, ohne mehr als zwei Tabs aufzumachen, die du nicht schon offen hattest? Wenn die Antwort nein ist, das ist genau das, was Incident Response für dich tut.

Solo developer at desk late at night with phone showing multiple alert notifications and server monitoring on laptop screen

Die drei Dinge, die jedes Indie-Incident-Response-Setup wirklich braucht

Bevor du etwas baust, benenne, was das System tun muss:

Jedes Incident-Response-Tool, von PagerDuty bis zu deinem eigenen Cron Job, ordnet sich in einen dieser drei Jobs ein. Baue die simpleste Version, die alle drei macht, dann stopp.

Die Versuchung ist, auf die Enterprise-Version hinzubauen: On-Call-Schedules, Escalation Policies, Severity Levels P0 bis P5, Postmortem-Templates. Das macht Sinn bei 20 Engineers und 500K Nutzern. Bei einem Dev und 500 Nutzern, diese Abstraktion frisst deine Wochenenden und bleibt ungenutzt. Die minimale Version ist an einem Wochenende machbar. Ship die zuerst.

Dein Alerting-Layer bauen: Das False-Positive-Problem kommt zuerst

Jeder Dev, der sein eigenes Alerting gebaut hat, hat die gleiche Story: die erste Rule, die er geschrieben hat, war falsch, und er hat den Pager nach zwei Wochen Noise abgedreht.

Starte mit einer Check, die wirklich wichtig ist. Ein failing Health-Check-Endpoint reicht.

# Einfacher Health-Check-Endpoint (Express/Node)
app.get('/health', (req, res) => {
  res.json({ status: 'ok', timestamp: Date.now() });
});

Dann wire einen Cron Job, um ihn alle 60 Sekunden zu pingen. Wenn es drei Mal nacheinander failet, bekommst du eine SMS. Das ist dein erstes Alerting-Layer. Es catchet 80 % der Incidents, die Nutzer beeinflussen.

Die False-Positive-Rate in diesem Setup ist nahe null. Du wirst gepaged, wenn der Service wirklich down ist, nicht wenn eine CPU-Spike ein Threshold triggered, das nie kalibriert war. Das ist das Schwierigste zu machen beim Alerting: der Alert muss wahr sein, jedes Mal, oder du trainierst dich selbst, ihn zu ignorieren.

Log-basiertes Alerting kommt, nachdem der Uptime-Check funktioniert und vertraut ist. Für Self-Hosted-Stacks handhabt Grafana das gut zu kleinerem Cost. Datadog fängt Sinn zu machen an, wenn du mehr als zwei, drei Services managst und einen unified View mit einfacher Integration zu deiner Deployment-Pipeline willst.

Runbooks sind das Dokument, das du um 23 Uhr schreibst, um um 3 Uhr morgens zu lesen

Ein Runbook ist keine Dokumentation. Dokumentation erklärt, wie etwas funktioniert. Ein Runbook sagt einer zukünftigen Version von dir, die stressed, kaum wach und unter Druck ist, exakt was du jetzt tun musst.

Das Format, das für Solo-Projekte funktioniert:

Das ist alles. Schreib es, wenn du nicht in einem Incident bist. Lese und update es nach einem Incident, um zu sehen, ob es tatsächlich nützlich war.

Wo du Runbooks speicherst, spielt weniger Rolle als die Gewohnheit, sie zu schreiben. Eine Notion-Seite, eine Markdown-Datei in deinem Repo, ein geteiltes Doc. Der Test: kannst du es auf deinem Phone in 30 Sekunden öffnen, halbwach, um 3 Uhr morgens?

Das Praktische-Argument für Notion über eine Repo-Datei ist Mobile-Zugang. Wenn du neben deinem Phone schläfst, weil du Production Traffic hast und ein schlechtes Gefühl zu einem Deploy, das du gerade geschippt hast, das zählt. GitBook ist auch eine solide Option, wenn du etwas mehr Struktur bevorzugst, das auch als public Developer Docs funktioniert.

Developer desk with open notebook showing incident response decision flowchart, laptop terminal and sticky notes with diagrams

Eine öffentliche Status-Page bauen: Was Nutzer tatsächlich wollen, wenn Dinge brechen

Deine Nutzer brauchen kein Real-Time-Observability-Dashboard. Sie brauchen zwei Dinge: ist es für alle broken, und kennst du es?

Die minimale Status-Page hat drei Elemente:

Nutzer, die während eines Incidents eine Status-Page checken, lesen keine Architecture Diagrams. Sie wollen aufhören, ihre eigene Setup zu debuggen, weil sie jetzt wissen, dass es nicht sie sind.

Das zu bauen dauert unter vier Stunden:

  1. Eine statische HTML-Seite mit einem JavaScript-Snippet, das Status von einem Endpoint holt

  2. Eine Supabase-Tabelle mit zwei Feldern: status (enum) und message (text)

  3. Ein Cron Job, der den Status basierend auf deinem Health-Check-Result updated

  4. Ein Admin-Endpoint hinter Auth, um eine manuelle Message zu schreiben, wenn nötig

Der harte Teil ist nicht das Build. Es ist die Gewohnheit, es während eines Incidents zu updaten, anstatt direkt ins Fix zu gehen. Das Update dauert 30 Sekunden und spart 15 Customer-Support-Emails.

Das andere Argument für das Selberbauen: Commercial Status-Page-Tools costen $30 bis $100 pro Monat für das, was fundamentally ein JSON-Endpoint und eine statische HTML-Seite ist. Baue es einmal, besitze es. Deine Nutzer brauchen kein Statuspage.io. Sie brauchen eine URL, die noch funktioniert, wenn deine Haupt-Domain down ist.

Status page dashboard showing service health indicators with green and amber status dots and uptime graph on dark UI

Post-Mortems, wenn du die einzige Person bist, um die Schuld zu geben

Post-Mortems in Enterprise-Settings sind dafür, nicht Individuen zu blamen und systemische Fehler zu identifizieren. Solo, du bist das System. Die Psychologie ist anders, aber die Practice zählt trotzdem.

Der Grund, Post-Mortems solo zu schreiben: du wirst die gleiche Klasse von Problem zweimal lösen, wenn du es nicht tust. Drei Monate später wirst du eine Database Query angucken, die locked hat, weil eines Index, das du nicht addiert hast, und du hast eine vague Memory, fix etwas wie das vorher, aber nicht erinnern, was.

Ein Fünf-Minuten-Format, das hält:

  1. Was ist passiert (ein Absatz, nur Facts, kein Blame-Sprache)

  2. Was du machtest, um es zu fixen

  3. Eine Sache, um im System zu ändern

  4. Eine Sache, um in deinem Process zu ändern

Schreib es an dem gleichen Ort wie deine Runbooks. Es wird der Input für das nächste Runbook-Update. Nach sechs Monaten schafft das einen lightweight Record von deinem System's Failure Modes, das kein Enterprise-Postmortem-Tool für einen Solo-Builder replica.

Sollst du das bauen oder bestehendes Tools zusammenstöpseln?

Die ehrliche Antwort hängt davon ab, wo du bist.

Wenn du null zahlende Customers hast: baue das ganze Ding selbst. Health-Check-Cron, Status-Page, Notion-Runbooks. Das ist das richtige Project, um die Patterns zu lernen. Es shipped an einem Wochenende. Es lehrt dich, was Incident Response wirklich braucht. Und wenn du später decide, es zu bauen und zu verkaufen als Product, du hast die Requirements auf dir selbst validiert, first.

Wenn du zahlende Customers hast, die auf Uptime heute zählen: starte mit bestehendem Tools. Wire Grafana Cloud Free Tier, set up ein Uptime Monitor, und öffne eine Notion-Runbook-Seite diesen Nachmittag. Du brauchst Coverage jetzt, nicht nachdem drei Wochenenden Bauen.

Das Piece, es wert, selbst zu bauen, egal Stage: die Status-Page. Besitze sie, host sie auf einer separaten Domain, baue sie diesen Wochenende. Alles andere kannst du aus bestehendem Free Tiers zusammenstöpseln, bis die Complexity Bauen rechtfertigt.

Die Lücke, die kein Incident-Response-Guide bespricht

Das Problem ist nicht Tooling. Es ist die 48 Stunden zwischen "Ich sollte Alerting setzen" und "Ich habw Alerting tatsächlich gesetzt."

Die meisten Solo-Dev-Stacks haben genug Observability Primitives, um ein erstes Incident-Response-Layer in einem einzelnen Tag zu bauen. Der Health-Check-Endpoint existiert irgendwo. Die Logs sind irgendwo. Die Deployment Pipeline hat etwas Error Handling. Was fehlt ist 90 Minuten focused Wiring: Health-Check zu Uptime-Monitor, Uptime-Monitor zu SMS oder Telegram Alert, eine Notion-Seite mit drei Runbooks, statische Seite mit einem Supabase Status Endpoint.

Das ist nicht das Project, das du zu Nutzern shippst. Das ist das Project, das du für dich shippst.

Baue es diesen Wochenende. Das erste Mal, wenn etwas um 3 Uhr morgens bricht und du es in 4 Minuten fixst anstatt 40 Minuten es zu finden, wirst du verstehen, warum Incident Response Best Practices existieren. Nicht weil Enterprise Teams es mandatierten, sondern weil die Alternative schlimmer ist.

Häufig gestellte Fragen

Warum dauert ein Incident länger als der Fix selbst?
Weil du 12 Minuten brauchst, um herauszufinden, wo das Problem ist — wo die Environment Variables sind, welcher Service failet — bevor du 4 Minuten brauchst, um es zu fixen. Das ist der Koordinations-Overhead eines Ein-Personen-Teams ohne Dokumentation.
Was ist der wichtigste erste Alerting-Layer?
Ein Health-Check-Endpoint, der von einem Cron Job alle 60 Sekunden gepingt wird. Wenn es drei Mal hintereinander failet, sendest du dir selbst eine SMS. Das catchet 80 % der Incidents, die deine Nutzer bemerken.
Wie vermeidest du Alert Fatigue?
Der Alert muss wahr sein, jedes Mal. Startet mit einer einfachen Check (Health Endpoint), die fast immer zuverlässig ist. False Positives trainieren dich, den Pager zu ignorieren. Besser ein funktionierender Alert als hundert falsche.
Was sollte in einem Runbook stehen?
Drei Sektionen: Was ist broken (nur Observable Symptoms), Ist es urgent? (betrifft es zahlende Customers?), Was tun (drei bis fünf Schritte, schnellstes zuerst). Schreibe es um 23 Uhr, damit du es um 3 Uhr morgens halb-schlafend lesen kannst.
Sollte ich eine Status-Page bauen oder ein Commercial Tool nutzen?
Baue deine eigene. Commercial Tools kosten $30-100/Monat für das, was im Grunde ein JSON-Endpoint und eine HTML-Seite ist. Wenn deine Haupt-Domain down ist, brauchst du eine URL, die noch funktioniert — das geht nur mit deinem eigenen Hosting.
Wann solltest du bestehende Tools zusammenstöpseln vs. selbst bauen?
Wenn du null zahlende Customers hast, baue alles selbst. Wenn du Customers mit Uptime-Anforderungen hast, nutze Free Tiers von bestehenden Tools (Grafana Cloud, Datadog Free). Die Status-Page solltest du immer selbst bauen.
Was ist der Unterschied zwischen Dokumentation und einem Runbook?
Dokumentation erklärt, wie etwas funktioniert. Ein Runbook sagt dir, was du JETZT tun sollst, wenn du stress-voll und halb-wach bist. Ein Runbook ist ein Action-Plan, keine Erklärung.