Startseite » IT-Wissen – was ist Chaos Engineering?

IT-Wissen – was ist Chaos Engineering?

by Daniel Rottländer
Chaos Engineering – eine Strategie für mehr Systemstabilität

Chaos Engineering – eine Strategie für mehr Systemstabilität

In der Softwareentwicklung wird angestrebt, mit möglichst geringem Aufwand eine Software zu entwickeln, die einen großen Nutzen bietet. Als nützlich wird eine Software betrachtet, wenn sie korrekt funktioniert und dabei sicher, verlässlich und effizient im Umgang mit Ressourcen ist. Die Zuverlässigkeit von Systemen und Software wird in der Regel durch verschiedene Arten von Tests wie Unit Tests, Integration Tests sowie System Tests überprüft, die gemeinsam die sogenannte Testpyramide bilden. Mit der zunehmenden Komplexität verteilter Systeme stoßen diese traditionellen Testmethoden allerdings oft an ihre Grenzen, was die Bedeutung von Chaos Engineering in den Vordergrund rückt.

Was sich hinter Chaos Engineering verbirgt und welche Vorteile diese besondere Vorgehensweise bietet, erfahren Sie in diesem Blogbeitrag.

Was ist Chaos Engineering?

Chaos Engineering zielt darauf ab, die Robustheit von Systemen zu verbessern, indem diese gezielt außerhalb ihrer spezifizierten Leistungsmerkmale auf Belastbarkeit getestet werden. Der Fokus liegt dabei nicht auf dem Finden von Fehlern, sondern auf der bewussten Erzeugung von Fehlern. Systeme werden beispielsweise unter extrem hoher Last und Stress getestet, wobei die Konsequenzen oft unvorhersehbar sind.

Einfach ausgedrückt ist Chaos Engineering ein experimenteller Ansatz, der Hypothesen über die Grenzen von Systemen bestätigt oder widerlegt. Das Ziel ist es, grundlegende Schwachstellen zu identifizieren und zu beheben, um die Belastbarkeit und Leistungsfähigkeit des Systems zu erhöhen.

Chaos Monkey – ein wichtiger Vorgänger

Netflix gilt als Vorreiter im Bereich des Chaos Engineering. Im Jahr 2011 entwickelte das Unternehmen das Tool Chaos Monkey, das dazu dient, die Ausfallsicherheit von IT-Infrastrukturen zu prüfen. Chaos Monkey simuliert einen zerstörerischen Affen, der in einem Rechenzentrum Chaos anrichtet, indem er beispielsweise Kabel herausreißt und Geräte lahmlegt. Die Idee dahinter war, die Systeme so zu entwickeln, dass sie auch bei derartigen Störungen funktionsfähig bleiben. Netflix startete mit dem gezielten Abschalten von Computern im eigenen Produktionsnetzwerk, um die Reaktion der übrigen Systeme auf solche Ausfälle zu testen.

Heute ist Chaos Monkey ein Teil der Tool-Suite Simian Army. Chaos Engineering hat sich für viele Unternehmen mit umfangreichen, verteilten Systemen als wichtig erwiesen, da die Komplexität, Robustheit und Belastbarkeit der Systeme wesentliche Faktoren für ihre Wettbewerbsfähigkeit und ihren finanziellen Erfolg darstellen.

Werden beispielsweise mehrere Server mit Windows Server eingesetzt, die auch bei einzelnen Ausfällen den Gesamtbetrieb optimal gewährleisten sollen, ist ein mehrfach abgesichertes System immer von Vorteil.

So ist der typische Ablauf

Chaos Engineering verläuft nicht chaotisch, sondern strukturiert und geplant. Zuerst wird festgelegt, welche Bereiche oder Komponenten über ihre Grenzen hinaus belastet werden sollen. Dabei kann es sich um die Infrastruktur, das Netzwerk oder Anwendungen handeln. Diese drei Bereiche werden oft als Ebenen im Chaos Engineering bezeichnet, und eine Kombination dieser Ebenen ist möglich. Danach folgt ein geplanter Ablauf: Zuerst wird eine Hypothese definiert und das mögliche Ausmaß der Schäden prognostiziert, was oft als Explosionsradius bezeichnet wird. Anschließend wird der Test gestartet, die Auswirkungen werden beobachtet und mit geeigneten Kennzahlen gemessen, die danach ausgewertet werden.

Das Ziel von Chaos Engineering ist es, Fehler und Schwachstellen in Systemen aufzudecken. Wenn während eines Tests keine Probleme auftreten und die Systeme stabil bleiben, wird der „Explosionsradius“ erweitert. Dies kann durch das Erhöhen der gleichzeitigen Zugriffe auf die Infrastruktur, das Senden größerer Datenmengen durch das Netzwerk oder das Abschalten weiterer Systemkomponenten geschehen. Der Prozess wird fortgesetzt, bis das System versagt und Fehler aufweist. Anschließend beginnt die Phase der Fehlerbehebung, die in der Praxis oft zeitaufwendig und kostspielig ist. Ideal wäre es, nach der Behebung der Schwachstellen den gesamten Testablauf zu automatisieren, um Effizienz und Systemstabilität kontinuierlich zu verbessern. Wer auf moderne Lösungen wie Windows Server 2022 setzt, hat die ideale Softwaregrundlage für fortschrittliche Automatisierungen.

Chaos Engineering – das sind die Vorteile

In der Unternehmenspraxis treten häufig Ereignisketten auf, die unvorhergesehen und kostspielig sind. Ein Beispiel dafür ist ein Systemausfall bei einem Car-Sharing-Anbieter, der dazu führen kann, dass Autos nicht gemietet werden können und der Umsatzausfall mit jeder Minute steigt. Unternehmen haben daher ein starkes Interesse daran, fehlertolerante, redundante und widerstandsfähige Systeme zu schaffen. Chaos Engineering ist eine Methode, um solche Systeme zu entwickeln und zu warten.

Der größte Nutzen liegt in der Steigerung der Robustheit und Resilienz eines Systems. Diese Praxis schärft das Bewusstsein für potenzielle Komponenten- oder Systemausfälle und deren Konsequenzen. Sie deckt auch Abhängigkeiten auf, die zwischen verschiedenen technischen Ebenen bestehen und die nicht immer sofort erkennbar sind. Dies fördert ein tieferes Verständnis für das Verhalten des Systems.

Nach der Analyse der Ergebnisse und der Behebung identifizierter Schwachstellen kann das Experiment automatisiert werden, was die Zuverlässigkeit des Systems unmittelbar verbessert. Zudem werden durch Chaos Engineering Fehler in einem kontrollierten Umfeld provoziert, bevor sie in der Realität Schaden verursachen können, was zukünftige Probleme verhindert.

Allerdings ist dieser Ansatz auch mit Aufwand verbunden. Die Identifikation und Behebung von Schwachstellen erfordert sorgfältige Planung, Implementierung und Überprüfung, was sowohl finanzielle als auch organisatorische Ressourcen beansprucht. Trotz der offensichtlichen Vorteile muss Chaos Engineering für ein Unternehmen also auch finanziell machbar sein.

Das könnte Ihnen auch gefallen