Freigeben über


Empfehlungen zum Entwerfen einer Zuverlässigkeitsteststrategie

Gilt für diese Empfehlungen bezüglich der Power Platform Zuverlässigkeits-Checkliste:

RE:06 Testen Sie Ausfallsicherheits- und Verfügbarkeitsszenarien, indem Sie die Prinzipien des Chaos Engineering in Ihren Test- und Produktionsumgebungen anwenden. Stellen Sie durch Tests mit aktiven Störungstests und simulierten Auslastungstests sicher, dass Ihre Implementierungsstrategien für eine schrittweise Verschlechterung wirksam sind.

In dieser Anleitung werden die Empfehlungen zum Entwerfen einer Zuverlässigkeitsteststrategie beschrieben, um die Zuverlässigkeit Ihrer Workload zu validieren und zu optimieren. Bei Zuverlässigkeitstests liegt der Schwerpunkt auf der Resilienz und Verfügbarkeit Ihrer Workload, insbesondere auf den kritischen Abläufen, die Sie beim Entwerfen Ihrer Lösung identifizieren. Diese Anleitung bietet allgemeine Testanleitungen sowie Anleitungen speziell zur Fehlerinjektion und zum Chaos Engineering.

Definitionen

Begriff Definition
Verfügbarkeit Die Zeitspanne, in der eine Anwendungsworkload in einem fehlerfreien Zustand ohne nennenswerte Ausfallzeiten ausgeführt wird.
Chaos Engineering Die Praxis, Anwendungen und Dienste realen Belastungen und Fehlern auszusetzen. Das Ziel des Chaos Engineering besteht darin, Resilienz gegenüber unzuverlässigen Bedingungen und fehlenden Abhängigkeiten aufzubauen und zu validieren.
Fault Injection Das Einbringen eines Fehlers in ein System, um die Belastbarkeit des Systems zu testen.
Wiederherstellbarkeit Ein Synonym für Resilienz.
Resilienz Die Fähigkeit einer Anwendungs-Workload, Fehlermodi standzuhalten und sich davon zu erholen.

Wichtige Designstrategien

Tests sind unerlässlich, um sicherzustellen, dass Ihre Workload ihre Zuverlässigkeitsziele erreicht und Fehler ordnungsgemäß verarbeiten kann. Bei der Fault Injection handelt es sich um eine Testart, bei der absichtlich Fehler oder Belastungen in Ihr System eingebracht werden, um reale Szenarien zu simulieren. Durch den Einsatz von Fault Injection- und Chaos-Engineering-Techniken können Sie Probleme proaktiv erkennen und beheben, bevor diese Ihre Produktionsumgebung beeinträchtigen. Dieser Abschnitt enthält allgemeine Hinweise zum Testen, zur Fault Injection und zum Chaos Engineering für Ihre Workload.

Allgemeine Testrichtlinien

Führen Sie regelmäßig Tests durch, um vorhandene Schwellenwerte, Ziele und Annahmen zu validieren. Führen Sie regelmäßige Tests durch, wenn sich Ihre Workload wesentlich ändert. Führen Sie die meisten Tests in Test- und Bereitstellungsumgebungen durch. Es ist auch sinnvoll, eine Teilmenge der Tests mit dem Produktionssystem auszuführen.

Automatisieren Sie Tests, um eine konsistente Testabdeckung und Reproduzierbarkeit sicherzustellen. Automatisieren Sie gängige Testaufgaben, und integrieren Sie sie in Ihre Build-Prozesse. Das manuelle Testen von Software ist mühsam und fehleranfällig. Sie können jedoch manuelle explorative Tests durchführen. Wenn Sie automatisierte Tests entwickeln müssen, verwenden Sie manuelle Tests, um den Umfang der zu entwickelnden Tests zu bestimmen.

Wenden Sie einen Shift-Left-Testansatz an, um frühzeitig im Entwicklungszyklus Tests auf Ausfallsicherheit und Verfügbarkeit durchzuführen.

Passen Sie ein einfaches Dokumentationsformat an, sodass der Vorgang und die Ergebnisse jedes regulären Tests für jeden leicht verständlich sind.

Geben Sie die dokumentierten Ergebnisse an die entsprechenden Teams weiter, beispielsweise an Betriebsteams, Technologieleitung, Geschäftspartner und Stakeholder für die Notfallwiederherstellung. Die Ergebnisse sollten zur Verfeinerung von Zuverlässigkeitszielen wie Ziele zum Servicelevel (SLOs), Vereinbarungen zum Servicelevel (SLAs), Recovery Time Objectives (RTOs) und Recovery Point Objectives (RPOs) beitragen.

Erstellen Sie einen regelmäßigen Testrhythmus für Ihre Backups. Stellen Sie die Daten auf isolierten Systemen wieder her, um sicherzustellen, dass die Sicherungen gültig und die Wiederherstellungen funktionsfähig sind.

Dokumentieren und teilen Sie die Metriken zur Wiederherstellungszeit mit Ihren Stakeholdern zur Notfallwiederherstellung, um sicherzustellen, dass die Erwartungen an die Wiederherstellung angemessen sind.

Verwenden Sie branchenübliche Testverfahren für die Bereitstellung, um sicherzustellen, dass Ihr Bereitstellungsprozess automatisiert, vorhersehbar und effizient ist.

Testen Sie die Fähigkeit Ihrer Workload, vorübergehenden Fehlern standzuhalten. Weitere Informationen finden Sie unter Empfehlungen zum Umgang mit vorübergehenden Fehlern.

Testen Sie mithilfe von Fault Injection, wie Ihre Workload mit Fehlern in abhängigen Diensten oder anderen Abhängigkeiten umgeht.

Testen Sie Ihren Notfallwiederherstellungsplan, um auf katastrophale Ausfälle und andere schwerwiegende Zwischenfälle reagieren zu können.

Testen Sie, ob ein Teilausfall Ihrer Workload möglich ist, und minimieren Sie den Angriffsradius von Komponentenfehlfunktionen durch die Verwendung von Fault Injection.

Nutzen Sie geplante und ungeplante Ausfälle

Wenn Ihre Workload aufgrund einer geplanten Wartung oder eines ungeplanten Ausfalls offline ist, haben Sie die einmalige Gelegenheit, Tests durchzuführen und Ihr Verständnis Ihrer Workload zu verbessern. Die folgenden Abschnitte enthalten Empfehlungen für jedes Szenario.

Geplante Wartung

Wenn Sie Wartungsfenster für Updates oder Patches geplant haben, können Sie Komponenten und Flows testen, die nicht an den Wartungsarbeiten beteiligt sind. Führen Sie Tests durch, ohne das potenzielle Risiko einer unerwarteten Verschlechterung der Workload oder eines vollständigen Offline-Betriebs einzugehen. Wenn Sie während Ihres Wartungsfensters ausreichend Zeit haben, können Sie die an der Wartung beteiligten Komponenten und Flows auch nach Abschluss der Wartungsarbeiten testen.

Ungeplanter Ausfall

Nutzen Sie jeden Ausfall als Gelegenheit, mehr über Ihre Workload zu erfahren und ihre Resilienz zu verbessern, indem Sie die folgenden Schritte in der nach Priorität geordneten Reihenfolge ausführen:

  1. Bringen Sie die Workload für Ihre Benutzer wieder online. Möglicherweise müssen Sie eine Problemumgehung durchführen, das Problem beheben oder die Wiederherstellungsprozesse initiieren.

  2. Ermitteln Sie die Grundursache des Ausfalls, und beheben Sie sie. Wenn Sie die Grundursache im Rahmen der Untersuchung beheben können, dokumentieren Sie die Grundursache und die Maßnahmen, die Sie zur Behebung ergriffen haben. Wenn für das Problem ein weiteres späteres Wartungsfenster benötigt wird, stellen Sie sicher, dass Ihre Maßnahmen zur Risikominderung die erwartete Last bewältigen können, indem Sie sie gründlich testen. Stellen Sie sicher, dass Sie ein ausreichendes Monitoring eingerichtet haben, um Ihre Maßnahmen zur Risikominderung abzudecken.

  3. Suchen Sie gegebenenfalls in allen Komponenten Ihrer Workload nach demselben Problem oder nach Konfigurationsschwächen, die von ähnlichen Problemen betroffen sein könnten. Nutzen Sie diese Gelegenheit, um diese Komponenten proaktiv anzugehen. Sehen Sie sich Ihren Vorfallverlauf an, um Muster ähnlicher Probleme in Ihrer Workload zu erkennen.

  4. Nutzen Sie Ihre Erkenntnisse, um Ihre Teststrategie zu verbessern. Stellen Sie sicher, dass Sie die Grundursache und ähnliche Probleme erfolgreich behoben haben, indem Sie denselben Fehler direkt testen.

Anleitung zu Fault Injection und Engineering Guidance

Fault Injection-Tests folgen den Prinzipien des Chaos Engineering, indem sie die Fähigkeit der Workload hervorheben, auf Komponentenausfälle zu reagieren. Führen Sie Fault Injection-Tests in Vorproduktions- und Produktionsumgebungen durch. Wenden Sie die Informationen an, die Sie aus der Durchführung der Fehlermöglichkeitsanalyse gewonnen haben, um sicherzustellen, dass Sie nur die Fehler testen, die Sie priorisieren, und dass Sie über Strategien zur Risikominderung verfügen.

Die wichtigsten Richtlinien des Chaos Engineering sind:

  • Proaktive Vorgehensweise. Warten Sie nicht, bis es zu Fehlern kommt. Versuchen Sie, Ausfälle vorherzusehen, indem Sie Chaosexperimente durchführen, um Probleme zu entdecken und zu beheben, bevor sie Ihre Produktionsumgebung beeinträchtigen.

  • Fehler akzeptieren. Akzeptieren Sie die Fehler, die in Ihrem System auftreten, und lernen Sie daraus. Betrachten Sie Fehler als natürlichen Bestandteil komplexer Systeme und nutzen Sie sie als Gelegenheit, daraus zu lernen und die Zuverlässigkeit Ihres Systems zu verbessern.

  • Das System beeinträchtigen. Fügen Sie Ihrem System absichtlich Fehler oder Belastungen hinzu, um seine Belastbarkeit zu testen. Simulieren Sie reale Ausfälle oder Störungen, um die Wiederherstellungsfunktionen Ihrer Workload zu testen und zu verbessern.

  • Immunität aufbauen. Verwenden Sie Chaos-Engineering-Experimente, um die Fähigkeit Ihrer Workload zur Vermeidung und Behebung von Fehlern zu verbessern.

Chaos Engineering ist ein integraler Bestandteil der Workload-Teamkultur und eine fortlaufende Praxis, keine kurzfristige taktische Maßnahme als Reaktion auf einen einzelnen Ausfall. Befolgen Sie diese Standardmethode, wenn Sie Ihre Chaosexperimente entwerfen:

  1. Mit einer Hypothese starten. Jedes Experiment sollte ein klares Ziel haben, beispielsweise das Testen der Fähigkeit eines Flows, dem Verlust einer bestimmten Komponente standzuhalten.

  2. Das Basisverhalten messen. Stellen Sie sicher, dass Sie über konsistente Zuverlässigkeits- und Leistungsmesswerte für den Flow und die Komponenten verfügen, die an einem Experiment beteiligt sind, um diese beim Ausführen Ihres Experiments mit dem verschlechterten Zustand vergleichen zu können.

  3. Einen oder mehrere Fehler einfügen. Das Experiment sollte gezielt auf bestimmte Komponenten abzielen, die schnell wiederhergestellt werden können, und Sie sollten eine fundierte Vorstellung davon haben, welche Auswirkungen die Fault Injection haben wird, um den Angriffsradius des Experiments steuern zu können.

  4. Das resultierende Verhalten beobachten. Sammeln Sie Telemetriedaten über die einzelnen Flowkomponenten und das End-to-End-Flowverhalten, auf das das Experiment abzielt, um die Auswirkungen des Fehlers richtig zu verstehen. Vergleichen Sie die erfassten Messwerte mit den Basismetriken, um ein vollständiges Bild der Fault Injection-Ergebnisse zu erhalten.

  5. Den Prozess und die Beobachtungen dokumentieren. Durch die detaillierte Aufzeichnung Ihrer Experimente können Sie künftige Entscheidungen zum Workload-Design treffen und sicherstellen, dass Sie die im Laufe der Zeit offengelegten Lücken schließen.

  6. Das Ergebnis identifizieren und entsprechend handeln. Planen Sie Abhilfemaßnahmen, die Ihrem Workload-Rückstand als Verbesserungen hinzugefügt werden können. Stellen Sie sicher, dass Pläne zur Designverbesserung in Nichtproduktionsumgebungen gemäß den gleichen Prozessen wie bei anderen Bereitstellungen überprüft und getestet werden.

Validieren Sie regelmäßig Ihre Prozesse, Architekturentscheidungen und Ihren Code, um technische Schulden schnell zu erkennen, neue Technologien zu integrieren und sich an veränderte Anforderungen anzupassen.

Das Durchführen von Fault Injection-Experimenten ermöglicht Ihnen Folgendes:

  • Bestätigen Sie, dass die Überwachung vorhanden ist und Warnungen eingerichtet sind.

  • Validieren Sie Ihren Prozess zur Zuweisung einer direkt verantwortlichen Person (DRI), die die Verantwortung für einen Vorfall übernimmt.

  • Stellen Sie sicher, dass Ihre Dokumentations- und Untersuchungsprozesse auf dem neuesten Stand sind.

Integrieren Sie die folgenden Empfehlungen und Überlegungen, um Ihre Chaosteststrategie zu optimieren:

  • Stellen Sie Systemannahmen in Frage. Durch Tests versuchen Sie, die Resilienz Ihrer Workload und Ihrer Strategien zum Workload-Design zu verbessern. Suchen Sie nach Möglichkeiten, Fehler in Komponenten und Flows einzubringen, von denen Sie aufgrund früherer Erfahrungen annehmen, dass sie zuverlässig sind. Für Ihre neue Workload sind sie möglicherweise nicht zuverlässig.

  • Änderung validieren. Ohne gründliche Tests, einschließlich Fault Injection-Tests, verfügen Sie nach den Änderungen möglicherweise über ein unvollständiges Bild Ihrer Workload. Beispielsweise könnten Sie neue Abhängigkeiten einführen, die nicht sofort ersichtlich sind.

  • SLA-Puffer verwenden. Beschränken Sie Chaostests, um Ihre SLAs einzuhalten und mögliche negative Auswirkungen von Ausfällen zu vermeiden. Ihre Flow- und Komponentenwiederherstellungsziele helfen dabei, den Umfang Ihrer Tests zu definieren.

  • Legen Sie ein Fehlerbudget als Investition in Chaos und Fault Injection fest. Ihr Fehlerbudget ist die Differenz zwischen dem Erreichen von 100 % des SLO und dem Erreichen des vereinbarten SLO.

  • Brechen Sie das Experiment ab, wenn es den Umfang überschreitet. Unbekannte Ergebnisse sind ein zu erwartendes Ergebnis von Chaosexperimenten. Streben Sie ein Gleichgewicht zwischen der Erfassung wesentlicher Ergebnisdaten und der Beeinträchtigung möglichst weniger Produktionsbenutzer an.

  • Arbeiten Sie eng mit Entwicklungsteams zusammen, um die Relevanz der eingefügten Fehler sicherzustellen. Verwenden Sie vergangene Vorfälle oder Probleme als Anleitung. Untersuchen Sie Abhängigkeiten und bewerten Sie die Ergebnisse, wenn Sie diese Abhängigkeiten entfernen.

  • Identifizieren und dokumentieren Sie bisher unentdeckte Abhängigkeiten zwischen verschiedenen Komponenten innerhalb Ihrer Workload, die durch Chaostests aufgedeckt werden.

  • Passen Sie Wiederherstellungspläne nach Bedarf an, um Abhängigkeiten zu berücksichtigen, die während des Chaostests entdeckt werden.

  • Nutzen Sie die Ergebnisse Ihrer Experimente und Tests als Grundlage für neue Experimente und Tests. Wenn unerwartetes Verhalten auftritt, können neue Tests direkt auf dieses Verhalten abzielen und Ihnen die Möglichkeit geben, Strategien zur Behebung des Problems zu entwickeln.

Nachteil: Fehlerinjektionstests in der Produktion können zu Störungen und möglicherweise Ausfällen führen. Seien Sie den Stakeholdern gegenüber transparent über diese Möglichkeit und stellen Sie sicher, dass Sie über Sicherheitsvorkehrungen zum Abbruch von Experimenten und Rollback-Plänen verfügen, um die von Ihnen verursachten Fehler schnell rückgängig zu machen.

Umsetzung in Power Platform

Sie können statische Ergebnisse in Power Automate verwenden, um zum Testen Ihrer Workload ein festes Ergebnis zurückzugeben.

Das Power Apps-Testmodul (Vorschauversion) ist eine Power Platform-CLI-Komponente, die Sie zum Testen eigenständiger Canvas-Apps in Power Apps verwenden können.

Azure Test Plans ist eine einfach zu verwendende, browserbasierte Testverwaltungslösung, die all die Funktionen bietet, die für geplante manuelle Tests, Benutzerakzeptanztests, explorative Tests und das Sammeln von Feedback von Stakeholdern erforderlich sind.

Wenn Ihre Workload Azure-Ressourcen umfasst, können Sie Azure Chaos Studio verwenden. Dabei handelt es sich um einen verwalteten Dienst, der Chaos Engineering nutzt, um Ihnen dabei zu helfen, die Belastbarkeit Ihrer Cloud-Anwendungen und -Dienste zu messen, zu verstehen und zu verbessern.

Wenn Ihre Workload einen Microsoft Copilot Studio Agent enthält, können Sie das Power CAT Copilot Studio Kit verwenden, um Agenten und Tests zu konfigurieren. Durch das Ausführen einzelner Tests für die Copilot Studio APIs (Direct Line), werden die Agent-Antworten anhand der erwarteten Ergebnisse ausgewertet.

Zuverlässigkeitscheckliste

Lesen Sie die vollständigen Empfehlungen.