Netflix hat einen Chaos Monkey, der zufällig Produktionsserver abschaltet. Klingt verrückt? Ist es nicht. Wenn Ihr System den Ausfall eines einzelnen Servers nicht überlebt, entdecken Sie das lieber kontrolliert an einem Dienstagnachmittag als unkontrolliert in einer Samstagnacht.
Das Prinzip des Chaos Engineering¶
Definieren Sie den Steady State (das System arbeitet normal). Formulieren Sie eine Hypothese (das System überlebt den Ausfall von Service X). Injizieren Sie einen Fehler (Container beenden, Latenz hinzufügen, Datenbank trennen). Beobachten. Entweder die Hypothese hält (prima) oder nicht (beheben und wiederholen).
Fehlerarten¶
- Instance Failure: Container/Prozess beenden
- Netzwerklatenz: 500ms Verzögerung auf einer Netzwerkschnittstelle hinzufügen
- Network Partition: Service A kann Service B nicht sehen
- Festplatte voll: Festplatte füllen
- DNS-Ausfall: DNS-Auflösung funktioniert nicht
- Clock Skew: Systemuhr verschieben
Werkzeuge¶
Chaos Monkey: Netflix, beendet EC2-Instanzen. Pumba: Chaos-Testing für Docker-Container. tc (traffic control): Linux-Tool zur Simulation von Netzwerkproblemen. Für den Anfang genügen tc und kill -9.
Klein anfangen¶
Sie müssen nicht sofort Produktionsserver abschalten. Beginnen Sie in der Staging-Umgebung. Beenden Sie einen Container und beobachten Sie, was passiert. Fügen Sie Latenz zur Datenbankverbindung hinzu. Trennen Sie Redis. Jedes Experiment deckt eine Schwachstelle auf.
Fehler akzeptieren¶
In einem verteilten System ist ein Fehler keine Ausnahme — er ist der Normalzustand. Chaos Engineering akzeptiert dies und testet systematisch die Resilienz. Beginnen Sie mit einem Experiment pro Woche.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns