

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menerapkan strategi percabangan Gitflow untuk lingkungan multi-akun DevOps
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments"></a>

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

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

Saat mengelola repositori kode sumber, strategi percabangan yang berbeda memengaruhi pengembangan perangkat lunak dan proses rilis yang digunakan tim pengembangan. Contoh strategi percabangan umum termasuk Trunk, Gitflow, dan GitHub Flow. Strategi-strategi ini menggunakan cabang yang berbeda, dan kegiatan yang dilakukan di setiap lingkungan berbeda. Organizations yang menerapkan DevOps proses akan mendapat manfaat dari panduan visual untuk membantu mereka memahami perbedaan antara strategi percabangan ini. Menggunakan visual ini di organisasi Anda membantu tim pengembangan menyelaraskan pekerjaan mereka dan mengikuti standar organisasi. Pola ini memberikan visual ini dan menjelaskan proses penerapan strategi percabangan Gitflow di organisasi Anda.

Pola ini merupakan bagian dari rangkaian dokumentasi tentang memilih dan menerapkan strategi DevOps percabangan untuk organisasi dengan banyak Akun AWS. Seri ini dirancang untuk membantu Anda menerapkan strategi dan praktik terbaik yang benar sejak awal, untuk merampingkan pengalaman Anda di cloud. Gitflow hanyalah salah satu kemungkinan strategi percabangan yang dapat digunakan organisasi Anda. Seri dokumentasi ini juga mencakup model percabangan [Trunk](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/implement-a-trunk-branching-strategy-for-multi-account-devops-environments.html) dan [GitHub Flow](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/implement-a-github-flow-branching-strategy-for-multi-account-devops-environments.html). Jika Anda belum melakukannya, kami sarankan Anda meninjau [Memilih strategi percabangan Git untuk DevOps lingkungan multi-akun](https://docs.aws.amazon.com/prescriptive-guidance/latest/choosing-git-branch-approach/) sebelum menerapkan panduan dalam pola ini. Harap gunakan uji tuntas untuk memilih strategi percabangan yang tepat untuk organisasi Anda.

Panduan ini menyediakan diagram yang menunjukkan bagaimana organisasi dapat menerapkan strategi Gitflow. Disarankan agar Anda meninjau Panduan [AWS DevOps Well-Architected](https://docs.aws.amazon.com/wellarchitected/latest/devops-guidance/devops-guidance.html) untuk meninjau praktik terbaik. Pola ini mencakup tugas, langkah, dan batasan yang direkomendasikan untuk setiap langkah dalam DevOps proses.

## Prasyarat dan batasan
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments-prereqs"></a>

**Prasyarat**
+ Git, [diinstal](https://git-scm.com/downloads). Ini digunakan sebagai alat repositori kode sumber.
+ [Draw.io, diinstal.](https://github.com/jgraph/drawio-desktop/releases) Aplikasi ini digunakan untuk melihat dan mengedit diagram.
+ (Opsional) Plugin Gitflow, [diinstal](https://github.com/nvie/gitflow).

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

**Arsitektur target**

Diagram berikut dapat digunakan seperti [kotak Punnett](https://en.wikipedia.org/wiki/Punnett_square) (Wikipedia). Anda menyusun cabang pada sumbu vertikal dengan AWS lingkungan pada sumbu horizontal untuk menentukan tindakan apa yang harus dilakukan dalam setiap skenario. Angka-angka menunjukkan urutan tindakan dalam alur kerja. Contoh ini membawa Anda dari cabang fitur melalui penerapan dalam produksi.

![Kotak Punnett dari aktivitas Gitflow di setiap cabang dan lingkungan.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/1dee2a06-cc54-4797-b9a9-78b6685edd33/images/d8be49bf-dca1-4892-ac4c-11996a7258c2.png)


Untuk informasi selengkapnya tentang Akun AWS, lingkungan, dan cabang dalam pendekatan Gitflow, lihat [Memilih strategi percabangan Git untuk lingkungan DevOps multi-akun](https://docs.aws.amazon.com/prescriptive-guidance/latest/choosing-git-branch-approach/).

**Otomatisasi dan skala**

Integrasi berkelanjutan dan pengiriman berkelanjutan (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/CDjaringan pipa juga menyediakan tata kelola dan pagar pembatas untuk tim pengembangan dengan menegakkan konsistensi, standar, praktik terbaik, dan tingkat penerimaan minimal untuk penerimaan dan penerapan fitur. Untuk informasi selengkapnya, lihat [Mempraktikkan Integrasi Berkelanjutan dan Pengiriman Berkelanjutan di AWS](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/welcome.html).

AWS menawarkan serangkaian layanan pengembang yang dirancang untuk membantu Anda membangun CI/CD jaringan pipa. Misalnya, [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)adalah layanan pengiriman berkelanjutan yang dikelola sepenuhnya yang membantu Anda mengotomatiskan saluran pipa rilis untuk pembaruan aplikasi dan infrastruktur yang cepat dan andal. [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)mengkompilasi kode sumber, menjalankan tes, dan menghasilkan paket ready-to-deploy perangkat lunak. Untuk informasi selengkapnya, lihat [Alat Pengembang di AWS](https://aws.amazon.com/products/developer-tools/).

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

**AWS layanan dan alat**

AWS menyediakan serangkaian layanan pengembang yang dapat Anda gunakan untuk menerapkan pola ini:
+ [AWS CodeArtifact](https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html)adalah layanan repositori artefak terkelola yang sangat skalabel yang membantu Anda menyimpan dan berbagi paket perangkat lunak untuk pengembangan aplikasi.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)adalah layanan build terkelola penuh yang membantu Anda mengkompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)mengotomatiskan penerapan ke Amazon Elastic Compute Cloud (Amazon EC2) atau instans, fungsi AWS Lambda , atau layanan Amazon Elastic Container Service (Amazon ECS) atau lokal.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)membantu Anda dengan cepat memodelkan dan mengkonfigurasi berbagai tahapan rilis perangkat lunak dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak secara terus menerus.

**Alat lainnya**
+ [Draw.io Desktop](https://github.com/jgraph/drawio-desktop/releases) adalah aplikasi untuk membuat diagram alur dan diagram. Repositori kode berisi template dalam format.drawio untuk Draw.io.
+ [Figma](https://www.figma.com/design-overview/) adalah alat desain online yang dirancang untuk kolaborasi. Repositori kode berisi template dalam format.fig untuk Figma.
+ (Opsional) [Plugin Gitflow](https://github.com/nvie/gitflow) adalah kumpulan ekstensi Git yang menyediakan operasi repositori tingkat tinggi untuk model percabangan Gitflow.

**Repositori kode**

File sumber untuk diagram dalam pola ini tersedia dalam [Strategi Percabangan GitHub Git untuk GitFlow](https://github.com/awslabs/git-branching-strategies-for-multiaccount-devops/tree/main/gitflow) repositori. Ini termasuk file dalam format PNG, draw.io, dan Figma. Anda dapat memodifikasi diagram ini untuk mendukung proses organisasi Anda.

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

Ikuti praktik dan rekomendasi terbaik dalam Panduan [AWS DevOps Well-Architected](https://docs.aws.amazon.com/wellarchitected/latest/devops-guidance/devops-guidance.html) dan [Memilih strategi percabangan Git untuk](https://docs.aws.amazon.com/prescriptive-guidance/latest/choosing-git-branch-approach/) lingkungan multi-akun. DevOps Ini membantu Anda menerapkan pengembangan berbasis GitFlow secara efektif, mendorong kolaborasi, meningkatkan kualitas kode, dan merampingkan proses pengembangan.

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

### Meninjau alur kerja Gitflow
<a name="reviewing-the-gitflow-workflows"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Tinjau proses Gitflow standar. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-a-gitflow-branching-strategy-for-multi-account-devops-environments.html) | DevOps insinyur | 
| Tinjau proses Gitflow hotfix. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-a-gitflow-branching-strategy-for-multi-account-devops-environments.html) | DevOps insinyur | 
| Tinjau proses Gitflow perbaikan bug. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/implement-a-gitflow-branching-strategy-for-multi-account-devops-environments.html) | DevOps insinyur | 

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


| Isu | Solusi | 
| --- | --- | 
| Konflik cabang | Masalah umum yang dapat terjadi dengan model Gitflow adalah di mana perbaikan terbaru perlu terjadi dalam produksi tetapi perubahan yang sesuai perlu terjadi di lingkungan yang lebih rendah, di mana cabang lain memodifikasi sumber daya yang sama. Kami menyarankan Anda hanya memiliki satu cabang rilis yang aktif pada satu waktu. Jika Anda memiliki lebih dari satu aktif pada satu waktu, perubahan lingkungan mungkin bertabrakan, dan Anda mungkin tidak dapat memindahkan cabang ke produksi. | 
| Penggabungan | Rilis harus digabungkan kembali ke main dan dikembangkan sesegera mungkin untuk mengkonsolidasikan pekerjaan kembali ke cabang utama. | 
| Penggabungan squash | Hanya gunakan gabungan squash saat Anda menggabungkan dari `feature` cabang ke cabang. `develop` Menggunakan penggabungan squash di cabang yang lebih tinggi menyebabkan kesulitan saat menggabungkan perubahan kembali ke cabang yang lebih rendah. | 

## Sumber daya terkait
<a name="implement-a-gitflow-branching-strategy-for-multi-account-devops-environments-resources"></a>

Panduan ini tidak termasuk pelatihan untuk Git; namun, ada banyak sumber daya berkualitas tinggi yang tersedia di internet jika Anda memerlukan pelatihan ini. Kami menyarankan Anda memulai dengan situs [dokumentasi Git](https://git-scm.com/doc).

Sumber daya berikut dapat membantu Anda dengan perjalanan percabangan Gitflow Anda di. AWS Cloud

**AWS DevOps bimbingan**
+ [AWS DevOps Bimbingan](https://docs.aws.amazon.com/wellarchitected/latest/devops-guidance/devops-guidance.html)
+ [AWS Arsitektur Referensi Pipeline Deployment](https://pipelines.devops.aws.dev/)
+ [Apa itu DevOps?](https://aws.amazon.com/devops/what-is-devops/)
+ [DevOps sumber daya](https://aws.amazon.com/devops/resources/)

**Panduan Gitflow**
+ Blog [Gitflow asli (posting blog](https://nvie.com/posts/a-successful-git-branching-model/) Vincent Driessen)
+ [Alur kerja Gitflow (Atlassian](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow))
+ [Gitflow on GitHub: Cara menggunakan alur kerja Git Flow dengan Repos GitHub Berbasis](https://youtu.be/WQuxeEvaCxs) (video) YouTube 
+ [Contoh Init Aliran Git](https://www.youtube.com/watch?v=d4cDLBFbekw) (YouTube video)
+ [Cabang Rilis Gitflow dari Awal hingga Selesai](https://www.youtube.com/watch?v=rX80eKPdA28) (YouTube video)

**Sumber daya lainnya**

[Metodologi aplikasi dua belas faktor](https://12factor.net/) (12factor.net)