Wissen von A bis Z

Chaos Engineering

Wenn man absichtlich Dinge kaputt macht, um sicherzugehen, dass sie nicht von alleine kaputt gehen, wenn es gerade am schlechtesten passt.

Chaos Engineering ist die disziplinierte Praxis, kontrollierte Experimente in produktiven oder produktionsnahen Systemen durchzuführen, um deren Fähigkeit, unerwartete Bedingungen zu überstehen, empirisch zu prüfen. Statt zu hoffen, dass ein verteiltes System "schon irgendwie" resilient ist, werden gezielt Fehler injiziert — Pod-Ausfälle, erhöhte Latenz, Netzwerk-Partitionen, CPU-Druck, Speicherengpässe, fehlgeschlagene API-Aufrufe — und die Hypothesen über das Systemverhalten überprüft. Die Erkenntnisse fließen in Architektur, Run-/Playbooks, Monitoring und Code-Verbesserungen ein.

Eingesetzt wird Chaos Engineering vor allem in großen verteilten Systemen, SaaS-Plattformen, Banken und Telekommunikationsumgebungen. Bekannte Werkzeuge sind Netflix' Chaos Monkey und die zugehörige "Simian Army", AWS Fault Injection Service, Azure Chaos Studio, Gremlin, Chaos Mesh (CNCF Incubating), LitmusChaos (CNCF Graduated) sowie offene Frameworks wie Toxiproxy. Experimente werden typischerweise als Game Days organisiert: ein klar definierter Zeitraum, in dem Teams Hypothesen aufstellen, Experimente durchführen, beobachten und Schlüsse dokumentieren.

Der Einsatzzweck und das gelöste Problem liegen in der Beobachtung, dass komplexe verteilte Systeme nicht durch lineares Testen vollständig abgesichert werden können. Klassisches Lasttesten oder Failover-Testen erfasst meist nur einzelne, vorher bekannte Fehler. Chaos Engineering geht weiter: Es prüft das Zusammenspiel vieler Komponenten unter realistischen, schwer vorhersagbaren Stressbedingungen und macht "unknown unknowns" sichtbar, bevor sie als ungeplanter Vorfall auftreten.

Historisch wurde Chaos Engineering bei Netflix ab 2011 mit dem Werkzeug Chaos Monkey eingeführt, das zufällig laufende EC2-Instanzen in Produktion abschießt, um die Fähigkeit der Architektur zur Selbstheilung zu erzwingen. 2014 entstand bei Netflix die Rolle "Chaos Engineer" formal. Casey Rosenthal, Aaron Blohowiak, Ali Basiri und andere veröffentlichten 2017 das "Principles of Chaos Engineering"-Manifest sowie 2017/2020 die O'Reilly-Bücher zur Disziplin.

Netflix hat 2010 — also vor Chaos Monkey — schon eine extrem aggressive Form von Resilienztests durchgeführt, indem komplette Datacenter-Ausfälle simuliert wurden. Chaos Monkey war ursprünglich dazu da, Entwickler zu zwingen, ihre Systeme so zu bauen, dass sie zufällige Instanzausfälle aushalten — "you cannot build a system you do not test by breaking it", so eine sinngemäße Aussage des Teams. Diese Haltung gilt heute als kulturelle Grundlage moderner Resilienztechnik.

Zurück