Grundlegendes zu Chaos Engineering und Resilienz

Bevor Sie mit der Verwendung von Azure Chaos Studio beginnen, ist es hilfreich, sich mit den grundlegenden Konzepten für Websitezuverlässigkeit vertraut zu machen, die angewendet werden.

Was ist Resilienz?

Nie zuvor war es so einfach, große verteilte Anwendungen zu erstellen. Die Infrastruktur wird in der Cloud gehostet, und es werden zahlreiche Programmiersprachen unterstützt. Auch gibt es viele Open Source- und gehostete Komponenten und Dienste, auf denen sie aufbauen können.

Leider gibt es keine Zuverlässigkeitsgarantie für diese zugrunde liegenden Komponenten und Abhängigkeiten oder für darauf aufbauende Systeme. Die Infrastruktur geht mitunter offline, und Dienstunterbrechungen oder -ausfälle können jederzeit auftreten. Kleinere Unterbrechungen in einem Bereich können sich vergrößern und in einem anderen Bereich langfristige Nebeneffekte haben.

Anwendungen und Dienste müssen auf folgende Probleme vorbereitet und entsprechend geplant werden:

  • Dienstausfälle.
  • Unterbrechungen bekannter und unbekannter Abhängigkeiten.
  • Unerwarteter Ladevorgang.
  • Latenzen im gesamten System:

Anwendungen und Dienste müssen so entworfen werden, dass sie Fehler behandeln können und gegen Unterbrechungen gewappnet sind.

Anwendungen und Dienste, die sachgemäß mit Problemen und umgehen, sind resilient. Die Zuverlässigkeit einzelner Komponenten ist gut, doch Resilienz ist eine Eigenschaft des gesamten Systems. Die End-to-End-Systemresilienz muss in einer integrierten, produktionsbasierten Umgebung mit den Bedingungen und der Last überprüft werden, die während des Betriebs zu finden sind.

Was sind Chaos Engineering und Fault Injection?

  • Chaos Engineering: Die Praxis, Anwendungen und Dienste realen Belastungen und Fehlern auszusetzen. Ziel ist es, Resilienz für unzuverlässige Bedingungen und fehlende Abhängigkeiten zu erstellen und zu validieren.
  • Fault Injection: Die Einführung eines Fehlers in ein System. Sie können Systemkomponenten verschiedenen Fehlern aussetzen, z. B. Netzwerklatenz oder Verlust des Speicherzugriffs. Sie können Szenarien erstellen, die eine Anwendung oder ein Dienst bewältigen oder von denen sie bzw. er sich erholen muss.

Ein Chaosexperiment ist die einzelne, parallele oder sequenzielle Anwendung von Fehlern auf eine oder mehrere Abonnementressourcen oder Abhängigkeiten. Ziel ist es, das Systemverhalten und die Integrität zu überwachen, damit Sie auf auftretende Probleme reagieren können.

Ein Experiment kann ein reales Szenario darstellen, beispielsweise einen Stromausfall eines Rechenzentrums oder etwa eine Netzwerklatenz für einen DNS-Server. Es kann auch verwendet werden, um auftretende Randbedingungen zu simulieren. Beispiele hierfür sind die Shopping-Orgien am Black Friday oder der Vorverkauf von Konzertkarten für eine beliebte Band.