REL 8: Wie implementieren Sie Änderungen?
Kontrollierte Änderungen sind erforderlich, um neue Funktionen bereitzustellen und um sicherzustellen, dass die Workloads und die Betriebsumgebung bekannte Software ausführen und auf vorhersagbare Weise durch Patches aktualisiert oder ersetzt werden können. Wenn diese Änderungen nicht kontrolliert stattfinden, ist es schwierig, ihre Auswirkungen vorherzusagen oder daraus entstehende Probleme zu beheben.
Ressourcen
AWS Summit 2019: CI/CD on AWS
What Is AWS CodePipeline?
What Is CodeDeploy?
Overview of a Blue/Green Deployment
Deploying Serverless Applications Gradually
The Amazon Builders' Library: Ensuring rollback safety during deployments
The Amazon Builders' Library: Going faster with continuous delivery
Well-Architected lab: Level 300: Testing for Resiliency of EC2 RDS and S3
CanaryRelease
AWS Marketplace: products that can be used to automate your deployments
APN Partner: partners that can help you create automated deployment solutions
Bewährte Methoden:
-
Verwenden von Runbooks für Standardaktivitäten wie die Bereitstellung: Runbooks sind die vordefinierten Schritte, mit denen bestimmte Ergebnisse erzielt werden. Verwenden Sie Runbooks, um Standardaktivitäten manuell oder automatisch durchzuführen. Beispiele sind die Bereitstellung und das Patchen eines Workloads oder das Vornehmen von DNS-Änderungen.
-
Integrieren von Funktionstests als Teil Ihrer Bereitstellung: Funktionstests werden im Rahmen der automatisierten Bereitstellung ausgeführt. Wenn die Erfolgskriterien nicht erfüllt sind, wird die Pipeline angehalten oder rückgängig gemacht.
-
Ausfallsicherheitstests als Teil Ihrer Bereitstellung: Ausfallsicherheitstests (im Rahmen von Chaos Engineering) werden als Teil der automatisierten Bereitstellungspipeline in einer Vorproduktionsumgebung ausgeführt.
-
Bereitstellung mit einer unveränderlichen Infrastruktur: Dieses Modell sieht vor, dass Updates, Sicherheitspatches oder Konfigurationsänderungen nicht direkt in Produktionsworkloads durchgeführt werden. Wenn eine Änderung erforderlich ist, wird die Architektur auf einer neuen Infrastruktur eingerichtet und für die Produktion bereitgestellt.
-
Automatisieren von Änderungen: Bereitstellungen und Patches werden automatisiert, um negative Auswirkungen zu vermeiden.
Verbesserungsplan
Verwenden von Runbooks für Standardaktivitäten wie die Bereitstellung
AWS Well-Architected Framework: Concepts: Runbook
- Definieren Sie Ihre Infrastruktur mit AWS CloudFormation oder dem vertrauenswürdigen
Tool eines Drittanbieters.
What is AWS CloudFormation? - Erstellen Sie unter Anwendung guter Softwaredesign-Grundsätze erstklassige, entkoppelte
Vorlagen.
- Ermitteln Sie die für die Implementierung erforderlichen Berechtigungen, Vorlagen
und zuständigen Parteien.
Controlling access with AWS Identity and Access Management - Verwenden Sie zur Versionskontrolle eine Quellkontrolle wie AWS CodeCommit oder ein
vertrauenswürdiges Tool eines Drittanbieters.
What is AWS CodeCommit?
- Ermitteln Sie die für die Implementierung erforderlichen Berechtigungen, Vorlagen
und zuständigen Parteien.
Integrieren von Funktionstests als Teil Ihrer Bereitstellung
- Rufen Sie AWS CodeBuild während der "Testaktion" Ihrer in AWS CodePipeline modellierten
Software-Release-Pipelines auf. Mit dieser Funktion können Sie ganz einfach eine Vielzahl
von Tests für Ihren Code ausführen, z. B. Einheitentests, statische Code-Analysen
und Integrationstests.
AWS CodePipeline Adds Support for Unit and Custom Integration Testing with AWS CodeBuild - Verwenden Sie AWS Marketplace-Lösungen für die Ausführung automatisierter Tests als
Teil Ihrer Softwarebereitstellungs-Pipeline.
Software test automation
Ausfallsicherheitstests als Teil Ihrer Bereitstellung
- Bei Resilienztests werden Fehler oder Ressourceneinbußen eingeschleust, um zu bewerten,
ob Ihre Workload mit der entworfenen Resilienz reagiert
Well-Architected lab: Level 300: Testing for Resiliency of EC2 RDS and S3 - Diese Tests können regelmäßig in Vorproduktionsumgebungen in automatisierten Bereitstellungs-Pipelines ausgeführt werden.
- Sie sollten auch in der Produktion als Teil geplanter Ernstfallübungen ausgeführt werden.
- Schlagen Sie unter Verwendung von Chaos Engineering-Prinzipien Hypothesen zur Leistung
Ihrer Workload unter verschiedenen Beeinträchtigungen vor. Testen Sie dann Ihre Hypothesen
mithilfe von Belastungstests.
Principles of Chaos Engineering
Bereitstellung mit einer unveränderlichen Infrastruktur
Overview of a Blue/Green Deployment
Deploying Serverless Applications Gradually
CanaryRelease
Automatisieren von Änderungen
The Amazon Builders' Library: Ensuring rollback safety during deployments
The Amazon Builders' Library: Going faster with continuous delivery
- Nutzen Sie zum Definieren und Ausführen Ihrer Pipelines AWS CodePipeline (oder das
vertrauenswürdige Produkt eines Drittanbieters).
- Legen Sie fest, dass die Pipeline startet, sobald in Ihrem Code-Repository eine Änderung
festgeschrieben wird.
What is AWS CodePipeline? - Verwenden Sie Amazon Simple Notification Service (SNS) und Amazon Simple Email Service
(SES), um Benachrichtigungen bezüglich Pipelineproblemen zu senden, oder integrieren
Sie diese in ein Team-Chat-Tool wie Amazon Chime.
What is Amazon Simple Notification Service?
What is Amazon SES?
What is Amazon Chime?
Automate chat messages with webhooks.
- Legen Sie fest, dass die Pipeline startet, sobald in Ihrem Code-Repository eine Änderung
festgeschrieben wird.