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 Störungen umzugehen, ist Chaos Engineering. Es handelt sich nicht um einen zufälligen Prozess, bei dem Techniker Instanzen oder Dienste beenden oder anderweitig Systeme ohne jeglichen Zweck zum Ausfall bringen. Dieser Prozess identifiziert potenzielle zukünftige Probleme und ermöglicht es den Ingenieurteams, Probleme proaktiv zu lösen und sie später in der Live-Umgebung zu vermeiden.
Chaos-Engineering ist wichtig, denn ein Fehler oder eine Unt rbrechung kann ein Unternehmen ausbremsen. Dabei wird wertvolle Zeit darauf verwendet, eine Lösung zu finden, während die Ausfallzeit immer länger wird. Netflix lernte dieses Konzept aus erster Hand, als das Unternehmen im Jahr 2008 von einem lokalen System in die Cloud1 wechselte – es kam zu einem Ausfall, der zu einer dreitägigen Unterbrechung der Service-Bereitstellung führte.
Dieser Ausfall erfolgte vor seiner Transformation als Video-Streaming-Anbieter, wodurch der Ausfall exponentiell teurer geworden wäre. Daraufhin beschloss Netflix, alles zu tun, um Störungen zu minimieren, und führte Chaos Engineering in seine Arbeitsabläufe ein. Dieser Prozess ermöglicht es, Probleme zu erkennen, bevor sie auftreten, und den Schaden zu minimieren, wenn ein unvermeidbarer Ausfall eintritt.
Netflix hat Chaos Monkey2 entwickelt, ein Open-Source-Tool, das zufällige Vorfälle in IT-Diensten und -Infrastrukturen erzeugt und so Schwachstellen aufdecken soll, die durch automatische Wiederherstellungsverfahren behoben oder behoben werden können. Sie implementierten Chaos Monkey, als das Unternehmen von einem privaten Rechenzentrum zu Amazon Web Services (AWS) umzog, um auf die Unzuverlässigkeit der Cloud zu reagieren. Viele Unternehmen nutzen mittlerweile Chaos Monkey, um ihre Chaos-Engineering-Tests durchzuführen.
Chaos Engineering ist ein wichtiger Schutz vor Infrastrukturausfällen, Ausfällen oder fehlenden Komponenten in der Produktionsumgebung eines Unternehmens. Es hilft Site Reliability Engineers (SREs) und anderen Mitgliedern des DevOps-Teams dabei, eine kontinuierliche Bereitstellung von Services zu gewährleisten, indem erhebliche Unterbrechungen ihres Services vermieden werden. Chaos Engineering hilft ihnen, ihre Schwachstellen besser zu verstehen und gibt ihnen Hinweise, wie sie die Auswirkungen einer Störung 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 führen3 .
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.
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 diese Observability4 fehlt, brauchen möglicherweise zu lange, um die Experimente abzuschließen, die sie durch Chaos Engineering erstellt haben.
Chaos Engineering ist auch ein Muss für Unternehmen, die Clouds, insbesondere öffentliche 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-Premises-Problemen erfordert.
Laut Constellation Research5 behandeln Unternehmen, 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öhen, einzigartige Herausforderungen, 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 bei Netflix6, ermöglicht es Unternehmen, kontinuierliche Experimente zu automatisieren und gleichzeitig deren mögliche Auswirkungen zu kontrollieren.
Und schließlich bedeutet die Tatsache, dass Unternehmen zunehmend über APIs mit Partnern in Verbindung stehen, dass ein Problem in ihren Systemen auch Auswirkungen auf andere Unternehmen haben kann. 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 Erstellung eines idealen Chaos-Engineering-Prozesses erfordert mehrere Prinzipien, um sicherzustellen, dass eine Organisation ein verteiltes System im großen Maßstab einsetzen kann.
Ein Unternehmen, das Chaos Engineering einsetzt, muss sich entscheiden, ob es Chaos-Tests in seiner Produktions- oder Vorproduktionsumgebung einsetzen will. 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 kann beispielsweise ein Vorfall in einer Vorproduktionsumgebung keine realistische Reaktion hervorrufen, weil das Verkehrsaufkommen nicht dem der Live-Umgebung entspricht. Die Vorproduktionsumgebung hat möglicherweise 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 anhand ihrer Risikobereitschaft, welche Umgebung sie nutzen. Das Ziel des Chaos Engineerings ist es, tatsächliche Probleme im großen Maßstab zu testen, weshalb Produktionsumgebungen ein möglichst genaues Bild davon vermitteln, 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 die Unmöglichkeit, auf das zuzugreifen, wofür sie bezahlt haben, kann sich ernsthaft auf die Kundenzufriedenheit auswirken 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 dabei, Probleme zu identifizieren, die ausgenutzt werden können, sodass Unternehmen Patches- und Bug-Fixes einführen können, um ihre Dienste zu schützen.
Chaos Engineering ermöglicht es Unternehmen, einen fundierten Plan für die Bewältigung zukünftiger Probleme zu erstellen. 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 Ausfallzeiten7 um bis zu 20 % verringern.
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.
Lesen Sie, wie sich CEOs mit eigenen Worten zur Nachhaltigkeit äußern und wie sie diese in ihr Unternehmen integrieren.
Entdecken Sie sieben Geschäftstrends, von denen Experten erwarten, dass sie in den nächsten drei Jahren weltweit prägend sein werden – und sieben Wetten, die man unserer Meinung nach abschließen sollte.
Erfahren Sie, wie Climate Service Klimadaten mithilfe von IBM Technologie in Finanzentscheidungen integriert hat.
Erfahren Sie, wie der Einsatz der IBM Garage Methodik der Kraft Heinz Company geholfen hat, die Produktgeschwindigkeit zu verbessern.
Transformationen in Business und Technologie definieren Arbeitsweisen neu und setzen Agilität im Unternehmen frei.
Überdenken und modernisieren Sie HR mit KI als Kernstück, um bessere Geschäftsergebnisse zu erzielen und das volle Potenzial Ihrer Mitarbeiter freizusetzen.
Erschließen Sie die finanzielle Leistung und den Geschäftswert mit End-to-End-Services, die Datenanalysen, KI und Automatisierung in Kernprozesse einfließen lassen.
1 Chaos Engineering: System-Resilienz 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 beziffert Handelsfehler auf 440 Millionen USD (Link außerhalb von ibm.com), New York Times, 2012.
4 Es gibt keine Resilienz ohne Chaos (Link befindet sich außerhalb ibm.com), Der neue Stack, 13. April 2023.
5 Incident Management im Cloud-Zeitalter (Link befindet sich außerhalb 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 ibm.com), Gartner, 28. Oktober 2021.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com