Chaos Engineering: Für kontrollierte Unordnung sorgen

Die Regeln des Chaos Engineering

Damit Chaos Engineering kontrolliert und kontinuierlich stattfinden kann, gibt es ein paar zentrale Regeln, die jedem bewusst sein müssen. Ohne ein definiertes Vorgehen und eine Absprache führt Chaos Engineering nur zu weiterem Chaos, aus dem keine Verbesserung erwirkt werden kann

  1. Man sollte mit Kollegen über geplante Chaos-Experimente vorher sprechen.
  2. Wenn die Konsequenzen des Experiments bereits klar sind, lohnt es sich nicht.
  3. Chaos Engineering soll Hypothesen beweisen oder widerlegen und nicht für Überraschungen sorgen.
  4. Chaos Engineering soll helfen, verteilte Systeme besser zu verstehen.
  5. Der Radius der Experimente sollte begrenzt sein.
  6. Man sollte während des Experiments immer Herr der Lage sein.

Prinzipien des Chaos Engineering

Das Chaos Engineering sollte immer die folgenden Phasen durchlaufen. Ein kleiner Start mit einem geringen Radius ist zu empfehlen. Einfach irgendwo einen Stecker zu ziehen und abzuwarten, was passiert, hat nichts mit Chaos Engineering zu tun. Man soll kein unkontrolliertes Chaos auslösen, sondern es aktiv bekämpfen und ihm vorbeugen. Empfehlenswerte Lektüren sind die [Link auf principlesfchaos.org:Website%20principlesofchaos.org] und ein kostenloses E-Book zum Thema.

Die Level des Chaos Engineering

Beim Chaos Engineering geht es nicht nur darum, etwas an der Infrastruktur zu ändern, um Schwachstellen oder die sogenannten Dark Debts zu finden. Unter Dark Debts versteht man die "dunklen" technischen Schulden, die zu den denkbar ungünstigen Zeitpunkten in Erscheinung treten. Es ist bekannt, dass Fehler oder Schwachstellen vorhanden sind, wie sie sich aber im Betrieb der Applikation verhalten und unter welchen Umständen sie auftreten, ist unbekannt. Die Dark Debts gilt es gezielt ans Licht zu bringen, unter kontrollierten und limitierten Bedingungen. Treten die Dark Debts in Produktion auf, fehlt schlichtweg die Zeit, sich ihrer in Ruhe anzunehmen und sie zu eliminieren.

Chaos Engineering findet auf vielen Ebenen statt. Man führt es auf insgesamt sechs Leveln durch. Dabei geht es darum, Fehler in der Kommunikation und in der Behandlung von Ausfällen innerhalb des Teams und aller beteiligten Ressourcen zu erkennen. Hier kommen die Unternehmenskultur und das Zusammenspiel aller Beteiligten zum Tragen. Ein Experiment hat nicht zum Ziel, eine Schwachstelle und einen Schuldigen zu finden, sondern darum, die Schwachstellen zu erkennen und zu beseitigen. Das kann heißen, dass manche Prozesse für den Betrieb der Anwendung falsch oder sogar störend sind. Das kann man mit Experimenten der ersten drei Level feststellen. Man kann herausfinden, wie schnell ein Service-Ticket geöffnet wird, sollte ein wichtiger Service ausfallen, und wie lange es dauert, bis der Service wieder verfügbar ist. Vieles lässt sich automatisieren, aber auch das muss funktionieren und testbar sein.

Die Level des Chaos Engineering (Abb. 7)

Die unteren drei Level sind die, auf denen man mit geeigneten Chaos-Tools Angriffe und Veränderungen durchführen kann. Der Chaos Monkey von Netflix beschränkt sich zum Beispiel auf das Level "Infrastruktur" und schaltet AWS-EC2-Instanzen ab. Was mit einem Chaos Monkey begann, hat sich zu einem eigenständigen Bereich in vielen Unternehmen entwickelt. Mit Plattformen wie dem Chaos Toolkit lassen sich Experimente kontinuierlich und automatisiert durchführen.