Blog

Azure Chaos Studio macht Anwendungen gezielt Druck

22. Februar 2023

Microsofts Plattform für Chaos Engineering ist nun in der Vorschau verfügbar

Je weiter sich die digitale Welt verzweigt, umso anfälliger wird sie bei Fehlern in einzelnen Elementen. Eine Ausfallzeit kann so schnell zu erheblichen Kosten und Beeinträchtigungen für Unternehmen führen. Je stabiler und zuverlässiger aber einzelne Applikationen funktionieren, umso resilienter sind die Systeme insgesamt. Chaos Engineering gewinnt darum zunehmend an Bedeutung. Dafür hat Microsoft nun mit Azure Chaos Studio eine neue Plattform geschaffen, die dabei hilft, Anwendungen auf potenzielle Fehler und Schwächen zu testen. Das Wichtigste dazu auf einen Blick:

Experimentvorlagen und eine Fehlerbibliothek helfen dabei, vielfältige Szenarios zu testen

Was ist Chaos Engineering?

Bei Chaos Engineering werden reale Fehler in Anwendungen initiiert, um kontrollierte Fault Injection-Experimente durchzuführen. Ziel ist es, Anwendungen möglichst resilient zu machen. Das heißt, dass das betroffene System Störungen bewältigen und sich danach möglichst selbstständig erholen kann. Applikationen werden deshalb in Simulationen absichtlich Fehlern und Ausfällen ausgesetzt. So lassen sich vorab Lücken ermitteln und Risiken beim Einsatz der Anwendungen minimieren. Dabei unterscheidet man zwischen zwei Szenarien:

  • Shift-Right-Szenarien, die eine Produktions- oder Vorproduktionsumgebung nutzen. Sie nutzen z. T. echten Traffic oder simulierte Last.
  • Shift-Left-Szenarien verwenden eine Entwicklungs- oder Testumgebung. Die Simulationen können ohne echten Traffic durchgeführt werden.

Chaos Engineering bringt mehrere Vorteile:

  • Klare Benchmarks zur Anwendungsleistung
  • Detaillierte Fehleranalyse zur zukünftigen Fehlervermeidung
  • Störungsfreiere Migrationen von Anwendungen in neue Umgebungen
  • Bessere Planung des Kapazitätsbedarf für Produktionsumgebungen, auch für Zeiten mit maximaler Auslastung
Chaos Engineering macht durch stetige Testung Anwendungen resilienter

Wie funktioniert Azure Chaos Studio?

Azure Chaos Studio ist eine vollständig verwaltete Plattform in Azure DevOps und aktuell in der Vorschau über das Azure Portal oder Chaos Studio REST API verfügbar. Es erlaubt einen tiefen Einblick in die Verfügbarkeit und Stabilität von Anwendungen. Durch die Simulation von Störungen und Ausfällen, etwa eine hohe CPU-Auslastung auf virtuellen Maschinen (VMs), können IT-Teams dort komplexe Probleme in verschiedenen Szenarien der späteren Einsatzbereiche schneller entdecken. Azure Chaos Studio hält dafür eine breite Palette an Tools bereit, mit denen auch Microsoft seine Anwendungen prüft. Es unterstützt zwei Arten von Fehlern:

  • Service-direct Faults: etwa das Hinzufügen von Netzwerklatenz zu Azure Kubernetes Service (AKS)-Pods. Sie werden direkt für eine Azure-Ressource ausgeführt, ohne Installation oder Instrumentierung.
  • Agent-based Faults: etwa das Anwenden von virtuellem Speicherdruck. Sie laufen in VMs oder VM-Skalierungsgruppen, um In-Guest-Fehler auszuführen.

Dabei ist es egal, ob es sich um rein simulierte oder echte Fehler handelt. Beides ist in Azure Chaos Studio umsetzbar. Die spezifischen Parameter können individuell eingestellt werden.

Für ein Experiment werden Schritte mit unterschiedlichen Verzweigungen sowie Selektoren definiert

Für ein Chaosexperiment werden zunächst die Schritte definiert, die nacheinander ausgeführt werden. Jeder Schritt enthält eine oder mehrere Verzweigungen, die innerhalb des Schritts parallel ausgeführt werden. Jede Verzweigung wiederum enthält eine oder mehrere Aktionen, z. B. das Einschleusen eines Fehlers. Dafür können Selektoren erstellt werden – das sind Ressourcenziele zum Ausführen von Fehlern in Gruppen. So kann in jeder Aktion einfach auf einen Selektor verwiesen werden.

Eine Anwendung kann mit Chaos Studio in jeder Phase ihrer Entwicklung und zur Qualitätssicherung immer wieder einem Chaos-Test unterzogen werden. So lassen sich etwa plötzliche Speicherausfälle simulieren – und beobachten, wie eine Applikation darauf reagiert. Azure Chaos Studio stellt dafür eine ständig wachsende Fehlerbibliothek zur Verfügung, die Eigenschaften wie Netzwerklatenz, blockierte Ressourcenzugriffe und sogar Infrastrukturausfälle abdeckt. Ad-hoc-Drills lassen sich genauso durchführen wie eine Integration mit der eigenen CI/CD-Pipeline.

Mit Azure Chaos Studio bietet Microsoft eine wichtige Lösung für stabilere Anwendungen, Risikominimierung und bessere Planbarkeit in einer immer komplexeren digitalen Welt an. Applikationen werden resilienter – und sorgen so für sicherere IT-Umgebungen in Unternehmen. Als zertifizierte Experten für Microsoft Azure beraten wir Sie gerne zu den Möglichkeiten und helfen Ihnen dabei, Ihre Anwendungen mit Chaos Engineering resilienter zu machen.