Definition Chaos Testing | Chaos Engineering Was ist Chaos Engineering?

Aktualisiert am 02.04.2024 Von Dipl.-Ing. (FH) Stefan Luber 3 min Lesedauer

Chaos Engineering ist eine Testmethode zur Verbesserung der Resilienz von Anwendungen, Services und verteilten Systemen. Sie provoziert in kontrollierter Form Fehlersituationen und erzeugt unerwartete oder chaotische Szenarien. Durch Beobachtung und Auswertung der Reaktion lassen sich Schwachstellen oder problematisches Verhalten aufdecken und beseitigen. Ziel ist es, robuste Anwendungen und Systeme zu schaffen.

Chaos Engineering oder Chaos Testing ist eine Testmethode zur Verbesserung der Resilienz von Anwendungen und Systemen, bei der mit unerwarteten, chaotischen Szenarien getestet wird.(Bild:  gemeinfrei /  Pixabay)
Chaos Engineering oder Chaos Testing ist eine Testmethode zur Verbesserung der Resilienz von Anwendungen und Systemen, bei der mit unerwarteten, chaotischen Szenarien getestet wird.
(Bild: gemeinfrei / Pixabay)

Chaos Engineering wird manchmal als Chaos Testing bezeichnet. Es handelt sich um eine Testmethode für Anwendungen, Services und verteilte Systeme. Die Testmethode setzt die getesteten Systeme in kontrollierter Form unerwarteten Fehlern oder chaotischen Bedingungen aus und beobachtet ihr Verhalten. Durch Auswertung der Beobachtungen lassen sich problematisches Verhalten und Schwachstellen identifizieren und beseitigen. Ziel der Testmethode ist es, die Resilienz der Systeme zu verbessern und robuste Anwendungen, Services und Infrastrukturen bereitzustellen, die auch chaotischen Bedingungen oder nicht erwarteten Fehlersituationen standhalten. Chaos Engineering unterscheidet sich von traditionellen Testansätzen darin, dass bewusst Ausfälle oder Fehler provoziert werden, die jenseits klassischer Testspezifikationen liegen. Traditionelle Testmethoden stoßen vor allem bei komplexen verteilten Systemen an ihre Grenzen, da im Vorfeld definierte Testszenarien aufgrund der vielen Abhängigkeiten nur einen kleinen Teil der möglichen Fehlerszenarien abdecken können. Chaos Engineering hingegen stützt sich auf die Chaostheorie und konzentriert sich darauf, zufälliges oder unvorhersehbares Verhalten zu provozieren, um Fehler oder Schwachstellen aufzudecken. Zunächst geht es nicht darum, Fehler zu finden, sondern Fehlersituationen zu erzeugen. Chaos Testing sorgt quasi für kontrollierte Unordnung und beobachtet dann das Verhalten der zu testenden Systeme.

Bekanntheit erlangte das Chaos Engineering unter anderem durch Netflix; das Unternehmen gilt als einer der Pioniere dieser Testmethode. 2011 entwickelte Netflix das Testtool Chaos Monkey, mit dem sich die Ausfallsicherheit des Netflix-Services und seiner zugrundeliegenden Infrastruktur testen lässt. Das Tool erzeugt zufällig Ausfälle, indem beispielsweise virtuelle Maschineninstanzen deaktiviert werden. Aus Chaos Monkey entstand bei Netflix eine ganze Suite ähnlicher Tools mit der Bezeichnung Simian Army. Der Code von Chaos Monkey ist seit 2012 unter Apache-2.0-Lizenz veröffentlicht. Mittlerweile existieren zahlreiche weitere Open-Source-basierte oder kommerzielle Softwarelösungen für das Chaos Testing. Viele dieser Lösungen tragen das Wort "Affe" beziehungsweise "Monkey" und andere von diesen Begriffen abgeleitete Wörter in ihrem Namen. Das lässt sich darauf zurückführen, dass die Tools ein affenähnliches, chaotisches Verhalten zeigen und nach dem Zufallsprinzip nicht vorhersehbare Fehler in den Anwendungen oder Systemen verursachen. Das Verhalten der Tools ist vergleichbar mit einer Horde von Affen, die sich in einem Rechenzentrum vergnügen.

Prinzipieller Ablauf des Chaos Engineering

Chaos Testing hat keinen chaotischen, sondern einen kontrollierten Ablauf. Das Wort "Chaos" bezieht sich darauf, dass während der Tests unerwartete oder chaotische Szenarien erzeugt werden. Chaos Engineering sorgt beim Testen für eine kontrollierte Unordnung, indem Fehler einzeln, parallel oder sequenziell bei verschiedenen Ressourcen provoziert werden. Häufig findet Chaos Engineering direkt in der produktiven Umgebung statt. Chaos Testing kann aber auch in einer speziell bereitgestellten, produktionsähnlichen Testumgebung durchgeführt werden. Der Ablauf ist in verschiedene Phasen unterteilbar. Diese Phasen sind:

  • 1. Definition der Hypothese: Annahmen treffen, wie Systeme außerhalb normaler Bedingungen reagieren.
  • 2. Vorhersage des möglichen Schadensausmaßes: Vorhersagen, wie sich hypothetischen Ereignisse auswirken könnten.
  • 3. Starten des Tests: Durchführen des Chaos-Experiments in einer Produktionsumgebung (oder Testumgebung) unter Berücksichtigung von Schutzmaßnahmen, die einen vollständigen Kontrollverlust beim Testen verhindern.
  • 4. Beobachten und Messen der Auswirkungen: Beobachten, ob Fehler oder problematisches Verhalten auftreten, und Erfassen von Metriken zur detaillierten Beschreibung des Verhaltens. Werden keine Schwachstellen identifiziert, gegebenenfalls Ausweitung des Tests, bis eine Fehlersituation eintritt.
  • 5. Auswerten der Beobachtungen: Analysieren, ob die Beobachtungen der Hypothese entsprechen.

Nach diesen Phasen kann die Behebung des erkannten Fehlverhaltens und der gefundenen Schwachstellen stattfinden.

Vorteile des Chaos Engineering

Mit Chaos Testing lassen sich Resilienz und Robustheit von Anwendungen, Services und verteilten Systemen steigern. Die Tests erzeugen unerwartete Szenarien außerhalb klassischer Testspezifikationen und berücksichtigen vielfältige Fehlersituationen. Das Verhalten von Systemen oder Applikationen wird auch bei nur schwer vorherzusehende Szenarien getestet. Die Testmethode eignet sich besonders gut für komplexe verteilte Systeme und Services wie cloudnative Anwendungen mit vielen Abhängigkeiten. Mit entsprechenden Tools und Kontroll- und Schutzmechanismen kann Chaos Engineering direkt in Produktivumgebungen durchgeführt werden. Chaos Engineering ist aber auch in Testumgebungen möglich. Es existieren zahlreiche kommerzielle und Open-Source-basierte Tools und Lösungen, mit denen sich das Chaos Testing automatisieren lässt.

(ID:49777492)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung