REL08-BP03 Integrieren von Ausfallsicherheitstests in die Bereitstellung - AWS Well-Architected Framework

REL08-BP03 Integrieren von Ausfallsicherheitstests in die Bereitstellung

Integrieren Sie Resilienztests, indem Sie bewusst Fehler in Ihr System einleiten, um dessen Leistungsfähigkeit im Falle von Störszenarien zu messen. Resilienztests unterscheiden sich von Geräte- und Funktionstests, die normalerweise in Bereitstellungszyklen integriert werden, da sie sich auf die Identifizierung unerwarteter Ausfälle in Ihrem System konzentrieren. Es ist zwar sicher, in der Vorproduktion mit der Integration von Resilienztests zu beginnen, aber setzen Sie sich das Ziel, diese Tests im Rahmen Ihrer GameDays in der Produktion zu implementieren.

Gewünschtes Ergebnis: Resilienztests tragen dazu bei, Vertrauen in die Fähigkeit des Systems aufzubauen, Beeinträchtigungen in der Produktion standzuhalten. Experimente identifizieren Schwachstellen, die zu Ausfällen führen könnten. Auf diese Weise können Sie Ihr System verbessern, um Ausfälle und Beeinträchtigungen automatisch und effizient zu beheben.

Typische Anti-Muster:

  • Mangelnde Beobachtbarkeit und Überwachung in Bereitstellungsprozessen

  • Verlass auf Menschen, um Systemausfälle zu beheben

  • Analysemechanismen von schlechter Qualität

  • Fokus auf bekannte Probleme in einem System und das Fehlen von Experimenten, um unbekannte Probleme zu identifizieren

  • Identifizieren von Fehlern, aber keine Lösung

  • Keine Dokumentation der Erkenntnisse und keine Runbooks

Vorteile der Nutzung dieser bewährten Methode: Resilienztests, die in Ihre Bereitstellungen integriert sind, helfen dabei, unbekannte Probleme im System zu identifizieren, die andernfalls unbemerkt bleiben und zu Produktionsausfällen führen können. Die Identifizierung dieser unbekannten Probleme in einem System hilft Ihnen, Ergebnisse zu dokumentieren, Tests in Ihren CI/CD-Prozess zu integrieren und Runbooks zu erstellen, die die Schadensbegrenzung durch effiziente, wiederholbare Mechanismen vereinfachen.

Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Mittel

Implementierungsleitfaden

Die gängigsten Formen von Resilienztests, die in die Bereitstellungen Ihres Systems integriert werden können, sind die Notfallwiederherstellung und Chaos-Engineering.

  • Fügen Sie Aktualisierungen Ihrer Notfallwiederherstellungspläne und Standardarbeitsanweisungen (SOPs) bei jeder wichtigen Bereitstellung hinzu.

  • Integrieren Sie Zuverlässigkeitstests in Ihre automatisierten Bereitstellungspipelines. Services wie AWS Resilience Hub können in Ihre CI/CD-Pipeline integriert werden, um kontinuierliche Resilienzbewertungen zu erstellen, die im Rahmen jeder Bereitstellung automatisch bewertet werden.

  • Definieren Sie Ihre Anwendungen in AWS Resilience Hub. Resilienzanalysen generieren Codefragmente, die Sie bei der Erstellung von Wiederherstellungsprozeduren als AWS Systems Manager-Dokumente für Ihre Anwendungen unterstützen und eine Liste mit empfohlenen Amazon CloudWatch-Monitoren und -Alarmen enthalten.

  • Sobald Ihre DR-Pläne und SOPs aktualisiert sind, führen Sie Notfallwiederherstellungstests durch, um sicherzustellen, dass sie wirksam sind. Mithilfe von Notfallwiederherstellungstests können Sie feststellen, ob Sie Ihr System nach einem Ereignis wiederherstellen und zum normalen Betrieb zurückkehren können. Sie können verschiedene Notfallwiederherstellungsstrategien simulieren und feststellen, ob Ihre Planung ausreicht, um Ihre Verfügbarkeitsanforderungen zu erfüllen. Zu den gängigen Notfallwiederherstellungsstrategien gehören Backup und Wiederherstellung, Pilot Light, Cold Standby, Warm Standby, Hot Standby und Aktiv-Aktiv. Sie alle unterscheiden sich in Kosten und Komplexität. Vor dem Notfallwiederherstellungstest empfehlen wir, dass Sie Ihr Recovery Time Objective (RTO) und Ihr Recovery Point Objective (RPO) definieren, um die Wahl der zu simulierenden Strategie zu vereinfachen. AWS bietet Notfallwiederherstellungstools wie AWS Elastic Disaster Recovery, die Ihnen unter anderem den Einstieg in Ihre Planung und Tests erleichtern.

  • Experimente im Bereich des Chaos-Engineering führen zu Störungen im System, wie z. B. Netzwerk- und Serviceausfällen. Durch die Simulation mit kontrollierten Ausfällen können Sie die Sicherheitsschwachstellen Ihres Systems erkennen und gleichzeitig die Auswirkungen der eingeführten Fehler eindämmen. Führen Sie wie bei den anderen Strategien kontrollierte Ausfallsimulationen in Umgebungen außerhalb der Produktion durch, indem Sie beispielsweise Services wie AWS Fault Injection Service nutzen, um vor dem Einsatz in der Produktion Vertrauen zu gewinnen.

Ressourcen

Zugehörige Dokumente:

Zugehörige Videos: