

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

# Implementieren Sie eine Gitflow-Branching-Strategie für Umgebungen mit mehreren Konten DevOps
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments"></a>

*Mike Stephens, Stephen DiCato, Abhilash Vinod und Tim Wondergem, Amazon Web Services*

## Zusammenfassung
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments-summary"></a>

Bei der Verwaltung eines Quellcode-Repositorys wirken sich unterschiedliche Branching-Strategien auf die Softwareentwicklungs- und Release-Prozesse aus, die Entwicklungsteams verwenden. Beispiele für gängige Branching-Strategien sind Trunk, Gitflow und Flow. GitHub Diese Strategien verwenden unterschiedliche Branches, und die Aktivitäten, die in jeder Umgebung ausgeführt werden, sind unterschiedlich. Organizations, die DevOps Prozesse implementieren, würden von einem visuellen Leitfaden profitieren, der ihnen hilft, die Unterschiede zwischen diesen Verzweigungsstrategien zu verstehen. Die Verwendung dieser Grafik in Ihrem Unternehmen hilft Entwicklungsteams dabei, ihre Arbeit besser aufeinander abzustimmen und die Unternehmensstandards einzuhalten. Dieses Muster bietet dieses Bild und beschreibt den Prozess der Implementierung einer Gitflow-Branching-Strategie in Ihrer Organisation.

Dieses Muster ist Teil einer Dokumentationsserie über die Auswahl und Implementierung von DevOps Branching-Strategien für Organisationen mit mehreren. AWS-Konten Diese Serie soll Ihnen helfen, von Anfang an die richtige Strategie und die richtigen Best Practices anzuwenden, um Ihre Erfahrung in der Cloud zu optimieren. Gitflow ist nur eine mögliche Branching-Strategie, die Ihr Unternehmen anwenden kann. Diese Dokumentationsreihe behandelt auch [Trunk](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/implement-a-trunk-branching-strategy-for-multi-account-devops-environments.html) - und [GitHub Flow-Verzweigungsmodelle](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/implement-a-github-flow-branching-strategy-for-multi-account-devops-environments.html). Falls Sie dies noch nicht getan haben, empfehlen wir Ihnen, den Artikel [Auswahl einer Git-Branching-Strategie für DevOps Umgebungen mit mehreren Konten](https://docs.aws.amazon.com/prescriptive-guidance/latest/choosing-git-branch-approach/) zu lesen, bevor Sie die Anleitung in diesem Muster implementieren. Bitte wählen Sie mit der gebotenen Sorgfalt die richtige Branching-Strategie für Ihr Unternehmen aus.

Dieser Leitfaden enthält ein Diagramm, das zeigt, wie eine Organisation die Gitflow-Strategie umsetzen könnte. Es wird empfohlen, die [AWS Well-Architected DevOps Guidance zu lesen, um sich über bewährte](https://docs.aws.amazon.com/wellarchitected/latest/devops-guidance/devops-guidance.html) Verfahren zu informieren. Dieses Muster enthält empfohlene Aufgaben, Schritte und Einschränkungen für jeden Schritt im DevOps Prozess.

## Voraussetzungen und Einschränkungen
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments-prereqs"></a>

**Voraussetzungen**
+ Git, [installiert](https://git-scm.com/downloads). Dies wird als Quellcode-Repository-Tool verwendet.
+ [Draw.io, installiert.](https://github.com/jgraph/drawio-desktop/releases) Diese Anwendung wird zum Anzeigen und Bearbeiten des Diagramms verwendet.
+ (Optional) Gitflow-Plugin, [installiert](https://github.com/nvie/gitflow).

## Architektur
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments-architecture"></a>

**Zielarchitektur**

Das folgende Diagramm kann wie ein [Punnett-Quadrat](https://en.wikipedia.org/wiki/Punnett_square) (Wikipedia) verwendet werden. Sie richten die Zweige auf der vertikalen Achse mit den AWS Umgebungen auf der horizontalen Achse aus, um zu bestimmen, welche Aktionen in den einzelnen Szenarien ausgeführt werden sollen. Die Zahlen geben die Reihenfolge der Aktionen im Workflow an. Dieses Beispiel führt Sie von einem Feature-Branch bis zur Bereitstellung in der Produktion.

![Zusammenfassung der Gitflow-Aktivitäten in jeder Filiale und Umgebung.](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/1dee2a06-cc54-4797-b9a9-78b6685edd33/images/d8be49bf-dca1-4892-ac4c-11996a7258c2.png)


Weitere Informationen zu den AWS-Konten Umgebungen und [Branches in einem Gitflow-Ansatz findest du unter Auswahl einer Git-Branching-Strategie für Umgebungen mit mehreren DevOps Konten](https://docs.aws.amazon.com/prescriptive-guidance/latest/choosing-git-branch-approach/).

**Automatisierung und Skalierung**

Kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) is the process of automating the software release lifecycle. It automates much or all of the manual processes traditionally required to get new code from an initial commit into production. A CI/CD pipeline encompasses the sandbox, development, testing, staging, and production environments. In each environment, the CI/CD pipeline provisions any infrastructure that is needed to deploy or test the code. By using CI/CD, development teams can make changes to code that are then automatically tested and deployed. CI/CDPipelines) bieten den Entwicklungsteams auch Kontrolle und Richtlinien, indem sie Konsistenz, Standards, bewährte Verfahren und Mindestakzeptanzniveaus für die Akzeptanz und Bereitstellung von Funktionen durchsetzen. Weitere Informationen finden Sie unter [Practicing Continuous Integration and Continuous Delivery](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/welcome.html) auf. AWS

AWS bietet eine Reihe von Entwicklerservices, die Sie beim Aufbau von CI/CD Pipelines unterstützen sollen. [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)Ist beispielsweise ein vollständig verwalteter Continuous Delivery Service, der Sie bei der Automatisierung Ihrer Release-Pipelines für schnelle und zuverlässige Anwendungs- und Infrastrukturupdates unterstützt. [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)kompiliert Quellcode, führt Tests durch und produziert ready-to-deploy Softwarepakete. Weitere Informationen finden Sie unter [Entwicklertools unter AWS](https://aws.amazon.com/products/developer-tools/).

## Tools
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments-tools"></a>

**AWS Dienste und Tools**

AWS stellt eine Suite von Entwicklerdiensten bereit, mit denen Sie dieses Muster implementieren können:
+ [AWS CodeArtifact](https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html)ist ein hoch skalierbarer, verwalteter Artefakt-Repository-Service, mit dem Sie Softwarepakete für die Anwendungsentwicklung speichern und gemeinsam nutzen können.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)ist ein vollständig verwalteter Build-Service, der Sie beim Kompilieren von Quellcode, beim Ausführen von Komponententests und beim Erstellen von Artefakten unterstützt, die sofort einsatzbereit sind.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatisiert Bereitstellungen in Amazon Elastic Compute Cloud (Amazon EC2) oder lokalen Instances, AWS Lambda Funktionen oder Amazon Elastic Container Service (Amazon ECS) -Services.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)hilft Ihnen dabei, die verschiedenen Phasen einer Softwareversion schnell zu modellieren und zu konfigurieren und die Schritte zu automatisieren, die für die kontinuierliche Veröffentlichung von Softwareänderungen erforderlich sind.

**Andere Tools**
+ [Draw.io Desktop](https://github.com/jgraph/drawio-desktop/releases) ist eine Anwendung zum Erstellen von Flussdiagrammen und Diagrammen. Das Code-Repository enthält Vorlagen im .drawio-Format für Draw.io.
+ [Figma ist ein Online-Designtool](https://www.figma.com/design-overview/), das für die Zusammenarbeit entwickelt wurde. Das Code-Repository enthält Vorlagen im .fig-Format für Figma.
+ (Optional) Das [Gitflow-Plugin](https://github.com/nvie/gitflow) ist eine Sammlung von Git-Erweiterungen, die Repository-Operationen auf hoher Ebene für das Gitflow-Verzweigungsmodell bereitstellen.

**Code-Repository**

Diese Quelldatei für das Diagramm in diesem Muster ist in der GitHub [Git Branching Strategy for GitFlow](https://github.com/awslabs/git-branching-strategies-for-multiaccount-devops/tree/main/gitflow) Repository verfügbar. Sie enthält Dateien in den Formaten PNG, Draw.io und Figma. Sie können diese Diagramme ändern, um die Prozesse Ihres Unternehmens zu unterstützen.

## Best Practices
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments-best-practices"></a>

Folgen Sie den Best Practices und Empfehlungen in [AWS Well-Architected DevOps Guidance](https://docs.aws.amazon.com/wellarchitected/latest/devops-guidance/devops-guidance.html) und Choosing [a Git Branching Strategy for](https://docs.aws.amazon.com/prescriptive-guidance/latest/choosing-git-branch-approach/) Multi-Account-Umgebungen. DevOps Diese helfen dir dabei, die GitFlow-basierte Entwicklung effektiv zu implementieren, die Zusammenarbeit zu fördern, die Codequalität zu verbessern und den Entwicklungsprozess zu rationalisieren.

## Epen
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments-epics"></a>

### Überprüfung der Gitflow-Workflows
<a name="reviewing-the-gitflow-workflows"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfe den Standard-Gitflow-Prozess. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-a-gitflow-branching-strategy-for-multi-account-devops-environments.html) | DevOps Ingenieur | 
| Überprüfen Sie den Hotfix-Gitflow-Prozess. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-a-gitflow-branching-strategy-for-multi-account-devops-environments.html) | DevOps Ingenieur | 
| Überprüfe den Bugfix-Gitflow-Prozess. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-a-gitflow-branching-strategy-for-multi-account-devops-environments.html) | DevOps Ingenieur | 

## Fehlerbehebung
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Konflikte in der Branche | Ein häufiges Problem, das beim Gitflow-Modell auftreten kann, besteht darin, dass ein Hotfix in der Produktion ausgeführt werden muss, eine entsprechende Änderung jedoch in einer niedrigeren Umgebung vorgenommen werden muss, in der ein anderer Zweig dieselben Ressourcen ändert. Wir empfehlen, dass jeweils nur ein einziger Release-Zweig aktiv ist. Wenn mehr als ein Branch gleichzeitig aktiv ist, kollidieren die Änderungen in den Umgebungen möglicherweise und Sie können einen Branch möglicherweise nicht in die Produktion überführen. | 
| Zusammenführen | Releases sollten so schnell wie möglich wieder in die Hauptversionen integriert und weiterentwickelt werden, um die Arbeit wieder in den primären Zweigen zu konsolidieren. | 
| Zusammenführung von Squash | Verwenden Sie eine Squash-Merge nur, wenn Sie von einem `feature` Zweig zu einem Zweig zusammenführen. `develop` Die Verwendung von Squash-Merges in höheren Zweigen führt zu Schwierigkeiten, wenn Änderungen wieder in niedrigere Zweige zurückgeführt werden. | 

## Zugehörige Ressourcen
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments-resources"></a>

In diesem Leitfaden sind keine Schulungen für Git enthalten. Es stehen jedoch viele hochwertige Ressourcen im Internet zur Verfügung, falls Sie diese Schulung benötigen. Wir empfehlen, dass Sie mit der [Git-Dokumentationsseite](https://git-scm.com/doc) beginnen.

Die folgenden Ressourcen können Ihnen bei Ihrer Reise nach Gitflow-Branches in der helfen. AWS Cloud

**AWS DevOps Anleitung**
+ [AWS DevOps Empfehlung](https://docs.aws.amazon.com/wellarchitected/latest/devops-guidance/devops-guidance.html)
+ [AWS Referenzarchitektur für die Bereitstellungspipeline](https://pipelines.devops.aws.dev/)
+ [Was ist DevOps?](https://aws.amazon.com/devops/what-is-devops/)
+ [DevOps Ressourcen](https://aws.amazon.com/devops/resources/)

**Gitflow-Anleitung**
+ [Der ursprüngliche Gitflow-Blog (Blogbeitrag](https://nvie.com/posts/a-successful-git-branching-model/) von Vincent Driessen)
+ [Gitflow-Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) (Atlassian)
+ [Gitflow on GitHub: So verwendest du Git Flow-Workflows mit GitHub Based Repos (Video](https://youtu.be/WQuxeEvaCxs)) YouTube 
+ [Beispiel für Git Flow Init](https://www.youtube.com/watch?v=d4cDLBFbekw) (YouTube Video)
+ [Der Gitflow-Release-Zweig von Anfang bis Ende (Video](https://www.youtube.com/watch?v=rX80eKPdA28)) YouTube 

**Sonstige Ressourcen**

[Zwölf-Faktoren-App-Methodik](https://12factor.net/) (12factor.net)