Skip to content

Hochverfügbarkeit und Katastrophenwiederherstellung

Einleitung

Ein Systemausfall von nur einer Minute kann Verluste in Hunderttausenden bedeuten. Hochverfügbarkeit (High Availability) bezeichnet die Fähigkeit eines Systems, bei Hardwareausfällen, Software-Bugs, Netzwerkproblemen und anderen Störungen weiterhin Dienste bereitzustellen. Katastrophenwiederherstellung (Disaster Recovery) umfasst die Fähigkeit, den Dienst nach großräumigen Katastrophen wiederherzustellen.

Was werden Sie in diesem Artikel lernen?

Nach Abschluss dieses Kapitels werden Sie Folgendes beherrschen:

  • Verfügbarkeitsmetriken: Die Bedeutung von „wie viele Neuner" und die entsprechenden Ausfallzeiten verstehen
  • Failover: Active-Standby, Active-Active und Multi-Site-Hochverfügbarkeitsarchitekturen beherrschen
  • Katastrophenwiederherstellungsstrategien: Die Konzepte RPO und RTO sowie Entwurfsmethoden kennenlernen
  • Fehlererkennung: Mechanismen wie Heartbeat, Probes und Circuit Breaker zur Fehlerentdeckung verstehen
  • Chaos Engineering: Verstehen, wie man aktiv Fehler injiziert, um die Systemresilienz zu verifizieren
KapitelInhaltKernkonzepte
Kapitel 1VerfügbarkeitsmetrikenSLA, Neuner-Grade, Ausfallzeiten
Kapitel 2Failover-ArchitekturActive-Standby, Active-Active, Multi-AZ, Multi-Region Active-Active
Kapitel 3Disaster-Recovery-DesignRPO, RTO, Backup-Strategien
Kapitel 4Fehlererkennung und -wiederherstellungHeartbeat, Circuit Breaker, automatische Skalierung
Kapitel 5Chaos EngineeringFehlerinjektion, Resilienzvalidierung

1. Verfügbarkeitsmetriken: Was bedeuten die „Neuner"?

Verfügbarkeit wird üblicherweise in „Neunern" gemessen. Die Berechnungsformel lautet:

Verfügbarkeit = Betriebszeit / Gesamtzeit x 100 %

Beispiel: Bei einer Ausfallzeit von 43 Minuten in einem Monat (30 Tage = 43.200 Minuten) beträgt die Verfügbarkeit (43.200 - 43) / 43.200 ≈ 99,9 %. Mit jedem zusätzlichen Neuner verringert sich die erlaubte Ausfallzeit um eine Größenordnung, während Implementierungsaufwand und Kosten exponentiell steigen.

VerfügbarkeitsstufeProzentErlaubte monatliche AusfallzeitErlaubte jährliche AusfallzeitTypische Anforderung
2 Neuner99 %7,3 Stunden3,65 TageInterne Werkzeuge
3 Neuner99,9 %43 Minuten8,76 StundenNormale Geschäftssysteme
4 Neuner99,99 %4,3 Minuten52,6 MinutenE-Commerce, SaaS
5 Neuner99,999 %26 Sekunden5,26 MinutenFinanzen, Zahlungen
Availability Level Calculator
Click to see downtime for different numbers of nines
2 nines
99%
3 nines
99.9%
4 nines
99.99%
5 nines
99.999%
3 nines(99.9%)
Yearly downtime
8.76 hours
Monthly downtime
43.8 minutes
Weekly downtime
10.1 minutes
Typical scenarios: Standard web apps, enterprise systems

Was ist eine SLA?

Eine SLA (Service Level Agreement, Service-Vereinbarung) ist die formelle Zusage des Dienstanbieters gegenüber dem Kunden. Zum Beispiel garantiert AWS S3 eine Verfügbarkeit von 99,99 % — wird dieser Wert nicht erreicht, erfolgt eine anteilige Rückerstattung. Eine SLA ist nicht nur eine technische Kennzahl, sondern ein kommerzieller Vertrag — eine SLA-Verletzung bedeutet Geldverlust.

Die Kluft zwischen 3 und 4 Neunern

3 Neuner (99,9 %) bedeuten eine erlaubte monatliche Ausfallzeit von 43 Minuten — ein Deployment-Problem und ein Rollback verbrauchen diese Zeit bereits. 4 Neuner (99,99 %) bedeuten nur noch 4 Minuten Ausfallzeit pro Monat — dies erfordert ein vollständiges Hochverfügbarkeitssystem mit automatischem Failover, Rolling Deployments und Health Checks.


2. Failover-Architektur

Failover ist der Kernmechanismus der Hochverfügbarkeit: Fällt der primäre Knoten aus, wird automatisch auf einen Ersatzknoten umgeschaltet, um den Dienst fortzusetzen.

Active-Standby-Modus

Die häufigste Hochverfügbarkeitsarchitektur. Der primäre Knoten verarbeitet alle Anfragen, der Standby-Knoten synchronisiert Daten in Echtzeit, verarbeitet aber keine Anfragen. Fällt der primäre Knoten aus, übernimmt der Standby-Knoten automatisch.

Normalbetrieb:
  Client → Primärer Knoten (verarbeitet Anfragen)
            Standby-Knoten (synchronisiert Daten, Bereitschaft)

Failover:
  Client → Standby-Knoten (übernimmt als neuer Primärer)
            Ursprünglicher Primärer (ausgefallen, wartet auf Reparatur)

Das kritische Problem ist Split-Brain: Bei einer Netzwerkpartition denken beide Knoten, dass der andere ausgefallen ist, und bieten gleichzeitig Dienste an, was zu Dateninkonsistenzen führt. Die Lösung ist die Einführung eines Quorum-Knotens — mindestens 3 Knoten stimmen darüber ab, wer der Primäre ist.

Multi-AZ (Mehrere Verfügbarkeitszonen)

Der Dienst wird in mehreren Rechenzentren (Verfügbarkeitszonen) derselben Region bereitgestellt. Ein einzelner Rechenzentrumsausfall durch Strom- oder Netzwerkausfall beeinträchtigt den Gesamtdienst nicht. Die Verfügbarkeitszonen der Cloud-Anbieter sind in der Regel über Niedriglatenz-Verbindungen (< 2 ms) verbunden.

Multi-Region Active-Active

Vollständige Dienstreplikas werden in verschiedenen Städten oder sogar verschiedenen Ländern bereitgestellt, wobei jeder Standort Anfragen unabhängig verarbeiten kann. Dies ist die höchste Stufe der Hochverfügbarkeitsarchitektur, aber auch die komplexeste — die zentrale Herausforderung ist die Latenz und Konsistenz der regionsübergreifenden Datensynchronisation.

Failover Strategy Comparison
Click to inspect how each high-availability architecture works
Active-standby
Active-active
Multi-AZ
Multi-region active-active
Active-standby
One primary node handles all requests while a standby waits. If the primary fails, the standby takes over.
Primary node
Serving requests
Standby node
Syncing standby
Pros
Simple architecture
Data consistency is easier to guarantee
Cons
Standby resources are underused
Failover has a brief interruption
ArchitekturVerfügbarkeitsstufeKostenKomplexitätAnwendungsbereich
Einzelplatz99 % ~ 99,9 %NiedrigNiedrigEntwicklung/Test, interne Werkzeuge
Active-Standby99,9 % ~ 99,99 %MittelMittelKleine bis mittlere Geschäftssysteme
Multi-AZ99,99 %HochHochE-Commerce, SaaS-Plattformen
Multi-Region Active-Active99,999 %Sehr hochSehr hochFinanzen, großes Internet

3. Disaster-Recovery-Design: RPO und RTO

Das Katastrophenwiederherstellungs-Design basiert auf zwei Kernmetriken:

MetrikVollständige BezeichnungBedeutungBeispiel
RPORecovery Point ObjectiveWie viel Datenverlust toleriert werden kannRPO=0 bedeutet, dass keine Daten verloren gehen dürfen
RTORecovery Time ObjectiveWie lange eine Ausfallzeit toleriert werden kannRTO=5 Min bedeutet Wiederherstellung innerhalb von 5 Minuten

Zusammenhang zwischen Backup-Strategie und RPO

Backup-MethodeRPOKostenBeschreibung
Tägliche Vollsicherung24 StundenNiedrigMaximal ein Tag Datenverlust
Kontinuierliche inkrementelle SicherungMinutenbereichMittelFortlaufende binlog/WAL-Synchronisation
Synchrone Replikation0HochSchreibvorgang muss auf Replika bestätigt werden

Nicht alle Daten benötigen RPO=0

Ein verlorenes Benutzerprofilbild kann neu hochgeladen werden (RPO=24 h reicht), aber ein Zahlungsdatensatz darf auf keinen Fall verloren gehen (RPO=0). Die Backup-Strategie sollte sich nach dem geschäftlichen Wert der Daten richten, nicht nach dem Gießkannenprinzip.


4. Fehlererkennung und -wiederherstellung

4.1 Fehlererkennungsmechanismen

MechanismusPrinzipErkennungsgeschwindigkeitAnwendungsbereich
Heartbeat-ErkennungRegelmäßiges Senden von Heartbeat-Paketen, Zeitüberschreitung signalisiert FehlerSekundenbereichKnoten-Lebendigkeitserkennung
Health CheckHTTP/TCP-Probe prüft DienststatusSekundenbereichBackend-Erkennung durch Load Balancer
Business-ProbeSimuliert echte Anfragen zur Prüfung der GeschäftslogikSekunden bis MinutenEnd-to-End-Verfügbarkeitsüberwachung

Funktionsweise der Heartbeat-Erkennung: Knoten A sendet in regelmäßigen Abständen (z. B. alle 5 Sekunden) ein „Ich lebe noch"-Signal an den Monitor. Wenn N-mal (z. B. 3-mal) hintereinander kein Heartbeat empfangen wird, wird Knoten A als ausgefallen markiert. Die kritischen Parameter sind Heartbeat-Intervall und Zeitschwellenwert — ein zu kurzes Intervall erhöht den Netzwerk-Overhead, ein zu langes verzögert die Fehlererkennung.

Drei Stufen von Health Checks:

  • Liveness Probe: Läuft der Prozess noch? Wenn nicht, Neustart
  • Readiness Probe: Kann der Dienst Anfragen annehmen? Wenn nicht, aus dem Load Balancer entfernen
  • Startup Probe: Ist der Dienst vollständig gestartet? Wenn nicht, warten und nicht fälschlicherweise als Fehler bewerten

4.2 Automatische Wiederherstellungsmechanismen

MechanismusBeschreibungTypische Werkzeuge
Automatischer NeustartAbgestürzte Prozesse automatisch wieder startensystemd, PM2, K8s
Automatische SkalierungBei steigender Last automatisch Instanzen hinzufügenK8s HPA, Cloud Auto Scaling
Circuit Breaker / DegradationBei Downstream-Fehlern schnelles Versagen, Kaskadenausfälle verhindernHystrix, Sentinel, Resilience4j
Rate LimitingAnfragen oberhalb der Kapazität direkt ablehnenNginx limit_req, Gateway Rate Limiting

Circuit-Breaker-Muster (Leistungsschalter) im Detail:

Der Circuit Breaker ist inspiriert von Sicherungen in elektrischen Schaltkreisen — bei Überstrom wird automatisch unterbrochen, um den gesamten Stromkreis vor dem Durchbrennen zu schützen. In Microservices „öffnet" der Circuit Breaker, wenn ein Downstream-Dienst ausfällt, sodass Anfragen schnell fehlschlagen, anstatt auf Timeouts zu warten.

Drei Zustände des Circuit Breakers:

  Geschlossen (normal) ──→ Fehlerrate über Schwellenwert ──→ Geöffnet (unterbrochen)
       ↑                                                    │
       │                                              Abkühlzeit warten
       │                                                    ↓
       └── Testanfrage erfolgreich ←── Halboffen (Testphase)
  • Geschlossen: Anfragen werden normal weitergeleitet, gleichzeitig wird die Fehlerrate statistisch erfasst
  • Geöffnet: Alle Anfragen kehren sofort mit einem Fehler zurück (schnelles Versagen), Downstream wird nicht mehr aufgerufen
  • Halboffen: Nach Ablauf der Abkühlzeit werden wenige Testanfragen durchgelassen. Bei Erfolg Rückkehr zu „Geschlossen"; bei Fehler weiterhin „Geöffnet"

Fallback (Degradation) ist die Begleitstrategie zum Circuit Breaker: Nach Auslösung des Circuit Breakers wird nicht einfach ein Fehler zurückgegeben, sondern ein „Notfall"-Ergebnis. Zum Beispiel: Ist der Empfehlungsdienst ausgefallen, wird eine Liste beliebter Produkte zurückgegeben; schlägt das Laden des Benutzerprofilbildes fehl, wird ein Standardbild angezeigt.


5. Chaos Engineering: Proaktiv Probleme finden

Die Kernidee des Chaos Engineerings ist: Anstatt auf Fehler zu warten, diese aktiv zu erzeugen und die Systemresilienz in einer kontrollierten Umgebung zu verifizieren.

WerkzeugUrheberKernfähigkeit
Chaos MonkeyNetflixZufälliges Beenden von Instanzen in der Produktionsumgebung
Chaos MeshPingCAPFehlerinjektion in K8s-Umgebungen
LitmusCNCFCloud-natives Chaos-Engineering-Framework
ChaosBladeAlibabaFehlerinjektionswerkzeug für verschiedene Szenarien

Implementierungsschritte für Chaos Engineering

  1. Steady State definieren: Die Metriken des normalen Systembetriebs klar definieren (z. B. P99-Latenz < 200 ms)
  2. Hypothese aufstellen: Wenn ein Knoten ausfällt, sollte sich das System innerhalb von 30 Sekunden automatisch erholen
  3. Fehler injizieren: In kontrolliertem Rahmen Fehler erzeugen (zuerst in der Testumgebung, dann in der Produktion)
  4. Ergebnisse beobachten: Erholt sich das System wie erwartet? Gibt es Kaskadenausfälle?
  5. Schwachstellen beheben: Nach der Entdeckung von Problemen Architektur und Prozesse verbessern

Zusammenfassung

Hochverfügbarkeit ist kein Feature, sondern eine Architekturfähigkeit. Sie muss in jeder Phase — Design, Entwicklung, Bereitstellung und Betrieb — abgesichert werden.

Rückblick auf die wichtigsten Punkte dieses Kapitels:

  1. Neuner-Grade: Jeder zusätzliche Neuner verringert die erlaubte Ausfallzeit um eine Größenordnung, Kosten und Komplexität steigen exponentiell
  2. Failover: Von Active-Standby bis Multi-Region Active-Active — die geeignete Architektur nach Geschäftsanforderungen wählen
  3. RPO und RTO: Backup- und Wiederherstellungsstrategien nach Datenwert und geschäftlicher Toleranz entwerfen
  4. Automatisierung: Fehlererkennung, automatische Neustarts, Circuit Breaker und Degradation sind die Infrastruktur der Hochverfügbarkeit
  5. Chaos Engineering: Aktive Fehlerinjektion zur Validierung der Systemresilienz in einer kontrollierten Umgebung

Weiterführende Literatur