Lasst die Affen frei! Kontinuierliche Verbesserung mit Chaos Engineering

Würdest du einen wilden Affen mit einem Schlagstock in deinem Rechenzentrum freilassen, geschweige denn eine ganze Armee davon? Diese hinterlassen garantiert eine Szene der Verwüstung: zerstörte Server, zerrissene Kabel und kaputte Festplatten! Doch wenn du kontinuierliche Verbesserung anstrebst, wärst du gut beraten, genau dies zu tun. Hier erfährst du mehr über Chaos Engineering und wie Netflix dieses mit dem Werkzeug “Chaos Monkey” in die IT-Gemeinschaft eingeführt hat.

Erinnerst du dich noch, als Netflix ein DVD-Vertreiber war? Damals im Jahr 2008 hatte die Firma ihre erste grössere Störung. Wegen einer Datenbankkorruption ist ihr Versandsystem ausgefallen. Ein Drittel der 8.4 Millionen Kunden konnten nicht mehr bedient werden. Was für ein Weckruf! Als sich das Unternehmen 24 Monate später mitten in seiner Umwandlung zur Streaming-Plattform befand, war eines klar: Es muss starke Resilienz ins System eingebaut werden, aber wie?

Der Aufstieg der Affen

Die Lösung war keine technische Meisterleistung, sondern eine verrückte Idee: Absichtlich Störungen in der Produktionsumgebung produzieren, um potenzielle Schwachstellen zu identifizieren. Diese können dann, bevor sie schwerwiegende Probleme verursachen, behoben werden. Netflix hat zu diesem Zweck “Chaos Monkey” entwickelt. Eine Software, die nach dem Zufallsprinzip einen Server während seiner normalen Laufzeit abschaltet. Das Betriebsteam war herausgefordert, aber positive Auswirkungen auf die Zuverlässigkeit und Robustheit der Systeme liessen nicht auf sich warten. Der Erfolg war so gross, dass mit der Zeit eine ganze Werkzeugsammlung hergestellt wurde: “The Simian Army”. Damit kann der Streaming-Dienstleister seine Infrastruktur gegenüber einer noch grösseren Auswahl an Ausfällen und Störungen testen.

Explorer Monkey
Netflix war mit der Software “Chaos Monkey” ein Wegbereiter für Chaos Engineering! (Bildquelle: Michel Brunner – Powered by Dall.E 3)
Affen als Vorreiter

Netflix hat mit ihrer Affen-Armee Pionierarbeit geleistet. Daraus ist eine neue Disziplin im Bereich der Software- und Systementwicklung formalisiert worden: Chaos Engineering, die Kunst, resiliente Systeme zu schaffen. Wenn du gemäss dem dritten Weg von DevOps eine Kultur des stetigen Lernens in deinem Unternehmen einführen möchtest, ist Chaos Engineering genau, was du brauchst.

Organisiertes Chaos

Natürlich solltest Du nicht planlos in der Produktionsanlage irgendwelche Server deaktivieren oder Netzwerkverbindungen unterbrechen. Ein ordentliches Vorgehen ist zwingend, wenn du aussagekräftige Erkenntnisse zum System gewinnen willst. Idealerweise folgst du diesen vier Schritten:

  1. Hypothesenbildung – Formuliere Annahmen darüber, wie das System unter bestimmten chaotischen Bedingungen reagieren wird.
  2. Experimente durchführenLass die Affen frei! Füge kontrollierte Störungen ein, um die Hypothesen zu testen und das System auf seine Reaktion zu prüfen.
  3. Beobachtung und Messung – Sammle während der Experimente Daten über die Leistung und das Verhalten des Systems.
  4. Verbesserungen vornehmen – Anhand der gesammelten Daten kannst du die Ergebnisse analysieren, Schlussfolgerungen ziehen und gegebenenfalls Massnahmen für die Verbesserung der Systemresilienz einleiten.
Cop Monkey
Chaos Engineering ist komplex und muss mit der nötigen Vorsicht eingesetzt werden! (Bildquelle: Michel Brunner – Powered by Dall.E 3)
Chaos… aber sicher!

Chaos Engineering muss sorgfältig und verantwortungsvoll durchgeführt werden. Folgendes bewährtes Verfahren hilft dir, gröbere Probleme zu vermeiden:

  1. Beginne in einer sicheren Umgebung – Starte deine Chaos-Experimente in einer isolierten, nicht-produktiven Umgebung. Somit bekommst du ein besseres Verständnis für mögliche Auswirkungen, bevor du sie in der Produktion durchführst.
  2. Automatisiere Experimente – Führe automatisiert und regelmässig Experimente durch. Somit kannst du kontinuierliche Resilienz im System ermöglichen.
  3. Verwende gezielte Experimente – Willkürliche Störungen zu erzeugen ist nicht zielführend. Deine Experimente müssen darauf abzielen, spezifische Schwachstellen oder Szenarien zu testen, die du zuvor identifiziert hast.
  4. Lerne und passe an – Analysiere die Ergebnisse nach jedem Experiment. Mit diesem Wissen kannst du das System verbessern und es widerstandsfähiger machen.
Reading Monkey
Möchtest du das Thema Chaos Engineering vertiefen? Ich empfehle dir dieses Buch! (Bildquelle: Michel Brunner – Powered by Dall.E 3)
Zum Schluss

Das Beispiel von Netflix zeigt, wie mächtig der dritte Weg von DevOps – Kontinuierliches Experimentieren und Lernen – sein kann. Aus einer verrückten Idee entstand eine systematisch strukturierte Disziplin, die mittlerweile von zahlreichen renommierten Unternehmen wie LinkedIn, Google oder Microsoft praktiziert wird. Heute kannst du dich sogar schon als Chaos Engineer zertifizieren lassen. Wie cool ist das denn?! Du bist vielleicht nur einen Schritt davon entfernt, die Macht des dritten Weges freizusetzen.

Frage in die Runde: Inspiriert dich Chaos Engineering? Betreibst du es in deinem Unternehmen oder hast du Erfahrung damit? Hinterlasse einen Kommentar!

Beitrag teilen

Michel Brunner

Michel Brunner ist Team- und Projektleiter bei armasuisse. Er ist seit über 15 Jahren im Sicherheitsumfeld tätig und leitet agile Entwicklungsprojekte. Resilienz ist jeweils eine wichtige Anforderung an Systeme, die auch in degradierten Lagen weiterhin einsatzfähig bleiben müssen. Michel Brunner bloggt aus dem Unterricht des CAS DevOps Leadership and Agile Methods.

Alle Beiträge ansehen von Michel Brunner →

Schreibe einen Kommentar