Mit Fault Injection Testing können Sie Fault Injection-Experimente durchführen. Bei dieser Methode werden Fehler in ein System eingefügt, um seine Robustheit zu testen, bevor sie einen echten, unerwarteten Fehler verursachen, der sich auf Ihre Kunden auswirkt. Mit Fault Injection Testing können Sie Fehler in verschiedene Komponenten in Ihrer Google Cloud -Umgebung einfügen, um sicherzustellen, dass Ihre Anwendung sie auf vorhersehbare Weise verarbeitet.
Bei der ersten Version von Fault Injection Testing entsprechen Fehler im Allgemeinen einem Ausfall der Zielressource. Diese Fehler sollten dazu führen, dass Ihre Anwendung den Traffic an fehlerfreie Instanzen weiterleitet, wenn Sie Fehlertoleranz in Ihre Anwendung integriert haben.
Sie müssen Ihre Anwendung vor, während und nach dem Einfügen des Fehlers beobachten, um zu prüfen, ob die Anwendung den Fehler wie erwartet behandelt hat.
Vorteile von Fault Injection Testing
Mit Fault Injection Testing können Sie Experimente zur Ausfallsicherheit Ihrer Anwendungen in Google Cloud über ein breites Spektrum an Fehlerszenarien hinweg durchführen. Ein wichtiger Teil dieses Spektrums ist das Durchführen von Tests, um Ausfälle von Google Cloud Zonen und Regionen zu simulieren, die Sie nur schwer oder gar nicht selbst durchführen können. Außerdem ist das Fault Injection Testing ein wertvolles Entwicklungs- und Optimierungstool, mit dem Sie Experimente mit Ihren entwickelten Resilienzmechanismen durchführen können, bevor Sie sie in einer Produktionsumgebung einführen. Wenn Sie Probleme erkennen, bevor sie in der Produktion auftreten, können Sie Designs schneller verbessern, kostspielige Ausfallzeiten und Reputationsverluste vermeiden und die allgemeine Erfahrung verbessern.
Ohne ein Google Cloud-natives Produkt für das Einfügen von Fehlern müssen Sie Ihre eigenen Tests durchführen. Eigene Tests sind problematisch, daGoogle Cloud eine gemeinsam genutzte Umgebung ist und Sie in vielen Fällen keinen direkten Zugriff auf die zugrunde liegenden Dienste und die Infrastruktur haben. Dieses Szenario kann zu unzureichenden, mühsamen Tests führen, die letztendlich ineffektiv sind, wenn es darum geht, die Resilienz Ihrer Anwendung richtig zu testen. Mit Fault Injection Testing können Sie den Aufwand für die Automatisierung dieser Tests reduzieren, auf Fehlerarten zugreifen, auf die Sie sonst keinen Zugriff haben, und die Genauigkeit Ihrer Tests verbessern.
Für Kunden in regulierten Branchen ist es oft erforderlich, regelmäßig Tests durchzuführen, um die Compliance mit den zuständigen Branchenorganisationen aufrechtzuerhalten. In diesen Fällen besteht der Test oft aus einer Notfallwiederherstellung, die zeigt, dass der Ausfall einer Zone oder Region die Anwendung nicht daran hindert, weiterhin effektiv zu arbeiten.
Verfügbare Fehler für Tests
Die folgenden Fehler sind verfügbar:
- Cloud SQL-Failover – Failover einer Datenbank von primär zu Standby.
- Anwendungstraffic beeinträchtigen – Beeinträchtigung des Traffics über einen Layer-7-Load-Balancer simulieren
Diese Fehler sollen den Umfang des Experiments auf die Ressourcen eines einzelnen Projekts in einer einzelnen Region oder weniger beschränken. Der Test wirkt sich nicht auf einen größeren Umfang als beabsichtigt aus. Diese Fehler führen jedoch zu echten Ausfällen der Zielressourcen in ihrer Umgebung.
Indem Sie auf Infrastrukturkomponenten wie eine Cloud SQL-Datenbank oder einen Application Load Balancer sowie auf andere Komponenten abzielen, die in Zukunft unterstützt werden, können Sie einen Zonen- oder Regionsausfall im Kontext Ihrer eigenen Anwendung angemessen simulieren.
Fault Injection Testing verwenden
Bevor Sie Fault Injection Testing verwenden, müssen Sie Folgendes sicherstellen:
- Die Umgebungen, in denen die Tests durchgeführt werden, sind redundant. Wenn ein Fehler auftritt, kann die Anwendung in dieser Umgebung weiterhin auf der redundanten Infrastruktur ausgeführt werden.
- Für Administratoren oder Inhaber von Google Cloud -Ressourcen: Überlegen Sie genau, wer Berechtigungen zum Einrichten und Ausführen von Fault Injection Testing-Tests erhält. Fehler bei laufenden Infrastrukturkomponenten in Ihrer Google Cloud Umgebung führen zu Unterbrechungen. Daher müssen Sie nur Operatoren die Berechtigung erteilen, die wissen, wie ihre Cloud-Umgebung aufgebaut ist und wie sie die Ausfallsicherheit dieser Architektur sicher testen können, damit sie Experimente so konfigurieren können, dass keine unbeabsichtigten Störungen auftreten.
Für Fault Injection Testing muss ein Test eingerichtet werden. Wenn Sie einen neuen Test einrichten möchten, erstellen Sie zuerst eine Testvorlage, in der der einzuschleusende Fehler und die Zielressourcen definiert werden. Als Nächstes führen Sie den Test über die Vorlage aus. Ein Test ist die Gruppe von Aktionen, die in der Vorlage definiert sind und für die Ressourcen ausgeführt werden, die Sie in der Vorlage ausgewählt haben.