Startseite
Themen
Was ist Chaos-Engineering?
Chaos-Engineering ist das absichtliche und kontrollierte Herbeiführen von Fehlern in der Produktions- oder Vorproduktionsumgebung, um deren Auswirkungen zu verstehen und eine bessere Verteidigungshaltung und Wartungsstrategie für Zwischenfälle zu planen.
Jeden Tag besteht die Möglichkeit, dass eine kritische Anwendung oder Infrastruktur eines Unternehmens ausfällt und damit die Bereitstellung von Services für Kunden gefährdet. Die Ursachen für einen Ausfall können vielfältig sein, z. B. Sicherheitsverletzungen, Fehlkonfigurationen oder Service-Unterbrechungen. Die Wahrscheinlichkeit von Fehlern oder Unterbrechungen kann steigen, wenn mehr Anwendungen und Daten in der Cloud gehostet werden, was zu einer Zunahme von Sicherheitsproblemen führen kann.
Eine Möglichkeit, mit solchen Unterbrechungen umzugehen, ist das Chaos-Engineering. Dabei handelt es sich nicht um einen Prozess, bei dem Techniker beliebig Instanzen oder Services beenden oder Systeme auf andere Weise grundlos ausfallen lassen. Dieser Prozess identifiziert vielmehr potenzielle zukünftige Probleme und ermöglicht es den technischen Teams, proaktiv Lösungen zu finden und sie später in der Live-Umgebung zu vermeiden.
Chaos-Engineering ist wichtig, denn ein Fehler oder eine Unterbrechung kann ein Unternehmen ausbremsen. Dabei wird wertvolle Zeit darauf verwendet, eine Lösung zu finden, während die Ausfallzeit immer länger wird. Netflix erfuhr dies aus erster Hand, als das Unternehmen von einem lokalen System in die Cloud wechselte1 (Link befindet sich außerhalb von ibm.com). 2008 kam es zu einem Ausfall, der zu einer dreitägigen Unterbrechung der Service-Bereitstellung führte. Dies geschah vor der Umstellung auf Videostreaming, was den Ausfall exponentiell verteuert hätte. Daraufhin beschloss Netflix, alles zu tun, um Unterbrechungen zu minimieren, und begann, Chaos-Engineering in seine Workflows zu integrieren. So lassen sich Probleme erkennen, bevor sie auftreten, und der Schaden kann minimiert werden, wenn es zu einem unvermeidlichen Ausfall kommt.
Als Netflix von einem privaten Rechenzentrum auf Amazon Web Services (AWS) wechselte, um auf die Unzuverlässigkeit der Cloud zu reagieren, entwickelte Netflix Chaos Monkey2 (Link befindet sich außerhalb von ibm.com), ein Open-Source-Tool, das zufällige Vorfälle in IT-Services und -Infrastrukturen erzeugt, um Schwachstellen zu identifizieren, die behoben oder durch automatische Wiederherstellungsprozeduren behoben werden können. Viele Unternehmen nutzen mittlerweile Chaos Monkey, um ihre Chaos-Engineering-Experimente durchzuführen.
Chaos-Engineering bietet einen wichtigen Schutz vor Infrastrukturstörungen, Ausfällen oder fehlenden Komponenten in der Produktionsumgebung eines Unternehmens. Es hilft Site Reliability Engineers (SREs) und anderen Mitgliedern des DevOps-Teams bei der kontinuierlichen Bereitstellung von Services, indem sie erhebliche Unterbrechungen ihres Services vermeiden, ihre Schwachstellen besser verstehen und wissen, wie sie die Auswirkungen im Falle einer Unterbrechung minimieren können.
Selbst ein kleines Problem im Code kann angesichts der verschiedenen Programmabhängigkeiten katastrophale Auswirkungen auf die gesamte Produktionsumgebung haben. Ein Fehler im Transaktionssoftwaresystem für ein Finanzdienstleistungsunternehmen kann beispielsweise zu einem Verlust von Millionen von Dollar 3 (Link befindet sich außerhalb von ibm.com) führen. Unternehmen können vielleicht nicht alle IT-Vorfälle vermeiden, aber sie können den Schaden minimieren, indem sie das Chaos-Management nutzen, um wahrscheinliche Szenarien und deren bestmögliche Lösungen zu verstehen.
IBM Instana Observability bietet unternehmensweit einen benutzerfreundlichen Zugriff auf die gewünschten Daten mit dem nötigen Kontext, um eine schnelle Problemvermeidung und -behebung zu ermöglichen.
Unternehmen mit hoher Resilienz, digital ausgereiften Systemen und guter Observability durch Dashboards und andere Tools sollten Chaos-Engineering nutzen, da sie sofort auf Probleme reagieren können, die durch Experimente entstehen.Unternehmen, denen es an dieser Observability mangelt4 (Link befindet sich außerhalb von ibm.com), brauchen möglicherweise zu lange, um die experimentellen Ausfälle zu beheben, die sie durch Chaos-Engineering erzeugen.
Chaos-Engineering ist auch ein Muss für Unternehmen, die Clouds, insbesondere Public Clouds, und cloudnative Anwendungen nutzen. Die Public Cloud bringt potenzielle Ausfallprobleme mit sich, die eine Koordination mit dem Cloud-Provider erfordern, was eine andere Herangehensweise als bei On-Premise-Problemen erfordert.
Laut Constellation Research5 (Link befindet sich außerhalb von ibm.com) behandeln Unternehmen, die die Cloud nutzen, IT-Vorfälle immer noch häufig ohne Berücksichtigung der unterschiedlichen Auswirkungen von Cloud und Software-as-a-Service (SaaS) auf diese Vorfälle.
Darüber hinaus schafft die zunehmende Verwendung von Microservices, die die Anzahl der in einem System ausgeführten Hosts oder Container erhöht, einzigartige Herausforderungen (Link befindet sich außerhalb von ibm.com), die durch Chaos-Experimente aufgedeckt und gelöst werden können. Die Komplexität wird vom Code-Design in den Systembetrieb verlagert, was die Komplexität zwar nicht beseitigt, aber eine stärkere Automatisierung ermöglicht.
Chaos-Engineering kann Unternehmen auch dabei helfen, die Geschwindigkeit ihrer Pipelines für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) zu erhöhen. Die Integration von Chaos-Engineering in CI/CD, wie es Netflix getan hat6 (Link befindet sich außerhalb von ibm.com), ermöglicht es Unternehmen, kontinuierliche Experimente zu automatisieren und gleichzeitig deren mögliche Auswirkungen zu kontrollieren.
Und da Unternehmen zunehmend über APIs mit Partnern verbunden sind, kann ein Problem in ihren Systemen auch negative Auswirkungen auf andere Unternehmen haben.
Der Einsatz von Chaos-Engineering hilft Unternehmen, die Schwachstellen in ihrer Architektur zu erkennen und zu beheben, wodurch sie schließlich zukünftige Ausfälle vorhersehen können. Erfolgreiches Chaos-Engineering hilft Unternehmen, technische Ausfälle mit erheblichen Auswirkungen auf den Kunden zu minimieren, und unterstützt den Aufbau stärkerer und widerstandsfähigerer komplexer Systemarchitekturen. Sobald sich ein Unternehmen für Chaos-Engineering entschieden hat, ist der nächste Schritt die Entscheidung, ob es in der Vorproduktions- oder Produktionsumgebung ausgeführt werden soll.
DevOps-Teams haben mehrere Möglichkeiten, Chaos-Engineering-Experimente durchzuführen, um verschiedene Systemprozesse zu testen.
Die Schaffung des idealen Chaos-Engineering-Prozesses erfordert mehrere Prinzipien, um sicherzustellen, dass ein Unternehmen ein verteiltes System in großem Umfang einsetzen kann.
Unternehmen, die Chaos-Engineering einsetzen, müssen entscheiden, ob sie Chaos-Tests in ihren Produktions- oder Vorproduktionsumgebungen durchführen wollen. Es gibt mehrere Gründe, warum Chaos-Engineering in Produktionsumgebungen am vorteilhaftesten ist. Live-Umgebungen bieten die genaueste Umgebung, um zu verstehen, wie sich ein Vorfall auf die Customer Experience auswirkt. Ein weiterer Grund ist, dass die Vorproduktionsumgebung möglicherweise nicht genau die gleichen Einstellungen wie die Live-Umgebung hat, was zu einer gewissen Variabilität bei den Experimenten führt.
So könnte es beispielsweise passieren, dass ein Vorfall in einer Vorproduktionsumgebung keine realistische Reaktion hervorruft, da das Volumen des Datenverkehrs nicht dem der Live-Umgebung entspricht. Die Vorproduktionsumgebung hat außerdem vielleicht nicht die gleichen Sicherheitskonfigurationen wie die Live-Umgebung.
Einige Unternehmen befürchten, absichtlich Probleme mit ihrer Live-Website zu verursachen, und führen daher ihre Experimente auf ihrer Vorproduktions- oder Entwicklungs-Website durch. Dadurch wird sichergestellt, dass auftretende Probleme die Live-Customer-Experience nicht beeinträchtigen. Um dies zu umgehen, verwenden einige Unternehmen zunächst Vorproduktionsumgebungen, um den Prozess in den Griff zu bekommen, bevor sie in die Live-Produktionsumgebung wechseln.
Unternehmen entscheiden je nach ihrer Risikotoleranz, welche Umgebung sie verwenden. Letztendlich zielt Chaos-Engineering darauf ab, tatsächliche Probleme im großen Maßstab zu testen. Deshalb vermitteln Produktionsumgebungen das genaueste Bild davon, was passiert und was behoben werden muss.
Chaos-Engineering bietet Unternehmen mehrere entscheidende Vorteile.
Kunden haben hohe Erwartungen an die Verfügbarkeit der Services, die sie von Unternehmen beziehen. Jede Ausfallzeit oder Nichterreichbarkeit dessen, wofür sie bezahlt haben, kann die Kundenzufriedenheit ernsthaft beeinträchtigen und zu Umsatzeinbußen und Reputationsschäden führen. Durch das Testen von Systemen und die Ermittlung von Lösungen wird das Risiko verringert, dass ein System über einen längeren Zeitraum ausfällt.
Störungen können durch fehlerhaften Code, Serverprobleme oder externe Bedrohungen verursacht werden. Letztere können selbst bei ausgezeichneten Sicherheitsmaßnahmen auftreten. Chaos-Engineering hilft bei der Identifizierung von Problemen, die ausgenutzt werden können, sodass Unternehmen Patches und Fehlerbehebungen (Link befindet sich außerhalb von ibm.com) einführen können, um ihre Services zu sichern.
Chaos-Engineering ermöglicht es Unternehmen, einen fundierteren Plan zu erstellen, wie sie Probleme angehen, die in Zukunft auftreten werden. Unternehmen, die Chaos-Engineering einsetzen, verfügen über spezifische Pläne für viele Vorfälle, wodurch diese sich schneller beheben lassen und die Ausfallzeiten kürzer werden. Chaos-Engineering kann die Ausfallzeiten um bis zu 20 % verringern7 (Link befindet sich außerhalb von ibm.com).
Chaos-Engineering-Experimente ermitteln, wie ein System Ressourcen zuweist. Die Einführung von Experimenten zeigt, wie das System mit Belastungen umgeht und wo Engpässe bestehen oder wahrscheinlich auftreten werden.
Chaos-Engineering hilft Teams dabei, ihre Software robuster und flexibler zu gestalten. Daher können Unternehmen die Programmierung neuer Software und Lösungen klüger angehen, weil sie wissen, wie das aktuelle System Probleme behandelt.
Erhalten Sie mit der Observability-Lösung von IBM den Kontext, den Sie benötigen, um Vorfälle schneller zu lösen.
Softwarenutzung und -kosten optimieren
Hier erfahren Sie, wie künstliche Intelligenz für den IT-Betrieb (Artificial Intelligence for IT Operations, AIOps) anhand von Daten und maschinellem Lernen das IT-Service-Management verbessert und automatisiert
Mit Application Performance Management können Sie Leistungsprobleme vorhersagen und verhindern, bevor sie sich auf Ihr Unternehmen auswirken
Der IT-Betrieb und AIOps überwachen und automatisieren die Verwaltung, Bereitstellung und Unterstützung von IT-Services im gesamten Unternehmen.
Mit ITSM stellt ein Unternehmen sicher, dass seine IT-Services so funktionieren, wie die Benutzer und das Unternehmen es brauchen.
Automatisieren Sie Aufgaben des IT-Betriebs, beschleunigen Sie die Softwarebereitstellung und minimieren Sie IT-Risiken mit Site Reliability Engineering.
Intelligente Automatisierung kombiniert KI- und Automatisierungstechnologien und ermöglicht die Automatisierung von einfachen Aufgaben in Ihrem Unternehmen.
1 Chaos Engineering: System Resiliency in Practice, (Link befindet sich außerhalb von ibm.com) Casey Rosenthal, Nora Jones, 2020
2 What is Chaos Monkey? Chaos engineering explained, (Link befindet sich außerhalb von ibm.com) InfoWorld, 13. Mai 2020
3 Knight Capital Says Trading Glitch Cost It $440 Million, (Link befindet sich außerhalb von ibm.com) New York Times, 2012
4 There Is No Resilience without Chaos, The New Stack, (Link befindet sich außerhalb von ibm.com) 13. April 2023
5 Incident Management in the Cloud Era, (Link befindet sich außerhalb von ibm.com) Constellation Research, 2023
6 ChAP: Chaos Automation Platform, (Link befindet sich außerhalb von ibm.com) Netflix Blog, 26. Juli 2017
7 The I&O Leader’s Guide to Chaos Engineering, (Link befindet sich außerhalb von ibm.com) Gartner, 28. Oktober 2021