Ausfalldomänen und Zuverlässigkeitsberechnungen
Problem
Sie betreiben zwei Anwendungsserver, damit einer den Ausfall des anderen überleben kann. Beide hören auf, wenn ihre gemeinsame Stromversorgung ausfällt. Später sind beide gesund, aber die Kasse schlägt immer noch fehl, weil die einzige Zahlungsabhängigkeit nicht verfügbar ist.
Lösung — Gemeinsame Ausfallursachen und notwendige Abhängigkeiten untersuchen
Eine Ausfalldomäne umfasst Komponenten, die durch dieselbe Ursache gemeinsam ausfallen können, etwa eine Maschine, Stromversorgung, Netzwerkkomponente oder ein Deployment. Zwei Kopien können weiterhin dieselbe Ausfallursache teilen.
Betrachten Sie den vollständigen Benutzerablauf und alle dafür benötigten Komponenten. In einem vereinfachten Modell ergeben zwei erforderliche Komponenten mit unabhängiger Verfügbarkeit von 99,9% eine Verfügbarkeit von 0,999 × 0,999 = 99,8001%. Diese Berechnung setzt übereinstimmende Messbereiche und wirklich unabhängige Fehler voraus. Die Multiplikation der von Anbietern veröffentlichten SLAs stellt nicht die Verfügbarkeit Ihrer Anwendung fest.
Replikate werden auf relevante Ausfalldomänen verteilt, gemeinsame Abhängigkeiten geprüft und Failover getestet. Das verbleibende System muss genug Kapazität für die Last besitzen. Derselbe fehlerhafte Rollout kann auch zwei getrennte Server gleichzeitig lahmlegen.
Die Verfügbarkeit betrifft die Frage, ob der Dienst den gewünschten Betrieb ausführen kann. Die Dauerhaftigkeit betrifft die Frage, ob gespeicherte Daten überleben. Eine Datenbank kann vorübergehend nicht erreichbar sein, während ihre Daten intakt bleiben.
Kerngedanke: Die Zuverlässigkeit hängt davon ab, welche Fehler geteilt werden, welche Abhängigkeiten erforderlich sind und ob die Wiederherstellung unter realer Last funktioniert.