Untersuchen von Shift-Right-Tests

Abgeschlossen

Wie weiter oben im Kurs erläutert, ist das Testen im Anwendungslebenszyklus-Management unerlässlich, um die Codequalität zu maximieren und das Betriebsrisiko zu minimieren, das mit der Bereitstellung und Aktualisierung von Software verbunden ist. Dies ist der Grund für die Anwendung des Shift-left-Ansatzes , der Testaktivitäten so früh wie möglich in der Entwicklungsphase einführt. Es gibt jedoch bestimmte Aspekte der Tests, die bei dieser Durchführung nicht wirksam sind. Stattdessen müssen sie in der Produktionsumgebung durchgeführt werden, um ihren Zweck vollständig zu erfüllen. Dies wird als Shift-right--Ansatz bezeichnet. Die Organisation in unserem Beispielszenario müsste dies verwenden, um die Zuverlässigkeit ihrer Systeme in Kombination mit der Fehlereinfügung ordnungsgemäß zu bewerten. In dieser Lerneinheit untersuchen Sie diese und andere Kriterien, bei denen Shift-Right-Tests die geeignete Methode sind.

Was sind die Gründe für Shift-Right-Tests?

Während sich Shift-Left-Tests ideal für Komponenten- und Buildüberprüfungstests eignen, werden sie unter Bedingungen durchgeführt, die sich meist erheblich von denen unterscheiden, die für beabsichtigte Lieferziele gelten. Auch Qualitätssicherungs- und Stagingumgebungen spiegeln selten die Komplexität ihrer Produktionspartner wider. Tatsächlich besteht die beste Möglichkeit, das Verhalten einer Workload nach der Bereitstellung vollständig zu untersuchen, darin, sie genau zu diesem Zeitpunkt zu testen.

Tests in der Produktion bieten die folgenden Vorteile:

  • Spiegelt die tatsächlichen Arbeitsbedingungen wider, einschließlich zusätzlicher Last, die der Behandlung von Endbenutzeranforderungen zugeordnet ist.
  • Berücksichtigt Faktoren, die schwierig zu simulieren wären, z. B. konnektivität mit externen Systemen.
  • Spiegelt Veränderungen der Arbeitsauslastungsnachfrage im Laufe der Zeit wider.

Was sind typische Szenarien für Shift-Right-Tests?

Obwohl der Shift-Right-Testansatz in vielen Szenarien begründet sein kann, gibt es nur wenige, in denen er auch wirklich geeignet ist. Zu diesen Szenarien gehören:

  • Microservices-Bereitstellungen: Die Microservices-Architektur besteht in der Regel aus einer großen Anzahl von unabhängig entwickelten Komponenten. Eine Vielzahl an Kombinationen dieser Dienste könnte den Shift-Right-Test rechtfertigen, um sich auf die Szenarien zu konzentrieren, die in der tatsächlichen Produktionsumgebung am relevantesten sind (gemäß ihrer tatsächlichen Verwendung).

  • Bewerten der Auswirkungen von Netzwerkbedingungen wie Bandbreite und Wartezeit: Es ist oft schwierig, Netzwerkbedingungen zu simulieren. Wenn die Leistung einer Workload stark von der Wartezeit oder der Bandbreite abhängt, können Shift-Right-Tests daher die beste Option sein.

  • Benutzerakzeptanztests: Das Feedback der tatsächlichen Benutzer kann unerlässlich sein, um die Leistung und Benutzerfreundlichkeit der Workload zu überprüfen.

  • Prüfung von Failoververfahren in redundanten Konfigurationen: Durch Testen von Fehlereinschleusung und Notfallwiederherstellung wird die Resilienz der Workloads in der Produktionsumgebung bewertet. Fehlereinfügung umfasst das gezielte Einführen von Störungen in einzelne Komponenten einer Arbeitslast während der Ausführung, um Schwachstellen zu identifizieren und zu mindern und die Gesamtzuverlässigkeit zu erhöhen.

    Anmerkung

    Chaos Engineering ist ein weiteres Konzept im Bereich devOps Zuverlässigkeitstests. Wie bei der Fehlereinspritzung beinhaltet es die Simulation von Fehlern ( in diesem Fall, um ein kontrolliertes Chaos im zu testenden System zu schaffen). Ihr Umfang ist jedoch in der Regel breiter und richtet sich nicht nur auf die einzelnen Komponenten, sondern eher auf das gesamte System, und die Testszenarien sind tendenziell umfassender. Tatsächlich ist Chaos Engineering in der Regel auf Canary-Umgebungen beschränkt, die sehr begrenzte oder keine Auswirkungen auf die Produktion haben.

    Anmerkung

    Sie können Azure Chaos Studio verwenden, um Chaos engineering-Experimente zu implementieren, die auf Lösungen abzielen, die in Microsoft Azure gehostet werden. Sie werden ein Beispiel für solche Experimente im Labor dieses Moduls durchlaufen.