

# OPS 5. Wie können Sie Fehler reduzieren, die Fehlerbehebung erleichtern und den Ablauf bis zur Produktion verbessern?
<a name="ops-05"></a>

 Verwenden Sie Ansätze, die den Fluss von Änderungen in die Produktion verbessern, die Refaktorierung ermöglichen, schnelles Feedback zur Qualität geben und Fehler beheben. Dadurch fließen nützliche Änderungen schneller in die Produktion ein und es treten bei der Bereitstellung weniger Probleme auf. Zudem können Probleme, die durch Bereitstellungsaktivitäten verursacht werden, schnell aufgespürt und gelöst werden. 

**Topics**
+ [OPS05-BP01 Verwendung einer Versionskontrolle](ops_dev_integ_version_control.md)
+ [OPS05-BP02 Testen und Validieren von Änderungen](ops_dev_integ_test_val_chg.md)
+ [OPS05-BP03 Einsatz von Systemen zur Konfigurationsverwaltung](ops_dev_integ_conf_mgmt_sys.md)
+ [OPS05-BP04 Einsatz von Systemen zur Build- und Bereitstellungsverwaltung.](ops_dev_integ_build_mgmt_sys.md)
+ [OPS05-BP05 Durchführen der Patch-Verwaltung](ops_dev_integ_patch_mgmt.md)
+ [OPS05-BP06 Gemeinsame Design-Standards](ops_dev_integ_share_design_stds.md)
+ [OPS05-BP07 Implementieren von Verfahren zur Verbesserung der Codequalität](ops_dev_integ_code_quality.md)
+ [OPS05-BP08 Verwenden mehrerer Umgebungen](ops_dev_integ_multi_env.md)
+ [OPS05-BP09 Häufige, kleine, reversible Änderungen vornehmen](ops_dev_integ_freq_sm_rev_chg.md)
+ [OPS05-BP10 Vollständige Automatisierung von Integration und Bereitstellung](ops_dev_integ_auto_integ_deploy.md)

# OPS05-BP01 Verwendung einer Versionskontrolle
<a name="ops_dev_integ_version_control"></a>

 Aktivieren Sie die Verfolgung von Änderungen und Releases mithilfe einer Versionskontrolle. 

 Viele AWS-Services bieten Versionskontrollfunktionen. Verwenden Sie ein Revisions- oder Quellcodeverwaltungssystem wie [AWS CodeCommit,](https://aws.amazon.com/codecommit/) um Code und andere Artefakte zu verwalten, z. B. versionsgesteuerte [AWS CloudFormation](https://aws.amazon.com/cloudformation/) -Vorlagen Ihrer Infrastruktur. 

 **Gewünschtes Ergebnis:** Ihre Teams arbeiten gemeinsam am Code. Bei der Zusammenführung ist der Code einheitlich und es gehen keine Änderungen verloren. Fehler können durch korrekte Versionierung leicht behoben werden. 

 **Typische Anti-Muster:** 
+  Sie haben Ihren Code auf Ihrer Workstation entwickelt und gespeichert. Es ist ein Speicherfehler bei der Workstation aufgetreten, der nicht rückgängig gemacht werden kann, und Sie haben den Code verloren. 
+  Nachdem Sie den vorhandenen Code mit Ihren Änderungen überschrieben haben, starten Sie Ihre Anwendung neu, doch sie funktioniert nicht mehr. Sie können die Änderung nicht rückgängig machen. 
+  Sie arbeiten an einer Berichtsdatei, deshalb ist sie für alle anderen schreibgeschützt, doch ein anderer Benutzer möchte sie bearbeiten. Der Benutzer kontaktiert Sie und bittet darum, die Arbeit daran zu beenden, damit er seine Aufgabe erledigen kann. 
+  Ihr Forschungsteam arbeitet an einer detaillierten Analyse, die Ihre zukünftige Arbeit prägt. Jemand hat versehentlich seine Einkaufsliste über den endgültigen Bericht gespeichert. Sie können die Änderung nicht rückgängig machen und müssen den Bericht neu erstellen. 

 **Vorteile der Nutzung dieser bewährten Methode:** Durch die Verwendung von Versionskontrollfunktionen können Sie problemlos auf einen bekanntermaßen funktionierenden Status bzw. frühere Versionen zurücksetzen und so das Risiko von verlorenen Assets begrenzen. 

 **Risikostufe bei fehlender Befolgung dieser bewährten Methode:** Hoch 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Bewahren Sie Ressourcen in Repositorys mit Versionskontrolle auf. Dies ermöglicht die Nachvollziehung von Änderungen, die Bereitstellung neuer Versionen, die Erkennung von Änderungen an bestehenden Versionen und die Rückkehr zu vorherigen Versionen (zum Beispiel bei einem Fehler die Zurücksetzung auf einen bekanntermaßen funktionierenden Zustand). Integrieren Sie die Versionskontrollfunktionen Ihrer Konfigurationsverwaltungssysteme in Ihre Verfahren. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige bewährte Methoden:** 
+  [OPS05-BP04 Einsatz von Systemen zur Build- und Bereitstellungsverwaltung.](ops_dev_integ_build_mgmt_sys.md) 

 **Zugehörige Dokumente:** 
+  [Was ist AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

 **Zugehörige Videos:** 
+  [Einführung in AWS CodeCommit](https://youtu.be/46PRLMW8otg) 

# OPS05-BP02 Testen und Validieren von Änderungen
<a name="ops_dev_integ_test_val_chg"></a>

 Jede eingesetzte Änderung muss getestet werden, um Fehler in der Produktion zu vermeiden. Diese bewährte Methode konzentriert sich auf das Testen von Änderungen von der Versionskontrolle bis zur Erstellung von Artefakten. Neben Änderungen am Anwendungscode sollten die Tests auch die Infrastruktur, die Konfiguration, die Sicherheitskontrollen und die Betriebsverfahren umfassen. Es gibt viele Formen des Testens, von Tests der Einheiten bis hin zur Softwarekomponentenanalyse (SCA). Wenn Tests im Softwareintegrations- und -bereitstellungsprozess weiter nach links verschoben werden, führt dies zu einer höheren Gewissheit der Artefaktqualität. 

 Ihr Unternehmen muss Teststandards für alle Software-Artefakte entwickeln. Automatisierte Tests verringern den Arbeitsaufwand und vermeiden manuelle Testfehler. In einigen Fällen können aber auch manuelle Tests notwendig sein. Entwickler müssen Zugang zu automatisierten Testergebnissen haben, um Feedbackschleifen zur Verbesserung der Softwarequalität zu schaffen. 

 **Gewünschtes Ergebnis:** Ihre Softwareänderungen werden vor der Bereitstellung getestet. Die Entwickler haben Zugang zu den Testergebnissen und den Validierungen. Ihr Unternehmen hat einen Teststandard, der für alle Softwareänderungen gilt. 

 **Typische Anti-Muster:** 
+ Sie stellen eine neue Softwareänderung ohne jegliche Tests bereit. Sie wird in der Produktion nicht ausgeführt, was zu einem Ausfall führt.
+ Es werden neue Sicherheitsgruppen mit CloudFormation eingesetzt, ohne in einer Vorproduktionsumgebung getestet zu werden. Durch die Sicherheitsgruppen ist Ihre App für Ihre Kunden unerreichbar.
+ Eine Methode wurde geändert, aber es gibt keine Tests der Einheiten. Die Software läuft nicht, wenn sie in der Produktion eingesetzt wird.

 **Vorteile der Nutzung dieser bewährten Methode:** Die Fehlerquote bei der Implementierung von Software wird reduziert. Die Qualität der Software wird verbessert. Die Entwickler haben ein größeres Bewusstsein für die Lebensfähigkeit ihres Codes. Sicherheitsrichtlinien können zuverlässig eingeführt werden, um die Compliance des Unternehmens zu unterstützen. Infrastrukturänderungen, wie z. B. automatische Aktualisierungen der Skalierungsrichtlinien, werden im Voraus getestet, um den Anforderungen des Datenverkehrs gerecht zu werden. 

 **Risikostufe bei fehlender Befolgung dieser bewährten Methode:** Hoch 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Alle Änderungen, vom Anwendungscode bis zur Infrastruktur, werden im Rahmen Ihrer kontinuierlichen Integrationspraxis getestet. Die Testergebnisse werden veröffentlicht, damit die Entwickler schnelles Feedback erhalten. Ihr Unternehmen hat einen Teststandard, den alle Änderungen erfüllen müssen. 

 **Kundenbeispiel** 

 Als Teil der kontinuierlichen Integrationspipeline führt AnyCompany Retail verschiedene Arten von Tests für alle Software-Artefakte durch. Sie praktizieren eine testgesteuerte Entwicklung, sodass die gesamte Software über Tests von Einheiten verfügt. Sobald das Artefakt erstellt ist, führen sie End-to-End-Tests durch. Nach Abschluss dieser ersten Testrunde führen sie einen statischen Anwendungssicherheitsscan durch, bei dem nach bekannten Schwachstellen gesucht wird. Die Entwickler erhalten Meldungen, sobald die einzelnen Prüfpunkte durchlaufen wurden. Sobald alle Tests abgeschlossen wurden, wird der Software-Artefakt in einem Artefakt-Repository gespeichert. 

### Implementierungsschritte
<a name="implementation-steps"></a>

1.  Arbeiten Sie mit den Beteiligten in Ihrem Unternehmen zusammen, um einen Teststandard für Software-Artefakte zu entwickeln. Welche Standardtests sollten alle Artefakte bestehen? Gibt es Compliance- oder Governance-Anforderungen, die bei der Testabdeckung berücksichtigt werden müssen? Müssen Sie die Qualität des Codes testen? Wer muss informiert werden, sobald die Tests abgeschlossen sind? 

   1.  Die [Referenzarchitektur für AWS-Bereitstellungs-Pipelines](https://pipelines.devops.aws.dev/) enthält eine maßgebliche Liste von Testtypen, die als Teil einer Integrationspipeline an Software-Artefakten durchgeführt werden können. 

1.  Instrumentieren Sie Ihre Anwendung mit den erforderlichen Tests auf der Grundlage Ihres Software-Teststandards. Jeder Testreihe sollte in weniger als zehn Minuten abgeschlossen sein. Tests sollten im Rahmen einer Integrationspipeline durchgeführt werden. 

   1.  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) kann Ihren Anwendungscode auf Fehler prüfen. 

   1.  Nutzen Sie [AWS CodeBuild,](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) um Tests auf Software-Artefakten durchzuführen. 

   1.  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) kann Ihre Softwaretests in eine Pipeline orchestrieren. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige bewährte Methoden:** 
+  [OPS05-BP01 Verwendung einer Versionskontrolle](ops_dev_integ_version_control.md) 
+  [OPS05-BP06 Gemeinsame Design-Standards](ops_dev_integ_share_design_stds.md) 
+  [OPS05-BP10 Vollständige Automatisierung von Integration und Bereitstellung](ops_dev_integ_auto_integ_deploy.md) 

 **Zugehörige Dokumente:** 
+ [ Adopt a test-driven development approach (Einführung eines testgesteuerten Entwicklungsansatzes) ](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html)
+ [ Automated CloudFormation Testing Pipeline with TaskCat and CodePipeline (Automatisierte CloudFormation-Testpipeline mit TaskCat und CodePipeline) ](https://aws.amazon.com/blogs/devops/automated-cloudformation-testing-pipeline-with-taskcat-and-codepipeline/)
+ [ Building end-to-end AWS DevSecOps CI/CD pipeline with open source SCA, SAST, and DAST tools (Erstellen einer End-to-End-AWS DevSecOps-CI/CD-Pipeline mit Open-Source-SCA-, -SAST- und -DAST-Tools) ](https://aws.amazon.com/blogs/devops/building-end-to-end-aws-devsecops-ci-cd-pipeline-with-open-source-sca-sast-and-dast-tools/)
+ [ Getting started with testing serverless applications (Erste Schritte beim Testen von Serverless-Anwendungen) ](https://aws.amazon.com/blogs/compute/getting-started-with-testing-serverless-applications/)
+ [ My CI/CD pipeline is my release captain (Meine CI/CD-Pipeline ist mein Release Captain) ](https://aws.amazon.com/builders-library/cicd-pipeline/)
+ [ Practicing Continuous Integration and Continuous Delivery on AWS Whitepaper (Durchführung von Continuous Integration und Continuous Delivery in AWS – Whitepaper) ](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/welcome.html)

 **Zugehörige Videos:** 
+ [AWS re:Invent 2020: Testable infrastructure: Integration testing on AWS (AWS re:Invent 2020: Testbare Infrastruktur: Integrationstests auf AWS) ](https://www.youtube.com/watch?v=KJC380Juo2w)
+ [AWS Summit ANZ 2021 - Driving a test-first strategy with CDK and test driven development (AWS Summit ANZ 2021 – Vorantreiben einer „Test-First“-Strategie mit CDK und testgesteuerter Entwicklung) ](https://www.youtube.com/watch?v=1R7G_wcyd3s)
+ [ Testing Your Infrastructure as Code with AWS CDK (Testen Ihrer Infrastruktur als Code mit AWS CDK) ](https://www.youtube.com/watch?v=fWtuwGSoSOU)

 **Zugehörige Ressourcen:** 
+ [AWS Deployment Pipeline Reference Architecture - Application (Referenzarchitektur für AWS-Bereitstellungs-Pipelines – Anwendung) ](https://pipelines.devops.aws.dev/application-pipeline/index.html)
+ [AWS Kubernetes DevSecOps Pipeline ](https://github.com/aws-samples/devsecops-cicd-containers)
+ [ Policy as Code Workshop – Test Driven Development (Richtlinie als Code – Workshop – testgesteuerte Entwicklung) ](https://catalog.us-east-1.prod.workshops.aws/workshops/9da471a0-266a-4d36-8596-e5934aeedd1f/en-US/pac-tools/cfn-guard/tdd)
+ [ Run unit tests for a Node.js application from GitHub by using AWS CodeBuild (Tests von Einheiten für eine Node.js-Anwendung aus GitHub mithilfe von AWS CodeBuild ausführen) ](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-unit-tests-for-a-node-js-application-from-github-by-using-aws-codebuild.html)
+ [ Use Serverspec for test-driven development of infrastructure code (Serverspec für die testgesteuerte Entwicklung von Infrastrukturcode verwenden) ](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/use-serverspec-for-test-driven-development-of-infrastructure-code.html)

 **Zugehörige Services:** 
+  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 
+  [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 

# OPS05-BP03 Einsatz von Systemen zur Konfigurationsverwaltung
<a name="ops_dev_integ_conf_mgmt_sys"></a>

 Verwenden Sie Systeme zur Konfigurationsverwaltung, um Änderungen vorzunehmen und zu verfolgen. Diese Systeme reduzieren Fehler aufgrund von manuellen Prozessen und verringern den Testaufwand. 

 Bei der statischen Konfigurationsverwaltung werden Werte festgelegt, wenn eine Ressource initialisiert wird, die erwartungsgemäß während der Lebensdauer der Ressource konsistent bleibt. Einige Beispiele sind die Konfiguration eines Web- oder Anwendungsservers auf einer Instance oder die Definition der Konfiguration eines AWS-Service innerhalb der [AWS-Managementkonsole](https://docs.aws.amazon.com/awsconsolehelpdocs/index.html) oder durch die [AWS CLI](https://aws.amazon.com/cli/). 

 Bei der dynamischen Konfigurationsverwaltung werden bei der Initialisierung Werte festgelegt, die sich während der Lebensdauer einer Ressource ändern können oder voraussichtlich ändern werden. So können Sie zum Beispiel durch eine Konfigurationsänderung eine Funktion in Ihrem Code aktivieren oder während eines Vorfalls den Detaillierungsgrad des Protokolls ändern, um mehr Daten zu erfassen, und dann nach dem Vorfall wieder zum Ursprungswert zurückkehren, um unnötige Protokolle und damit verbundene Kosten zu vermeiden. 

 In AWS können Sie [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) zur kontinuierlichen Überwachung Ihrer AWS-Ressourcenkonfigurationen [über Konten und Regionen hinweg verwenden](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html). So können Sie den Konfigurationsverlauf besser verfolgen, nachvollziehen, wie sich eine Konfigurationsänderung auf andere Ressourcen auswirkt, und sie im Hinblick auf die erwarteten oder gewünschten Konfigurationen mithilfe von [AWS-Config-Regeln](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) und [AWS Config Conformance Packs prüfen](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html). 

 Wenn Sie dynamische Konfigurationen in Ihren Anwendungen haben, die auf Amazon EC2-Instances, AWS Lambda, Containern, Mobilfunkanwendungen oder IoT-Geräten ausgeführt werden, können Sie [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) nutzen, um sie in Ihren Umgebungen zu konfigurieren, zu validieren, bereitzustellen und zu überwachen. 

 In AWS können Sie CI/CD-Pipelines (Continuous Integration/Continuous Deployment) unter Verwendung von Services wie den [AWS Developer Tools erstellen](https://aws.amazon.com/products/developer-tools/) (Beispiel: [AWS CodeCommit](https://aws.amazon.com/codecommit/), [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)und [AWS CodeStar](https://aws.amazon.com/codestar/)). 

 **Gewünschtes Ergebnis:** Sie konfigurieren, validieren und implementieren als Teil Ihrer CI/CD-Pipeline (Continuous Integration, Continuous Delivery). Sie überwachen, um zu überprüfen, ob die Konfigurationen korrekt sind. Dadurch werden die Auswirkungen auf Endbenutzer und Kunden minimiert. 

 **Typische Anti-Muster:** 
+  Sie aktualisieren die Konfigurationen aller Webserver manuell und eine Reihe von Servern reagiert aufgrund von Updatefehlern nicht mehr. 
+  Sie aktualisieren Ihre Anwendungsserver mehrere Stunden lang auf manuelle Weise. Die Inkonsistenz der Konfiguration während der Änderung führt zu unerwarteten Verhaltensweisen. 
+  Jemand hat Ihre Sicherheitsgruppen aktualisiert und auf Ihre Webserver kann nicht mehr zugegriffen werden. Sie wissen nicht, was geändert wurde, und verbringen viel Zeit mit der Suche nach dem Problem – die Zeit bis zur Wiederherstellung nimmt zu. 
+  Sie übertragen eine Vorproduktionskonfiguration ohne Validierung über CI/CD in die Produktion. Sie setzen Benutzer und Kunden falschen Daten und Services aus. 

 **Vorteile der Nutzung dieser bewährten Methode:** Die Einführung von Konfigurationsverwaltungssystemen reduziert den Aufwand für die Durchführung und Nachverfolgung von Änderungen sowie die Häufigkeit der durch manuelle Verfahren verursachten Fehler. Konfigurationsverwaltungssysteme liefern Garantien in Bezug auf Governance, Compliance und regulatorische Anforderungen. 

 **Risikostufe bei fehlender Befolgung dieser bewährten Methode:** Mittel 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Konfigurationsverwaltungssysteme werden verwendet, um Änderungen an Anwendungs- und Umgebungskonfigurationen zu verfolgen und zu implementieren. Konfigurationsmanagementsysteme werden auch eingesetzt, um Fehler zu reduzieren, die durch manuelle Prozesse verursacht werden, Konfigurationsänderungen wiederholbar und überprüfbar zu machen und den Aufwand zu reduzieren. 

### Implementierungsschritte
<a name="implementation-steps"></a>

1.  Identifizieren Sie die Verantwortlichen der Konfiguration. 

   1.  Informieren Sie die Verantwortlichen der Konfigurationen über alle Compliance-, Governance- oder regulatorischen Anforderungen. 

1.  Identifizieren Sie Konfigurationselemente und Leistungen. 

   1.  Konfigurationselemente sind alle Anwendungs- und Umgebungskonfigurationen, die von einer Bereitstellung innerhalb Ihrer CI/CD-Pipeline betroffen sind. 

   1.  Zu den Leistungen gehören Erfolgskriterien, Validierung und was überwacht werden muss. 

1.  Wählen Sie Tools für die Konfigurationsverwaltung basierend auf Ihren Geschäftsanforderungen und Ihrer Bereitstellungspipeline aus. 

1.  Ziehen Sie für signifikante Konfigurationsänderungen gewichtete Bereitstellungen wie Canary-Bereitstellungen in Betracht, um die Auswirkungen falscher Konfigurationen zu minimieren. 

1.  Integrieren Sie Ihre Konfigurationsverwaltung in Ihre CI/CD-Pipeline. 

1.  Bestätigen Sie alle übermittelten Änderungen. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige bewährte Methoden:** 
+  [OPS06-BP01 Einkalkulieren nicht erfolgreicher Änderungen](ops_mit_deploy_risks_plan_for_unsucessful_changes.md) 
+  [OPS06-BP02 Testbereitstellungen](ops_mit_deploy_risks_test_val_chg.md) 
+  [OPS06-BP03 Einsetzen sicherer Bereitstellungsstrategien](ops_mit_deploy_risks_deploy_mgmt_sys.md) 
+  [OPS06-BP04 Automatisieren von Tests und Rollback](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Zugehörige Dokumente:** 
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)
+ [ Landing Zone Accelerator in AWS](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/)
+ [AWS Config](https://aws.amazon.com/config/)
+ [ Was ist AWS Config? ](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+  [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 
+ [ Was ist AWS CloudFormation? ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+  [AWS Developer Tools](https://aws.amazon.com/products/developer-tools/) 

 **Zugehörige Videos:** 
+ [AWS re:Invent 2022 - Proactive governance and compliance for AWS workloads (AWS re:Invent 2022 – Proaktive Governance und Compliance für AWS-Workloads) ](https://youtu.be/PpUnH9Y52X0?si=82wff87KHXcc6nbT)
+ [AWS re:Invent 2020: Achieve compliance as code using AWS Config (AWS re:Invent 2020: Mit AWS Config Compliance als Code erzielen) ](https://youtu.be/m8vTwvbzOfw?si=my4DP0FLq1zwKjho)
+ [ Manage and Deploy Application Configurations with AWS AppConfig (Verwaltung und Bereitstellung von Anwendungskonfigurationen mit AWS AppConfig) ](https://youtu.be/ztIxMY3IIu0?si=ovYGsxWOBysyQrg0)

# OPS05-BP04 Einsatz von Systemen zur Build- und Bereitstellungsverwaltung.
<a name="ops_dev_integ_build_mgmt_sys"></a>

 Verwenden Sie Systeme zur Build- und Bereitstellungsverwaltung. Diese Systeme reduzieren Fehler aufgrund von manuellen Prozessen und verringern den Testaufwand. 

 In AWS können Sie CI/CD-Pipelines (Continuous Integration/Continuous Deployment) unter Verwendung von Services wie den [AWS Developer Tools nutzen](https://aws.amazon.com/products/developer-tools/) (z. B. AWS CodeCommit, [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)und [AWS CodeStar](https://aws.amazon.com/codestar/)). 

 **Gewünschtes Ergebnis:** Ihre Systeme zur Build- und Bereitstellungsverwaltung unterstützen das Continuous Integration Continuous Delivery (CI/CD)-System Ihrer Organisation, das Funktionen zur Automatisierung sicherer Rollouts mit den richtigen Konfigurationen bietet. 

 **Typische Anti-Muster:** 
+  Nachdem Sie Ihren Code auf Ihrem Entwicklungssystem kompiliert haben, kopieren Sie die ausführbare Datei auf Ihre Produktionssysteme und sie kann nicht gestartet werden. Die lokalen Protokolldateien zeigen an, dass die Ausführung aufgrund fehlender Abhängigkeiten fehlgeschlagen ist. 
+  Sie erstellen Ihre Anwendung erfolgreich mit neuen Funktionen in Ihrer Entwicklungsumgebung und stellen den Code der Quality Assurance (QA, Qualitätsprüfung) zur Verfügung. Die QA-Prüfung schlägt fehl, da statische Komponenten fehlen. 
+  Am Freitag haben Sie Ihre Anwendung nach großem Aufwand manuell in Ihrer Entwicklungsumgebung erstellt, einschließlich der neu geschriebenen Funktionen. Am Montag können Sie die Schritte, mit denen Sie Ihre Anwendung erfolgreich erstellen konnten, nicht wiederholen. 
+  Sie führen die Tests durch, die Sie für den neuen Release erstellt haben. Sie verbringen die nächste Woche damit, eine Testumgebung einzurichten und alle vorhandenen Integrationstests durchzuführen, gefolgt von den Leistungstests. Der neue Code bewirkt eine inakzeptable Leistungsbeeinträchtigung und muss neu entwickelt und dann erneut getestet werden. 

 **Vorteile der Nutzung dieser bewährten Methode:** Mithilfe von Mechanismen zur Verwaltung von Erstellungs- und Bereitstellungsaktivitäten reduzieren Sie den Aufwand für wiederholte Aufgaben, verschaffen Ihren Teammitgliedern die Zeit, sich auf ihre wichtigen Aufgaben zu konzentrieren, und begrenzen die Entstehung von Fehlern durch manuelle Verfahren. 

 **Risikostufe bei fehlender Befolgung dieser bewährten Methode:** Mittel 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Systeme zur Build- und Bereitstellungsverwaltung werden verwendet, um Änderungen nachzuverfolgen und zu implementieren, Fehler zu reduzieren, die durch manuelle Prozesse verursacht werden, und den Aufwand für sichere Implementierungen zu minimieren. Nutzen Sie eine vollständig automatisierte Integrations- und Bereitstellungs-Pipeline vom Einchecken des Codes über das Testen und die Bereitstellung bis hin zur Validierung. Dies reduziert die Vorlaufzeit, senkt die Kosten, ermöglicht häufigere Änderungen, minimiert den Aufwand und verbessert die Zusammenarbeit. 

### Implementierungsschritte
<a name="implementation-steps"></a>

![\[Diagramm, das eine CI/CD-Pipeline mit AWS CodePipeline und zugehörigen Services zeigt\]](http://docs.aws.amazon.com/de_de/wellarchitected/2023-10-03/framework/images/deployment-pipeline-tooling.png)


 

1.  Nutzen Sie AWS CodeCommit zur Versionskontrolle und zum Speichern und Verwalten von Ressourcen (wie Dokumente, Quellcode und Binärdateien). 

1.  Nutzen Sie CodeBuild, um den Quellcode zu kompilieren, Komponententests auszuführen und Artefakte zu erzeugen, die sofort bereitgestellt werden können. 

1.  Nutzen Sie CodeDeploy als Bereitstellungsservice, der Anwendungsbereitstellungen für [Amazon EC2-Instances,](https://aws.amazon.com/ec2/) On-Premises-Instances, [AWS Lambda-Serverless-Funktionen](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)oder [Amazon ECS](https://aws.amazon.com/ecs/)automatisiert. 

1.  Überwachen Sie Ihre Bereitstellungen. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige bewährte Methoden:** 
+  [OPS06-BP04 Automatisieren von Tests und Rollback](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Zugehörige Dokumente:** 
+  [AWS Developer Tools (AWS-Entwicklertools)](https://aws.amazon.com/products/developer-tools/) 
+ [ Was ist AWS CodeCommit? ](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
+  [Was ist AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+  [Was ist AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Zugehörige Videos:** 
+ [AWS re:Invent 2022 - AWS Well-Architected best practices for DevOps on AWS (AWS re:Invent 2022 – AWS Well-Architected Best Practices für DevOps in AWS) ](https://youtu.be/hfXokRAyorA)

# OPS05-BP05 Durchführen der Patch-Verwaltung
<a name="ops_dev_integ_patch_mgmt"></a>

 Führen Sie eine Patch-Verwaltung durch, um Funktionen zu erhalten, Probleme zu beheben und die Konformität mit der Governance zu gewährleisten. Automatisieren Sie die Patch-Verwaltung, um Fehler aufgrund manueller Prozesse zu reduzieren, zu skalieren und den Aufwand für die Installation von Patches zu verringern. 

 Patch- und Schwachstellenmanagement sind Teil Ihrer Vorteile- und Risikomanagement-Aktivitäten. Es ist vorzuziehen, unveränderliche Infrastrukturen zu haben und Workloads in verifizierten bekannten guten Zuständen bereitzustellen. Wenn dies nicht realisierbar ist, ist das Patchen die verbleibende Option. 

 [Amazon EC2 Image Builder](https://aws.amazon.com/image-builder/) stellt Pipelines zur Aktualisierung von Machine Images bereit. Als Teil der Patch-Verwaltung nutzen [Amazon Machine Images](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html       ) (AMIs) eine [AMI-Image-Pipeline](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-image-pipeline.html) oder Container-Images eine [Docker-Image-Pipeline,](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-container-pipeline.html)während AWS Lambda Muster für [benutzerdefinierte Lambda-Laufzeiten und zusätzliche Bibliotheken](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html) bietet, um Sicherheitslücken zu beseitigen. 

 Sie sollten Updates für [Amazon Machine Images](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) für Linux- oder Windows Server-Images mit [Amazon EC2 Image Builder](https://aws.amazon.com/image-builder/)verwalten. Sie können [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) mit Ihrer bestehenden Pipeline zur Verwaltung von Amazon ECS-Images und von Amazon EKS-Images nutzen. Lambda beinhaltet [Versionsmanagementfunktionen](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html). 

 Patches sollten nicht auf Produktionssystemen ohne erste Tests in einer sicheren Umgebung durchgeführt werden. Patches sollten nur angewendet werden, wenn sie ein betriebliches oder geschäftliches Ergebnis unterstützen. In AWS können Sie [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) verwenden, um das Patchen verwalteter Systeme zu automatisieren und die Aktivitäten mithilfe von [Systems Manager-Wartungsfenstern zu planen](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

 **Gewünschtes Ergebnis:** Ihre AMI und Container-Images sind gepatcht, aktuell und startbereit. Sie können den Status aller bereitgestellten Images nachverfolgen und wissen, dass die Patches konform sind. Sie können über den aktuellen Status berichten und verfügen über ein Verfahren, mit dem Sie Ihre Compliance-Anforderungen erfüllen können. 

 **Typische Anti-Muster:** 
+  Sie erhalten den Auftrag, alle neuen Sicherheits-Patches innerhalb von zwei Stunden anzuwenden, was zu mehreren Ausfällen aufgrund der Anwendungsinkompatibilität mit bestimmten Patches führt. 
+  Eine ungepatchte Bibliothek hat unbeabsichtigte Folgen, weil unbekannte Personen Schwachstellen darin ausnutzen, um auf Ihren Workload zuzugreifen. 
+  Sie patchen die Entwicklerumgebungen automatisch, ohne die Entwickler zu benachrichtigen. Sie erhalten mehrere Beschwerden von den Entwicklern, dass ihre Umgebung nicht mehr wie erwartet funktioniert. 
+  Sie haben die kommerziell im Handel erhältliche Software auf einer persistenten Instance nicht gepatcht. Als ein Problem mit der Software auftritt und Sie sich an den Anbieter wenden, werden Sie darüber informiert, dass die Version nicht unterstützt wird und Sie bestimmte Patches installieren müssen, um Unterstützung zu erhalten. 
+  Ein kürzlich veröffentlichter Patch für Ihre verwendete Verschlüsselungssoftware bietet signifikante Leistungsverbesserungen. Ihr ungepatchtes System weist Leistungsprobleme auf, die bestehen bleiben, weil es nicht gepatcht ist. 
+  Sie werden über eine Zero-Day-Schwachstelle informiert, die eine Notfalllösung erfordert, und Sie müssen alle Ihre Umgebungen manuell patchen. 

 **Vorteile der Nutzung dieser bewährten Methode:** Durch die Einrichtung eines Patch-Verwaltungsprozesses, einschließlich Ihrer Patching-Kriterien und Bereitstellungsmethodik für Ihre Umgebungen, können Sie die Patch-Ebenen skalieren und Berichte darüber erstellen. Das gibt Ihnen Sicherheit in Bezug auf Sicherheitspatches und gewährleistet einen klaren Überblick über den Status bekannter Problemlösungen. Dies wiederum fördert die Übernahme der gewünschten Merkmale und Funktionen, das Entfernen von Problemen und die kontinuierliche Compliance. Implementieren Sie Verwaltungssysteme und Automatisierung für Patches, um den Aufwand für die Bereitstellung von Patches zu reduzieren und Fehler zu begrenzen, die durch manuelle Prozesse verursacht werden. 

 **Risikostufe bei fehlender Befolgung dieser bewährten Methode:** Mittel 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Installieren Sie auf Ihren Systemen Patches zur Behebung von Problemen, zur Erlangung der gewünschten Funktionen oder Fähigkeiten sowie zur kontinuierlichen Einhaltung der Governance-Richtlinien und der Anforderungen des Lieferantensupport. Nehmen Sie in unveränderlichen Systemen eine Bereitstellung mit einer geeigneten Patch-Gruppe vor, um das gewünschte Ergebnis zu erzielen. Automatisieren Sie den Mechanismus der Patch-Verwaltung, um die Patch-Zeit zu verkürzen, Fehler aufgrund von manuellen Prozessen zu vermeiden und den Aufwand für die Installation von Patches zu verringern. 

### Implementierungsschritte
<a name="implementation-steps"></a>

 Für Amazon EC2 Image Builder: 

1.  Wenn Sie Amazon EC2 Image Builder verwenden, geben Sie die Pipeline-Details an: 

   1.  Erstellen Sie eine Image-Pipeline und geben Sie ihr einen Namen. 

   1.  Definieren Sie den Pipeline-Zeitplan und die Zeitzone. 

   1.  Konfigurieren Sie alle Abhängigkeiten. 

1.  Wählen Sie ein Rezept: 

   1.  Wählen Sie ein vorhandenes Rezept aus oder erstellen Sie ein neues. 

   1.  Wählen Sie den Image-Typ aus. 

   1.  Geben Sie Ihrem Rezept einen Namen und eine Versionsnummer. 

   1.  Wählen Sie Ihr Basis-Image aus. 

   1.  Fügen Sie Build-Komponenten zur Zielregistrierung hinzu. 

1.  Optional: Definieren Sie Ihre Infrastrukturkonfiguration. 

1.  Optional: Definieren Sie die Konfigurationseinstellungen. 

1.  Überprüfen Sie die Einstellungen. 

1.  Achten Sie regelmäßig auf die Rezepthygiene. 

 Für Systems Manager Patch Manager: 

1.  Erstellen Sie eine Patch-Baseline. 

1.  Wählen Sie eine Methode für Pfadoperationen aus. 

1.  Aktivieren Sie Compliance-Berichte und -Scans. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige bewährte Methoden:** 
+  [OPS06-BP04 Automatisieren von Tests und Rollback](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Zugehörige Dokumente:** 
+ [ Was ist Amazon EC2 Image Builder? ](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html)
+ [ Create an image pipeline using the Amazon EC2 Image Builder (Erstellen einer Image-Pipeline mit dem Amazon EC2 Image Builder) ](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-image-pipeline.html)
+ [ Create a container image pipeline (Erstellen einer Container-Image-Pipeline) ](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-container-pipeline.html)
+  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 
+ [ Working with Patch Manager (Arbeiten mit Patch Manager) ](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-console.html)
+ [ Working with patch compliance reports (Arbeiten mit Patch-Compliance-Berichten) ](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-compliance-reports.html)
+ [AWS Developer Tools ](https://aws.amazon.com/products/developer-tools)

 **Zugehörige Videos:** 
+  [CI/CD für Serverless Anwendungen in AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
+  [Design mit Blick auf die Ops](https://youtu.be/uh19jfW7hw4) 

   **Zugehörige Beispiele:** 
+ [ Well-Architected Labs: Bestands- und Patch-Verwaltung ](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management)
+ [ Anleitungen zu AWS Systems Manager Patch Manager ](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-tutorials.html)

# OPS05-BP06 Gemeinsame Design-Standards
<a name="ops_dev_integ_share_design_stds"></a>

 Tauschen Sie teamübergreifend bewährte Methoden aus, um das Bewusstsein zu schärfen und den Nutzen der Entwicklungsarbeit zu maximieren. Dokumentieren Sie sie und halten Sie sie auf dem neuesten Stand, wenn sich Ihre Architektur weiterentwickelt. Wenn gemeinsame Standards in Ihrem Unternehmen durchgesetzt werden, ist es wichtig, dass Mechanismen vorhanden sind, um Ergänzungen, Änderungen und Ausnahmen von Standards abzubilden. Ohne diese Option werden Standards zu einer Einschränkung der Innovation. 

 **Gewünschtes Ergebnis:** Designstandards werden von allen Teams in Ihren Organisationen gemeinsam genutzt. Sie werden dokumentiert und mit der Entwicklung bewährter Methoden auf dem neuesten Stand gehalten. 

 **Typische Anti-Muster:** 
+ Zwei Entwicklerteams haben jeweils einen Service zur Authentifizierung von Benutzern erstellt. Ihre Benutzer müssen für jeden Teil des Systems, auf den sie zugreifen möchten, eigene Anmeldeinformationen verwenden. 
+ Jedes Team verwaltet seine eigene Infrastruktur. Eine neue Compliance-Anforderung erzwingt eine Änderung Ihrer Infrastruktur. Jedes Team implementiert sie auf andere Weise.

 **Vorteile der Nutzung dieser bewährten Methode:** Die Verwendung gemeinsamer Standards unterstützt die Umsetzung bewährter Methoden und maximiert den Nutzen der Entwicklungsarbeit. Die Dokumentation und Aktualisierung von Designstandards hält Ihre Organisation auf dem neuesten Stand bezüglich der bewährten Methoden und der Anforderungen an die Sicherheit und Compliance. 

 **Risikostufe bei fehlender Befolgung dieser bewährten Methode:** Mittel 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Nutzen Sie bewährte Methoden, Designstandards, Checklisten, Arbeitsverfahren, Leitlinien und Governance-Anforderungen in allen Teams. Verwenden Sie Verfahren zur Anforderung von Änderungen, Ergänzungen und Ausnahmen von Designstandards, um Verbesserungen und Innovationen zu unterstützen. Stellen Sie sicher, dass die Teams über die veröffentlichten Inhalte informiert sind. Verwenden Sie ein System, um die Designstandards auf dem neuesten Stand zu halten, wenn neue bewährte Methoden eingeführt werden. 

 **Kundenbeispiel** 

 AnyCompany Retail verfügt über ein funktionsübergreifendes Architekturteam, das Softwarearchitekturmuster erstellt. Dieses Team entwickelt die Architektur mit integrierter Compliance und Governance. Teams, die diese gemeinsamen Standards anwenden, profitieren davon, dass Compliance und Governance bereits integriert sind. Sie können schnell auf dem Designstandard aufbauen. Das Architekturteam trifft sich vierteljährlich, um die Architekturmuster zu bewerten und sie gegebenenfalls zu aktualisieren. 

### Implementierungsschritte
<a name="implementation-steps"></a>

1.  Bestimmen Sie ein funktionsübergreifendes Team, das für die Entwicklung und Aktualisierung der Designstandards zuständig ist. Dieses Team sollte mit Stakeholdern in Ihrer gesamten Organisation zusammenarbeiten, um Designstandards, Arbeitsverfahren, Checklisten, Leitlinien und Governance-Anforderungen zu entwickeln. Dokumentieren Sie die Designstandards und geben Sie sie innerhalb Ihrer Organisation weiter. 

   1.  [Mit AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) können Sie Portfolios erstellen, die Designstandards als Infrastructure-as-Code abbilden. Sie können Portfolios über Konten hinweg gemeinsam nutzen. 

1.  Verwenden Sie ein System, um die Designstandards auf dem neuesten Stand zu halten, wenn neue bewährte Methoden eingeführt werden. 

1.  Wenn Designstandards zentral durchgesetzt werden, sollten Sie über ein Verfahren verfügen, um Änderungen, Aktualisierungen und Ausnahmen anzufordern. 

 **Aufwand für den Implementierungsplan:** Mittel. Die Entwicklung eines Prozesses zur Erstellung und gemeinsamen Nutzung von Designstandards kann die Koordination und Zusammenarbeit mit Stakeholdern in Ihrer gesamten Organisation erforderlich machen. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige bewährte Methoden:** 
+  [OPS01-BP03 Bewerten der Governance-Anforderungen](ops_priorities_governance_reqs.md) - Governance-Anforderungen beeinflussen Designstandards. 
+  [OPS01-BP04 Bewerten der Compliance-Anforderungen](ops_priorities_compliance_reqs.md) - Compliance ist ein wichtiger Faktor bei der Erstellung von Designstandards. 
+  [OPS07-BP02 Sicherstellen einer konsistenten Prüfung der betrieblichen Bereitschaft](ops_ready_to_support_const_orr.md) - Checklisten für die operative Einsatzbereitschaft sind ein Mechanismus zur Umsetzung von Designstandards bei der Gestaltung Ihres Workloads. 
+  [OPS11-BP01 Implementieren eines Prozesses für die kontinuierliche Verbesserung](ops_evolve_ops_process_cont_imp.md) - Die Aktualisierung von Designstandards ist ein Teil der kontinuierlichen Verbesserung. 
+  [OPS11-BP04 Wissensmanagement](ops_evolve_ops_knowledge_management.md) - Als Teil Ihres Wissensmanagements sollten Sie Designstandards dokumentieren und weitergeben. 

 **Zugehörige Dokumente:** 
+ [ Automate AWS Backups with AWS Service Catalog (Automatisieren von AWS Backups mit AWS Service Catalog) ](https://aws.amazon.com/blogs/mt/automate-aws-backups-with-aws-service-catalog/)
+ [AWS Service Catalog Account Factory-Enhanced (Erweiterte Nutzung von AWS Service Catalog Account Factory) ](https://aws.amazon.com/blogs/mt/aws-service-catalog-account-factory-enhanced/)
+ [ How Expedia Group built Database as a Service (DBaaS) offering using AWS Service Catalog (So hat die Expedia Gruppe mit AWS Service Catalog ein Database-as-a-Service-Angebot (DBaaS) entwickelt) ](https://aws.amazon.com/blogs/mt/how-expedia-group-built-database-as-a-service-dbaas-offering-using-aws-service-catalog/)
+ [ Maintain visibility over the use of cloud architecture patterns (Überblick über die Nutzung von Cloud-Architekturmustern) ](https://aws.amazon.com/blogs/architecture/maintain-visibility-over-the-use-of-cloud-architecture-patterns/)
+ [ Simplify sharing your AWS Service Catalog portfolios in an AWS Organizations setup (Vereinfachen der gemeinsamen Nutzung Ihrer AWS Service Catalog-Portfolios in einem AWS Organizations-Setup) ](https://aws.amazon.com/blogs/mt/simplify-sharing-your-aws-service-catalog-portfolios-in-an-aws-organizations-setup/)

 **Zugehörige Videos:** 
+ [AWS Service Catalog – Getting Started (AWS Service Catalog – Erste Schritte) ](https://www.youtube.com/watch?v=A9kKy6WhqVA)
+ [AWS re:Invent 2020: Manage your AWS Service Catalog portfolios like an expert (AWS re:Invent 2020: Verwalten Ihrer AWS Service Catalog-Portfolios wie ein Experte) ](https://www.youtube.com/watch?v=lVfXkWHAtR8)

 **Zugehörige Beispiele:** 
+ [AWS Service Catalog Reference Architecture (AWS Service Catalog-Referenzarchitektur) ](https://github.com/aws-samples/aws-service-catalog-reference-architectures)
+ [AWS Service Catalog-Workshop ](https://catalog.us-east-1.prod.workshops.aws/workshops/d40750d7-a330-49be-9945-cde864610de9/en-US)

 **Zugehörige Services:** 
+  [Mit AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) 

# OPS05-BP07 Implementieren von Verfahren zur Verbesserung der Codequalität
<a name="ops_dev_integ_code_quality"></a>

Implementieren Sie Verfahren zur Verbesserung der Codequalität und Minimierung von Fehlern. Einige Beispiele sind die testbasierte Entwicklung, Code-Reviews, die Einführung von Standards und Pair-Programming. Integrieren Sie diese Verfahren in Ihren kontinuierlichen Integrations- und Lieferprozess. 

 **Gewünschtes Ergebnis:** Ihre Organisation setzt bewährte Methoden wie Code-Reviews oder Pair-Programming ein, um die Codequalität zu verbessern. Entwickler und operative Mitarbeiter nutzen bewährte Methoden zur Codequalität als Teil des Softwareentwicklungslebenszyklus. 

 **Typische Anti-Muster:** 
+ Sie führen ohne Code-Review Commits zum Main-Branch Ihrer Anwendung durch. Die Änderung wird automatisch in der Produktion bereitgestellt und verursacht einen Ausfall.
+  Eine neue Anwendung wird ohne Unit-, End-to-End- oder Integrationstests entwickelt. Es gibt keine Möglichkeit, die Anwendung vor der Bereitstellung zu testen. 
+  Ihre Teams nehmen manuelle Änderungen in der Produktion vor, um Fehler zu beheben. Die Änderungen durchlaufen keine Tests oder Code-Reviews und werden nicht durch kontinuierliche Integrations- und Bereitstellungsprozesse erfasst oder protokolliert. 

 **Vorteile der Nutzung dieser bewährten Methode:** Durch die Umsetzung von Methoden zur Verbesserung der Codequalität können Sie die Anzahl der Probleme minimieren, die bei der Produktion noch vorhanden sind. Die Codequalität wird durch bewährte Methoden wie Pair-Programming und Code-Reviews verbessert. 

 **Risikostufe bei fehlender Befolgung dieser bewährten Methode:** Mittel 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Implementieren Sie Verfahren zur Verbesserung der Codequalität, um vor der Bereitstellung Fehler zu minimieren. Nutzen Sie Verfahren wie die testbasierte Entwicklung, Code-Reviews und Pair-Programming, um die Qualität Ihrer Entwicklung zu verbessern. 

 **Kundenbeispiel** 

 AnyCompany Retail wendet verschiedene Verfahren an, um die Codequalität zu verbessern. Die testbasierte Entwicklung ist der Standard für die Entwicklung von Anwendungen. Bei einigen neuen Funktionen arbeiten die Entwickler während eines Sprints zusammen. Jede Pull-Anforderung wird von einem erfahrenen Entwickler überprüft, bevor sie integriert und bereitgestellt wird. 

### Implementierungsschritte
<a name="implementation-steps"></a>

1.  Setzen Sie bei Ihrem kontinuierlichen Integrations- und Bereitstellungsprozess auf Code-Qualitätsverfahren wie die testbasierte Entwicklung, Code-Reviews und Pair-Programming. Nutzen Sie diese Techniken, um die Softwarequalität zu verbessern. 

   1.  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) kann Machine-Learning-Programmierempfehlungen für Java- und Python-Code bereitstellen. 

   1.  Sie können mit [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) gemeinsame Entwicklungsumgebungen erstellen und Code in Teamarbeit entwickeln. 

 **Aufwand für den Implementierungsplan:** Mittel. Es gibt viele Möglichkeiten zur Umsetzung dieser bewährten Methode. Es kann jedoch schwierig sein, die Akzeptanz im Unternehmen zu erreichen. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige bewährte Methoden:** 
+  [OPS05-BP06 Gemeinsame Design-Standards](ops_dev_integ_share_design_stds.md) - Sie können Designstandards als Teil Ihrer Codequalitätsverfahren gemeinsam nutzen. 

 **Zugehörige Dokumente:** 
+ [ Agile Software Guide (Leitfaden für agile Software) ](https://martinfowler.com/agile.html)
+ [My CI/CD pipeline is my release captain (Meine CI/CD-Pipeline ist mein Release Captain)](https://aws.amazon.com/builders-library/cicd-pipeline/)
+ [ Automatisieren von Codeüberprüfungen mit Amazon CodeGuru Reviewer ](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/)
+ [ Adopt a test-driven development approach (Einführung eines testgesteuerten Entwicklungsansatzes) ](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html)
+ [ How DevFactory builds better applications with Amazon CodeGuru (So entwickelt DevFactory mit Amazon CodeGuru bessere Anwendungen) ](https://aws.amazon.com/blogs/machine-learning/how-devfactory-builds-better-applications-with-amazon-codeguru/)
+ [ On Pair Programming (Über Pair-Programming) ](https://martinfowler.com/articles/on-pair-programming.html)
+ [ RENGA Inc. automates code reviews with Amazon CodeGuru (RENGA Inc. automatisiert Code-Reviews mit Amazon CodeGuru) ](https://aws.amazon.com/blogs/machine-learning/renga-inc-automates-code-reviews-with-amazon-codeguru/)
+ [ The Art of Agile Development: Test-Driven Development (Die Kunst der agilen Entwicklung: Testbasierte Entwicklung) ](http://www.jamesshore.com/v2/books/aoad1/test_driven_development)
+ [ Why code reviews matter (and actually save time\$1) (Warum Code-Reviews wichtig sind (und tatsächlich Zeit sparen\$1)) ](https://www.atlassian.com/agile/software-development/code-reviews)

 **Zugehörige Videos:** 
+ [AWS re:Invent 2020: Continuous improvement of code quality with Amazon CodeGuru (AWS re:Invent 2020: Kontinuierliche Verbesserung der Codequalität mit Amazon CodeGuru) ](https://www.youtube.com/watch?v=iX1i35H1OVw)
+ [AWS Summit ANZ 2021 - Driving a test-first strategy with CDK and test driven development (AWS Summit ANZ 2021 – Vorantreiben einer „Test-First“-Strategie mit CDK und testgesteuerter Entwicklung) ](https://www.youtube.com/watch?v=1R7G_wcyd3s)

 **Zugehörige Services:** 
+ [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html)
+ [ Amazon CodeGuru Profiler ](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html)
+  [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) 

# OPS05-BP08 Verwenden mehrerer Umgebungen
<a name="ops_dev_integ_multi_env"></a>

 Verwenden Sie mehrere Umgebungen, um Ihren Workload auszuprobieren, zu entwickeln und zu testen. Verwenden Sie zunehmende Kontrollstufen, wenn Umgebungen sich der Produktion nähern, um sicherzustellen, dass Ihr Workload bei der Bereitstellung wie beabsichtigt funktioniert. 

 **Gewünschtes Ergebnis:** Sie verfügen über mehrere Umgebungen, die Ihre Compliance- und Governance-Anforderungen widerspiegeln. Auf Ihrem Weg zur Produktion testen und promoten Sie Code in Umgebungen. 

 **Typische Anti-Muster:** 
+  Sie führen die Entwicklung in einer gemeinsamen Entwicklungsumgebung durch und ein weiterer Entwickler überschreibt Ihre Codeänderungen. 
+  Die restriktiven Sicherheitskontrollen Ihrer gemeinsamen Entwicklungsumgebung verhindern, dass Sie mit neuen Services und Funktionen experimentieren können. 
+  Sie führen Belastungstests auf Ihren Produktionssystemen durch und verursachen einen Ausfall für Ihre Benutzer. 
+  In der Produktion ist ein kritischer Fehler aufgetreten, der zum Verlust von Daten geführt hat. In Ihrer Produktionsumgebung versuchen Sie, die Bedingungen, die zum Datenverlust geführt haben, nachzustellen, damit Sie die Ursache feststellen und beseitigen können. Um einen weiteren Datenverlust während des Testens zu verhindern, müssen Sie die Anwendung für Ihre Benutzer deaktivieren. 
+  Sie betreiben einen Mehrmandanten-Service und können eine Kundenanfrage nach einer eigenen Umgebung nicht erfüllen. 
+  Möglicherweise testen Sie nicht immer, aber wenn Sie dies tun, testen Sie in Ihrer Produktionsumgebung. 
+  Sie glauben, dass die Einfachheit einer einzelnen Umgebung die Auswirkungen von Änderungen innerhalb der Umgebung ausgleicht. 

 **Vorteile der Nutzung dieser bewährten Methode:** Sie können gleichzeitig mehrere Entwicklungs-, Test- und Produktionsumgebungen unterstützen, ohne Konflikte zwischen Entwicklern oder User-Communities zu erzeugen. 

 **Risikostufe bei fehlender Befolgung dieser bewährten Methode:** Mittel 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Verwenden Sie mehrere Umgebungen und stellen Sie den Entwicklern Sandbox-Umgebungen mit weniger Kontrollen zur Verfügung, in denen sie experimentieren können. Richten Sie individuelle Entwicklungsumgebungen ein, damit parallele Arbeit möglich ist. Dadurch steigern Sie die Agilität der Entwicklung. Implementieren Sie strengere Kontrollen erst in den Umgebungen, die kurz vor der Produktionsaufnahme stehen, damit Entwickler Innovationen schaffen können. Nutzen Sie die Infrastruktur als Code sowie Konfigurationsverwaltungssysteme, um Umgebungen bereitzustellen, die mit den in der Produktion vorhandenen Kontrollen einheitlich konfiguriert sind. Auf diese Weise können Sie sicherstellen, dass die Systeme bei der Bereitstellung wie erwartet funktionieren. Wenn Umgebungen nicht in Gebrauch sind, schalten Sie sie ab, um Kosten für ungenutzte Ressourcen zu vermeiden (z. B. Entwicklungssysteme am Abend und am Wochenende). Stellen Sie beim Belastungstest produktionsgleiche Umgebungen bereit, um die Gültigkeit der Ergebnisse zu verbessern. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige Dokumente:** 
+ [ Instance Scheduler on AWS (Instance Scheduler in AWS) ](https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws/)
+  [Was ist AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 

# OPS05-BP09 Häufige, kleine, reversible Änderungen vornehmen
<a name="ops_dev_integ_freq_sm_rev_chg"></a>

 Häufige, kleine und reversible Änderungen verringern den Umfang und die Auswirkung einer Änderung. In Verbindung mit Change-Management-Systemen, Systemen zur Konfigurationsverwaltung und Build- und Liefersystemen reduzieren häufige, kleine und reversible Änderungen den Umfang und die Auswirkungen einer Änderung. Dies macht die Fehlersuche effizienter und ermöglicht eine schnellere Korrektur, da die Möglichkeit besteht, Änderungen zurückzusetzen. 

 **Typische Anti-Muster:** 
+  Sie stellen vierteljährlich eine neue Version Ihrer Anwendung mit einem Änderungsfenster bereit, was bedeutet, dass ein zentraler Dienst ausgeschaltet wird. 
+  Sie nehmen häufig Änderungen an Ihrem Datenbankschema vor, ohne Änderungen in Ihren Managementsystemen nachzuverfolgen. 
+  Sie führen direkte manuelle Updates durch, überschreiben damit bestehende Installationen und Konfigurationen und haben keinen klaren Rollback-Plan. 

 **Vorteile der Nutzung dieser bewährten Methode:** Sie profitieren schneller von den Entwicklungsarbeiten, wenn Sie häufig kleine Änderungen bereitstellen. Wenn die Änderungen klein sind, ist es viel einfacher zu erkennen, ob sie unbeabsichtigte Folgen haben, und sie lassen sich leichter rückgängig machen. Wenn die Änderungen rückgängig gemacht werden können, ist die Implementierung mit geringeren Risiken verbunden, da die Wiederherstellung einfacher ist. Der Änderungsprozess hat ein geringeres Risiko und die Auswirkungen einer fehlgeschlagenen Änderung werden reduziert. 

 **Risikostufe bei fehlender Befolgung dieser bewährten Methode:** Niedrig 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Machen Sie häufige, kleine und reversible Änderungen und verringern Sie dadurch den Umfang und die Auswirkung einer Änderung. Dies erleichtert die Fehlersuche, trägt zur Beschleunigung der Fehlerbehebung bei und bietet die Möglichkeit, eine Änderung zurückzusetzen. Außerdem profitiert Ihr Unternehmen schneller von neuen Entwicklungen. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige bewährte Methoden:** 
+  [OPS05-BP03 Einsatz von Systemen zur Konfigurationsverwaltung](ops_dev_integ_conf_mgmt_sys.md) 
+  [OPS05-BP04 Einsatz von Systemen zur Build- und Bereitstellungsverwaltung.](ops_dev_integ_build_mgmt_sys.md) 
+  [OPS06-BP04 Automatisieren von Tests und Rollback](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Zugehörige Dokumente:** 
+ [ Implementieren von Microservices in AWS](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/microservices-on-aws.html)
+ [ Microservices – Beobachtbarkeit ](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/observability.html)

# OPS05-BP10 Vollständige Automatisierung von Integration und Bereitstellung
<a name="ops_dev_integ_auto_integ_deploy"></a>

 Automatisieren Sie den Aufbau, die Bereitstellung und die Tests des Workloads. Dadurch werden Fehler aufgrund von manuellen Prozessen und der Aufwand für die Bereitstellung von Änderungen verringert. 

 Wenden Sie Metadaten mithilfe von [Ressourcen-Tags](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) und [AWS -Ressourcengruppen](https://docs.aws.amazon.com/ARG/latest/APIReference/Welcome.html) nach einer konsistenten [Markierungsstrategie an,](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) um die Identifizierung Ihrer Ressourcen zu erleichtern. Versehen Sie Ihre Ressourcen mit Tags für Organisation, Kostenkalkulation, Zugriffssteuerung und Zielrichtung der Ausführung von automatisierten Betriebsaktivitäten. 

 **Gewünschtes Ergebnis:** Entwickler verwenden Tools, um Code bereitzustellen und bis zur Produktion zu unterstützen. Entwickler müssen sich nicht bei der AWS-Managementkonsole anmelden, um Updates bereitzustellen. Es gibt einen vollständigen Audit Trail für Änderungen und Konfigurationen, der die Governance- und Compliance-Anforderungen erfüllt. Prozesse sind wiederholbar und teamübergreifend standardisiert. Entwickler sind in der Lage, sich auf die Entwicklung und Code-Pushs zu konzentrieren und so die Produktivität zu steigern. 

 **Typische Anti-Muster:** 
+  Am Freitag schließen Sie die Erstellung des neuen Codes für Ihren Funktionszweig ab. Am Montag, nach dem Ausführen Ihrer Skripts für die Codequalitätstests und einzelnen Komponententests, überprüfen Sie Ihren Code für den nächsten geplanten Release. 
+  Sie erhalten die Aufgabe, eine Korrektur für ein kritisches Problem zu schreiben, das sich auf eine große Anzahl von Kunden in der Produktion auswirkt. Nachdem Sie die Korrektur getestet haben, übergeben Sie Ihren Code und fordern beim Änderungsmanagement die Bereitstellungsgenehmigung zur Produktion an. 
+  Als Entwickler melden Sie sich bei der AWS-Managementkonsole an, um eine neue Entwicklungsumgebung mit nicht standardmäßigen Methoden und Systemen zu erstellen. 

 **Vorteile der Nutzung dieser bewährten Methode:** Durch die Implementierung automatisierter Build- und Bereitstellungsverwaltungssysteme reduzieren Sie Fehler aus manuellen Prozessen und den Aufwand für die Bereitstellung von Änderungen, sodass sich Ihre Teammitglieder besser auf die Wertschöpfung konzentrieren können. Sie erhöhen die Liefergeschwindigkeit auf Ihrem Weg zur Produktion. 

 **Risikostufe bei fehlender Befolgung dieser bewährten Methode:** Niedrig 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>

 Verwenden Sie Systeme zur Build- und Bereitstellungsverwaltung für die Verfolgung und Implementierung von Änderungen, die Reduzierung von Fehlern, die durch manuelle Prozesse entstehen, sowie zur Verringerung des Aufwands. Nutzen Sie eine vollständig automatisierte Integrations- und Bereitstellungs-Pipeline vom Einchecken des Codes über das Testen und die Bereitstellung bis hin zur Validierung. Dies reduziert die Vorlaufzeit, fördert häufigere Änderungen, reduziert den Aufwand, beschleunigt die Markteinführung, führt zu einer höheren Produktivität und erhöht die Sicherheit Ihres Codes bis hin zur Produktion. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige bewährte Methoden:** 
+  [OPS05-BP03 Einsatz von Systemen zur Konfigurationsverwaltung](ops_dev_integ_conf_mgmt_sys.md) 
+  [OPS05-BP04 Einsatz von Systemen zur Build- und Bereitstellungsverwaltung.](ops_dev_integ_build_mgmt_sys.md) 

 **Zugehörige Dokumente:** 
+  [Was ist AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [Was ist AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Zugehörige Videos:** 
+ [AWS re\$1:Invent 2022 - AWS Well-Architected best practices for DevOps on AWS (AWS re\$1:Invent 2022 – AWS Well-Architected Best Practices für DevOps in AWS) ](https://youtu.be/hfXokRAyorA)