Verstehen von Chaos engineering und Resilienz

Bevor Sie mit der Verwendung von Azure Chaos Studio beginnen, ist es hilfreich, die grundlegenden Konzepte für die Zuverlässigkeit der Website zu verstehen, die angewendet werden.

Was ist Resilienz?

Es war nie einfacher, große, verteilte Anwendungen zu erstellen. Die Infrastruktur wird in der Cloud gehostet, und die Unterstützung von Programmiersprachen ist vielfältig. Es gibt auch 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 Systeme, die darauf basieren. Infrastruktur kann offline gehen, 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 Probleme wie:

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

Anwendungen und Dienste müssen so konzipiert sein, dass Fehler behandelt und vor Störungen gehärtet werden.

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. End-to-End-Systemresilienz muss in einer integrierten, produktionsähnlichen Umgebung mit den Bedingungen und Lasten überprüft werden, die in der Produktion zu sehen sind.

Was sind Chaos Engineering und Fault Injection?

  • Chaos engineering: Die Praxis, Anwendungen und Dienstleistungen realen Belastungen und Fehlschlägen zu unterziehen. Ziel ist es, Resilienz für unzuverlässige Bedingungen und fehlende Abhängigkeiten zu erstellen und zu validieren.
  • Fehlereinfügung: Der Akt der Einführung eines Fehlers in ein System. Sie können verschiedene Fehler verwenden, z. B. Netzwerklatenz oder Verlust des Speicherzugriffs, um Systemkomponenten als Ziel zu verwenden. Sie können Szenarien erstellen, von denen eine Anwendung oder ein Dienst in der Lage sein muss, sie zu verarbeiten oder wiederherzustellen.

Ein Chaosexperiment ist die Anwendung von Fehlern einzeln, parallel oder sequenziell gegen eine oder mehrere Abonnementressourcen oder Abhängigkeiten. Ziel ist es, das Systemverhalten und die Integrität zu überwachen, damit Sie auf probleme reagieren können, die auftreten.

Ein Experiment kann ein reales Szenario darstellen, z. B. ein Rechenzentrumsausfall oder eine Netzwerklatenz auf einem DNS-Server. Es kann auch verwendet werden, um Randbedingungen zu simulieren, die auftreten. Beispiele sind Black Friday Shopping-Spreen oder wenn Konzerttickets für eine beliebte Band zum Verkauf gehen.