Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erhöhung der Widerstandsfähigkeit und Verbesserung des Kundenerlebnisses durch den Einsatz von Chaos Engineering auf AWS
Laurent Domb, Cheftechnologe, Federal Financials, Amazon Web Services
April 2025 (Geschichte des Dokuments)
Chaos Engineering ist die Disziplin, bei der mit einer Anwendung experimentiert wird, um Vertrauen in die Fähigkeit Ihres Unternehmens und Ihrer Anwendung aufzubauen, turbulenten Produktionsbedingungen standzuhalten. Dabei handelt es sich um einen proaktiven Ansatz zur Steigerung der Ausfallsicherheit mit dem Ziel, zu überprüfen, ob Ihre Anwendung und Ihr Unternehmen in der Lage sind, Servicebeeinträchtigungen zu absorbieren, sich daran anzupassen und sich letztendlich von ihnen zu erholen, indem kontrollierte Ausfälle bei Mitarbeitern, Prozessen und Technologien eingeführt werden. Ziel ist es auch, Schwachstellen zu identifizieren und zu beseitigen, bevor sie zu Ausfällen oder anderen Produktionsunterbrechungen führen können.
Wir bei Amazon wissen, dass Ausfälle in verteilten Systemen unvermeidlich sind, sodass das Funktionieren trotz vorhandener Fehler ein normaler Betriebsmodus ist. Da Interaktionen zwischen Diensten unweigerlich zum Scheitern verurteilt sind, müssen Sie verstehen, wie Ihre Services auf verschiedene Ausfallmodi reagieren, und Services entwickeln, die gegen wichtige Sicherheitslücken wie Abhängigkeitsausfälle, Wiederholungsstürme, beeinträchtigte Availability Zones und Erschöpfung der Hostressourcen widerstandsfähig sind.
Nehmen wir das Beispiel eines Storms mit Wiederholungsversuchen. Ein lokalisierter Fehler in einem Client kann sich erheblich auf mehrere Dienste auswirken. Dies wird allgemein als Schmetterlingseffekt bezeichnet. Ein Wiederholungssturm ist eine Ausprägung des Butterfly-Effekts, bei dem eine fehlgeschlagene Abhängigkeit die Clients und die Clients dieser Clients dazu veranlasst, den fehlgeschlagenen Vorgang erneut zu versuchen, was zu einem exponentiellen Anstieg des Datenverkehrs führt. Dienste werden überlastet, weil sie zusätzlich zu Wiederholungsversuchen auch auf regulären Datenverkehr reagieren und gleichzeitig Leistungseinbußen bewältigen müssen.
Chaos Engineering ist eine Reaktion auf die zunehmende Komplexität verteilter Systeme. Es handelt sich um einen multidisziplinären Ansatz, der Prinzipien der Chaostheorie, des Systemdenkens und der Technik kombiniert, um komplexe Systeme zu entwerfen und zu verwalten, die unerwarteten Ereignissen und Verhaltensweisen standhalten. Im Kern befasst sich die Chaos-Technik mit dem Verständnis und der Steuerung des Verhaltens komplexer Systeme unter Bedingungen der Unsicherheit und Unvorhersehbarkeit. Es wird anerkannt, dass traditionelle technische Ansätze, die auf der Vorhersage und Kontrolle von Ergebnissen beruhen, oft nicht ausreichen, um mit der komplexen und dynamischen Natur verteilter Systeme umzugehen. Wenn diese Systeme immer größer werden, überschreiten sie oft den Kenntnisstand einer einzelnen Person.
Chaos Engineering stellt Konzepte, Techniken und Tools zur Verfügung, mit denen Systeme bewusst mit Fehlern behaftet werden können, um Schwachstellen aufzudecken, bevor sie sich in der Produktion bemerkbar machen. Durch diesen proaktiven Ansatz können Unternehmen darauf vertrauen, dass ihre Systeme auch unter stressigen Bedingungen funktionieren. Obwohl Chaos Engineering immer noch eine sich entwickelnde Praxis ist, stellt es einen grundlegenden Wandel hin zu der Entwicklung, Verwaltung und dem Betrieb moderner Computersysteme dar, die angesichts der zunehmenden Komplexität und Vernetzung widerstandsfähig sind.
In den folgenden Abschnitten dieses Leitfadens werden die Vorteile von Chaos Engineering erörtert, die Durchführung von Chaos-Engineering-Experimenten erläutert und die Ansätze beschrieben, mit denen Sie Chaos Engineering in großem Umfang in Ihrem Unternehmen implementieren können. Ebenfalls enthalten sind Musterdokumente zur Versuchsplanung und zu den Versuchsergebnissen, die Sie als Vorlagen für Ihre Experimente im Bereich Chaos Engineering verwenden können.
Im nächsten Abschnitt wird untersucht, wie sich die Eigenschaften von Chaos Engineering von herkömmlichen Resilienztests wie Unit-, Smoke- oder Integrationstests unterscheiden.