Aktivitäten vor der Bereitstellung - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktivitäten vor der Bereitstellung

Gestaltung der Umgebung

Die Umgebung, in der Sie Ihre Anwendung testen und bewerten, wirkt sich darauf aus, wie gründlich Sie sie testen können und wie sicher Sie sein können, dass diese Ergebnisse genau wiedergeben, was in der Produktion passieren wird. Möglicherweise können Sie mithilfe von Diensten wie Amazon DynamoDB einige Integrationstests lokal auf Entwicklercomputern durchführen (siehe DynamoDB lokal einrichten in der DynamoDB-Dokumentation). Irgendwann müssen Sie jedoch in einer Umgebung testen, die Ihre Produktionsumgebung repliziert, um ein Höchstmaß an Vertrauen in Ihre Ergebnisse zu erreichen. Da diese Umgebung mit Kosten verbunden ist, empfehlen wir Ihnen, für Ihre Umgebungen einen schrittweisen Ansatz oder eine Pipeline zu wählen, bei der produktionsmäßige Umgebungen erst später in der Pipeline auftauchen.

Integrationstests

Integrationstests sind der Prozess, bei dem getestet wird, ob eine genau definierte Komponente einer Anwendung ihre Funktionen korrekt ausführt, wenn sie mit externen Abhängigkeiten arbeitet. Bei diesen externen Abhängigkeiten kann es sich um andere individuell entwickelte Komponenten, AWS Dienste, die Sie für Ihre Anwendung verwenden, Abhängigkeiten von Drittanbietern und lokale Abhängigkeiten handeln.  Dieser Leitfaden konzentriert sich auf Integrationstests, mit denen die Belastbarkeit Ihrer Anwendung nachgewiesen wird. Es wird davon ausgegangen, dass es bereits Einheiten- und Integrationstests gibt, die die Funktionsgenauigkeit Ihrer Software belegen.

Wir empfehlen Ihnen, Integrationstests zu entwerfen, die speziell die von Ihnen implementierten Resilienzmuster testen, z. B. Schutzschaltermuster oder Lastabwurf (siehe Phase 2: Design und Implementierung). Resilienzorientierte Integrationstests beinhalten häufig das Aufbringen einer bestimmten Last auf die Anwendung oder das gezielte Herbeiführen von Störungen in der Umgebung mithilfe von Funktionen wie ().AWS Fault Injection ServiceAWS FIS Idealerweise sollten Sie alle Integrationstests als Teil Ihrer CI/CD-Pipeline ausführen und sicherstellen, dass Sie die Tests jedes Mal ausführen, wenn der Code festgeschrieben wird. Auf diese Weise können Sie Änderungen am Code oder an Konfigurationen, die zu Verstößen gegen Ihre Resilienzziele führen, schnell erkennen und darauf reagieren. Umfangreiche verteilte Anwendungen sind komplex, und selbst geringfügige Änderungen können die Widerstandsfähigkeit scheinbar unzusammenhängender Teile Ihrer Anwendung erheblich beeinträchtigen. Versuchen Sie, Ihre Tests bei jedem Commit auszuführen. AWS bietet hervorragende Tools für den Betrieb Ihrer CI/CD-Pipeline und anderer DevOps Tools. Weitere Informationen finden Sie unter Einführung in DevOps on AWS auf der AWS Website.

Automatisierte Bereitstellungspipelines

Die Bereitstellung in Ihren Vorproduktionsumgebungen und das Testen in diesen Umgebungen ist eine sich wiederholende und komplexe Aufgabe, die am besten der Automatisierung überlassen wird. Durch die Automatisierung dieses Prozesses werden Personalressourcen entlastet und die Fehleranfälligkeit verringert. Der Mechanismus zur Automatisierung dieses Prozesses wird oft als Pipeline bezeichnet. Wenn Sie Ihre Pipeline erstellen, empfehlen wir Ihnen, eine Reihe von Testumgebungen einzurichten, die Ihrer Produktionskonfiguration immer näher kommen. Sie verwenden diese Reihe von Umgebungen, um Ihre Anwendung wiederholt zu testen. Die erste Umgebung bietet einen eingeschränkteren Funktionsumfang als die Produktionsumgebung, ist jedoch mit deutlich geringeren Kosten verbunden. In nachfolgenden Umgebungen sollten Dienste hinzugefügt und skaliert werden, damit sie der Produktionsumgebung besser entsprechen.

Beginnen Sie mit dem Testen in der ersten Umgebung. Nachdem Ihre Bereitstellungen alle Tests in der ersten Testumgebung bestanden haben, lassen Sie die Anwendung für einen bestimmten Zeitraum unter einer gewissen Last laufen, um festzustellen, ob im Laufe der Zeit Probleme auftreten. Vergewissern Sie sich, dass Sie die Beobachtbarkeit korrekt konfiguriert haben (siehe Alarmgenauigkeit weiter unten in diesem Handbuch), damit Sie alle auftretenden Probleme erkennen können. Wenn dieser Beobachtungszeitraum erfolgreich abgeschlossen ist, stellen Sie Ihre Anwendung in Ihrer nächsten Testumgebung bereit und wiederholen Sie den Vorgang, indem Sie zusätzliche Tests oder Lasten hinzufügen, je nachdem, wie von der Umgebung unterstützt. Nachdem Sie Ihre Anwendung auf diese Weise ausreichend getestet haben, können Sie die zuvor eingerichteten Bereitstellungsmethoden verwenden, um die Anwendung in der Produktion bereitzustellen (siehe Definieren von CI/CD-Strategien weiter oben in diesem Handbuch). Der Artikel Automatisieren sicherer, automatischer Bereitstellungen in der Amazon Builders' Library ist eine hervorragende Ressource, die beschreibt, wie Amazon die Codebereitstellung automatisiert. Die Anzahl der Umgebungen, die Ihrer Produktionsbereitstellung vorausgehen, hängt von der Komplexität Ihrer Anwendung und den Arten der Abhängigkeiten ab.

Lasttest

Oberflächlich betrachtet ähneln Belastungstests Integrationstests. Sie testen eine einzelne Funktion Ihrer Anwendung und ihrer externen Abhängigkeiten, um sicherzustellen, dass sie erwartungsgemäß funktioniert. Der Lasttest geht dann über Integrationstests hinaus und konzentriert sich darauf, wie die Anwendung unter genau definierten Lasten funktioniert. Lasttests erfordern die Überprüfung der korrekten Funktionalität und müssen daher nach einem erfolgreichen Integrationstest durchgeführt werden. Es ist wichtig zu verstehen, wie gut die Anwendung unter erwarteten Belastungen reagiert und wie sie sich verhält, wenn die Last die Erwartungen übertrifft. Auf diese Weise können Sie überprüfen, ob Sie die erforderlichen Mechanismen implementiert haben, um sicherzustellen, dass Ihre Anwendung auch unter extremer Belastung widerstandsfähig bleibt. Eine umfassende Anleitung zum Testen von Lasten finden Sie unter Distributed Load Testing on AWS in der AWS Lösungsbibliothek. AWS