

# 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 Strategien, die die Übertragung von Änderungen auf die Produktionsumgebung verbessern und Refactoring, schnelles Feedback zur Qualität sowie eine schnelle Fehlerbehebung ermöglichen. 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)
+ [Häufige, kleine, umkehrbare Ä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>

 Ermöglichen 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. 

 **Gängige Antimuster:** 
+  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ägen wird. 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 Einführung 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, wenn diese bewährte Methode nicht eingeführt wird:** Hoch 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>
+  Versionskontrolle verwenden: 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. 
  +  [Einführung in AWS CodeCommit](https://youtu.be/46PRLMW8otg) 
  +  [Was ist AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

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

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

 **Relevante 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 erzeugen. 

 **Gewünschtes Ergebnis:** 
+  Alle Softwareänderungen werden vor der Bereitstellung getestet. 
+  Die Entwickler haben Zugang zu den Testergebnissen. 
+  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, wenn diese bewährte Methode nicht eingeführt wird:** 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 testgesteurte 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 Sofware-Artefakt in einem Artefakt-Repository gespeichert. 

 **Implementierungsschritte** 

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 [AWS Deployment Pipeline Reference Architecture](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.  Mithilfe von [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) können Sie Tests auf Software-Artefakten durchführen. 

   1.  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) kann Ihre Softwaretest 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) – Alle Software-Artefakte müssen durch ein versionskontrolliertes Repository gesichert werden. 
+  [OPS05-BP06 Gemeinsame Design-Standards](ops_dev_integ_share_design_stds.md) – Die Softwareteststandards Ihres Unternehmens bilden die Grundlage für Ihre Designstandards. 
+  [OPS05-BP10 Vollständige Automatisierung von Integration und Bereitstellung](ops_dev_integ_auto_integ_deploy.md) – Softwaretests sollten automatisch als Teil Ihrer größeren Integrations- und Bereitstellungspipeline ausgeführt werden. 

 **Zugehörige Dokumente:** 
+ [ Adopt a test-driven development approach ](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) (Einführung eines testgesteuerten Entwicklungsansatzes)
+ [ Automated CloudFormation Testing Pipeline with TaskCat and CodePipeline ](https://aws.amazon.com/blogs/devops/automated-cloudformation-testing-pipeline-with-taskcat-and-codepipeline/) (Automatisierte CloudFormation-Testpipeline mit TaskCat und CodePipeline)
+ [ Building end-to-end AWS DevSecOps CI/CD pipeline with open source SCA, SAST, and 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/) (Erstellen einer End-to-End-AWS DevSecOps-CI/CD-Pipeline mit Open-Source-SCA-, -SAST- und -DAST-Tools)
+ [ Getting started with testing serverless applications ](https://aws.amazon.com/blogs/compute/getting-started-with-testing-serverless-applications/) (Erste Schritte beim Testen von Serverless-Anwendungen)
+ [ My CI/CD pipeline is my release captain ](https://aws.amazon.com/builders-library/cicd-pipeline/) (Meine CI/CD-Pipeline ist mein Release Captain)
+ [ Durchführung von dauerhafter Integration/dauerhafter Bereitstellung auf 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](https://www.youtube.com/watch?v=KJC380Juo2w) (AWS re:Invent 2020: Testbare Infrastruktur: Integrationstests auf AWS)
+ [AWS Summit ANZ 2021 - Driving a test-first strategy with CDK and test driven development ](https://www.youtube.com/watch?v=1R7G_wcyd3s) (AWS Summit ANZ 2021 – Vorantreiben einer „Test-First“-Strategie mit CDK und testgesteuerter Entwicklung)
+ [ Testing Your Infrastructure as Code with AWS CDK ](https://www.youtube.com/watch?v=fWtuwGSoSOU) (Testen Ihrer Infrastruktur als Code mit AWS CDK)

 **Zugehörige Ressourcen:** 
+ [AWS-Bereitstellungspipeline-Referenzarchitektur: 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 ](https://catalog.us-east-1.prod.workshops.aws/workshops/9da471a0-266a-4d36-8596-e5934aeedd1f/en-US/pac-tools/cfn-guard/tdd) (Richtlinie als Code – Workshop – testgesteuerte Entwicklung)
+ [ Run unit tests for a Node.js application from GitHub by using AWS CodeBuild](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-unit-tests-for-a-node-js-application-from-github-by-using-aws-codebuild.html) (Tests von Einheiten für eine Node.js-Anwendung aus GitHub mithilfe von AWS CodeBuild ausführen)
+ [ Use Serverspec for test-driven development of infrastructure code ](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/use-serverspec-for-test-driven-development-of-infrastructure-code.html) (Serverspec für die testgesteuerte Entwicklung von Infrastrukturcode verwenden)

 **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. 

 Beim statischen Konfigurationsmanagement 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/). 

 Beim dynamischen Konfigurationsmanagement 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. 

 Wenn Sie dynamische Konfigurationen in Ihren Anwendungen haben, die auf Instances, Containern, serverlosen Funktionen oder Geräten ausgeführt werden, können Sie [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) zur Verwaltung und Bereitstellung in Ihren gesamten Umgebungen verwenden. 

 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 verfolgen, nachvollziehen, wie sich eine Konfigurationsänderung auf andere Ressourcen auswirkt, und sie mit den 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](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html)überprüfen. 

 In AWS können Sie CI/CD-Pipelines (Continuous Integration/Continuous Deployment) unter Verwendung von Services wie den [AWS-Entwicklertools](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/)) erstellen. 

 Legen Sie einen Änderungskalender an und verfolgen Sie, wann wichtige geschäftliche oder betriebliche Aktivitäten oder Ereignisse geplant sind, die durch die Implementierung von Änderungen beeinträchtigt werden könnten. Passen Sie Aktivitäten an, um Risiken im Zusammenhang mit diesen Plänen zu verwalten. [AWS Systems Manager Change Calendar](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) bietet einen Mechanismus zum Dokumentieren von Zeitblöcken als offen oder geschlossen für Änderungen inklusive Grund und [gibt diese Informationen](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-calendar-share.html) an andere AWS-Konten weiter. AWS Systems Manager Automation-Skripts können so konfiguriert werden, dass sie den Status des Änderungskalenders einhalten. 

 [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) können verwendet werden, um die Leistung von AWS SSM Run Command- oder Automatisierungsskripts, AWS Lambda-Aufrufen oder AWS Step Functions-Aktivitäten zu bestimmten Zeiten zu planen. Markieren Sie diese Aktivitäten in Ihrem Kalender, damit sie in Ihre Auswertung aufgenommen werden können. 

 **Gängige Antimuster:** 
+  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. 

 **Vorteile der Einführung 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. 

 **Risikostufe, wenn diese bewährte Methode nicht eingeführt wird:** Mittel 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>
+  Konfigurationsverwaltungssysteme verwenden: Verwenden Sie Systeme zur Konfigurationsverwaltung für die Nachverfolgung und Implementierung von Änderungen, Reduzierung von Fehlern, die durch manuelle Prozesse entstehen, und zur Verringerung des Aufwands. 
  +  [Verwaltung der Infrastrukturkonfiguration](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
  +  [AWS Config](https://aws.amazon.com/config/) 
  +  [Was ist AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
  +  [Einführung in AWS CloudFormation](https://youtu.be/Omppm_YUG2g) 
  +  [Was ist AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
  +  [Was ist AWS OpsWorks?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 
  +  [Einführung in AWS Elastic Beanstalk](https://youtu.be/SrwxAScdyT0) 
  +  [Was ist AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 

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

 **Zugehörige Dokumente:** 
+  [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 
+  [AWS-Entwicklertools](https://aws.amazon.com/products/developer-tools/) 
+  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
+  [AWS Systems Manager Change Calendar](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) 
+  [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) 
+  [Verwaltung der Infrastrukturkonfiguration](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
+  [Was ist AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [Was ist AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
+  [Was ist AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 
+  [Was ist AWS OpsWorks?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 

 **Relevante Videos:** 
+  [Einführung in AWS CloudFormation](https://youtu.be/Omppm_YUG2g) 
+  [Einführung in AWS Elastic Beanstalk](https://youtu.be/SrwxAScdyT0) 

# 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-Entwicklertools](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/)) erstellen. 

 **Gängige Antimuster:** 
+  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 übergeben den Code zur QA-Prüfung (Quality Assurance). 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 Einführung 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, wenn diese bewährte Methode nicht eingeführt wird:** Mittel 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>
+  Einsatz von Systemen zur Build- und Bereitstellungsverwaltung: 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 verkürzt die Vorlaufzeit, ermöglicht häufigere Änderungen und verringert den Aufwand. 
  +  [Was ist AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Best Practices der fortlaufenden Integration bei der Softwareentwicklung](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD für Serverless Anwendungen in AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Einführung in AWS CodeDeploy – automatisierte Softwarebereitstellung mit Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [Was ist AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

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

 **Zugehörige Dokumente:** 
+  [AWS-Entwicklertools](https://aws.amazon.com/products/developer-tools/) 
+  [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) 

 **Relevante Videos:** 
+  [Best Practices der fortlaufenden Integration bei der Softwareentwicklung](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Einführung in AWS CodeDeploy – automatisierte Softwarebereitstellung mit Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD für Serverless Anwendungen in AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 

# 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 von manuellen Prozessen zu reduzieren 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. 

 Das Aktualisieren von Computerabbildern, Container-Abbildern oder benutzerdefinierten Lambda-Laufzeiten [und zusätzlichen Bibliotheken,](https://docs.aws.amazon.com/lambda/latest/dg/security-configuration.html) um Schwachstellen zu entfernen, ist Teil der Patch-Verwaltung. Sie sollten Updates für [Amazon Machine Images](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) (AMIs) für Linux- oder Windows Server-Images mit [EC2 Image Builder](https://aws.amazon.com/image-builder/)verwalten. Sie können [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) mit Ihrer vorhandenen Pipeline verwenden, um [Amazon ECS Images](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html) und [Amazon EKS Images](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_EKS.html)zu verwalten. AWS Lambda umfasst [Versionsverwaltungsfunktionen](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 [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

 **Gängige Antimuster:** 
+  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 verwenden, 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. 

 **Vorteile der Einführung dieser bewährten Methode:** Durch die Einrichtung eines Patch-Verwaltungsprozesses, einschließlich Ihrer Patching-Kriterien und Bereitstellungsmethodik für Ihre Umgebungen, können Sie ihre Vorteile nutzen und ihre Auswirkungen kontrollieren. Dies ermöglicht das Übernehmen 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, wenn diese bewährte Methode nicht eingeführt wird:** Mittel 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>
+  Patch-Verwaltung: 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 reduzieren und den Aufwand für die Installation von Patches zu verringern. 
  +  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

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

 **Zugehörige Dokumente:** 
+  [AWS-Entwicklertools](https://aws.amazon.com/products/developer-tools/) 
+  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

 **Relevante 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/) 

# 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, wenn diese bewährte Methode nicht eingeführt wird:** 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** 

1.  Bestimmen Sie ein funktionsübergreifendes Team, das für die Entwicklung und Aktualisierung der Designstandards zuständig ist. Dieses Team wird 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. 

 **Grad des Aufwands 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](https://aws.amazon.com/blogs/mt/automate-aws-backups-with-aws-service-catalog/) (Automatisieren von AWS Backups mit AWS Service Catalog)
+ [AWS Service Catalog Account Factory-Enhanced ](https://aws.amazon.com/blogs/mt/aws-service-catalog-account-factory-enhanced/) (Erweiterte Nutzung von AWS Service Catalog Account Factory)
+ [ How Expedia Group built Database as a Service (DBaaS) offering using AWS Service Catalog](https://aws.amazon.com/blogs/mt/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)
+ [ Maintain visibility over the use of cloud architecture patterns ](https://aws.amazon.com/blogs/architecture/maintain-visibility-over-the-use-of-cloud-architecture-patterns/) (Überblick über die Nutzung von Cloud-Architekturmustern)
+ [ Simplify sharing your AWS Service Catalog portfolios in an AWS Organizations setup ](https://aws.amazon.com/blogs/mt/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)

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

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

 **Zugehörige Services:** 
+  [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, wenn diese bewährte Methode nicht eingeführt wird:** 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** 

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.  Mit [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) können Sie gemeinsame Entwicklungsumgebungen schaffen, in denen Sie gemeinsam an der Codeentwicklung arbeiten können. 

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

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

 **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. 

 **Gängige Antimuster:** 
+  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. 
+  Sie testen nicht immer, aber wenn, dann in der Produktion. 
+  Sie glauben, dass die Einfachheit einer einzelnen Umgebung die Auswirkungen von Änderungen innerhalb der Umgebung ausgleicht. 

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

 **Risikostufe, wenn diese bewährte Methode nicht eingeführt wird:** Mittel 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>
+  Verwenden mehrerer Umgebungen: 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 stichhaltige Ergebnisse zu erzielen. 
  +  [Was ist AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [Wie beende und starten ich Amazon EC2-Instances mit AWS Lambda in festgelegten Intervallen?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 

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

 **Zugehörige Dokumente:** 
+  [Wie beende und starten ich Amazon EC2-Instances mit AWS Lambda in festgelegten Intervallen?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 
+  [Was ist AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 

# Häufige, kleine, umkehrbare Änderungen vornehmen:
<a name="ops_dev_integ_freq_sm_rev_chg"></a>

 

 **Gängige Antimuster:** 
+  Sie stellen vierteljährlich eine neue Version Ihrer Anwendung bereit. 
+  Sie nehmen häufig Änderungen an Ihrem Datenbankschema vor. 
+  

 **Vorteile der Einführung dieser bewährten Methode:** 

 **Risikostufe, wenn diese bewährte Methode nicht eingeführt wird:** 

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

# 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 ermöglichen. Versehen Sie Ihre Ressourcen mit Tags für Organisation, Kostenkalkulation, Zugriffssteuerung und Zielrichtung der Ausführung von automatisierten Betriebsaktivitäten. 

 **Gängige Antimuster:** 
+  Am Freitag schreiben Sie den neuen Code für Ihren Funktionszweig fertig. Am Montag, nach dem Ausführen Ihrer Skripts für die Codequalitätstests und einzelnen Komponententests, werden Sie Ihren Code für den nächsten geplanten Release überprüfen. 
+  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 Änderungsmanagenement die Bereitstellungsgenehmigung zur Produktion an. 

 **Vorteile der Einführung dieser bewährten Praxis:** Durch die Implementierung automatisierter Build- und Bereitstellungsverwaltungssysteme reduzieren Sie Fehler von manuellen Prozessen und den Aufwand für die Bereitstellung von Änderungen, sodass sich Ihre Teammitglieder auf die Wertschöpfung konzentrieren können. 

 **Risikostufe, wenn diese bewährte Methode nicht eingeführt wird:** Niedrig 

## Implementierungsleitfaden
<a name="implementation-guidance"></a>
+  Verwendung von Build- und Deployment-Management-Systemen: Verwenden Sie Build- und Deployment-Managementsysteme, um Änderungen zu verfolgen und zu implementieren, Fehler durch manuelle Prozesse zu reduzieren und den Aufwand zu verringern. 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 verkürzt die Vorlaufzeit, ermöglicht häufigere Änderungen und verringert den Aufwand. 
  +  [Was ist AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Best Practices der fortlaufenden Integration bei der Softwareentwicklung](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD für serverlose Anwendungen auf ](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Einführung in die - automatische Softwareverteilung mit](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [Was ist AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

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

 **Verbundene 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) 

 **Verbundene Videos: ** 
+  [Best Practices der fortlaufenden Integration bei der Softwareentwicklung](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Einführung in die - automatische Softwareverteilung mit](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD für serverlose Anwendungen auf ](https://www.youtube.com/watch?v=tEpx5VaW4WE) 