

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

# Memahami CI/CD
<a name="understanding-cicd"></a>

Integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) adalah proses mengotomatisasi siklus hidup rilis perangkat lunak. Dalam beberapa kasus, *D* in juga CI/CD dapat berarti *penyebaran*. Perbedaan antara *pengiriman berkelanjutan* dan *penerapan berkelanjutan* terjadi ketika Anda merilis perubahan pada lingkungan produksi. Dengan pengiriman berkelanjutan, persetujuan manual diperlukan sebelum mempromosikan perubahan produksi. Penerapan berkelanjutan menampilkan aliran tanpa gangguan melalui keseluruhan pipeline, dan tidak ada persetujuan eksplisit yang diperlukan. Karena strategi ini membahas CI/CD konsep umum, rekomendasi dan informasi yang diberikan berlaku untuk pendekatan pengiriman berkelanjutan dan penerapan berkelanjutan.

CI/CD mengotomatiskan banyak atau semua proses manual yang secara tradisional diperlukan untuk mendapatkan kode baru dari komit ke dalam produksi. CI/CD Pipa mencakup sumber, pembangunan, pengujian, pementasan, dan tahap produksi. Di setiap tahap, CI/CD jaringan pipa menyediakan infrastruktur apa pun yang diperlukan untuk menyebarkan atau menguji kode. Dengan menggunakan CI/CD pipeline, tim pengembangan dapat membuat perubahan pada kode yang kemudian diuji secara otomatis dan didorong ke penerapan.

Mari kita tinjau CI/CD proses dasar sebelum membahas beberapa cara yang dapat Anda, secara sadar atau tidak sadar, menyimpang dari sepenuhnya. CI/CD Diagram berikut menunjukkan CI/CD tahapan dan kegiatan di setiap tahap.



![Lima tahap CI/CD proses dan kegiatan dan lingkungan masing-masing.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/strategy-cicd-litmus/images/cicd-stages.png)


## Tentang integrasi berkelanjutan
<a name="about-continuous-integration"></a>

Integrasi berkelanjutan terjadi dalam repositori kode, seperti repositori Git di. GitHub Anda memperlakukan satu cabang utama sebagai sumber kebenaran untuk basis kode, dan Anda membuat cabang berumur pendek untuk pengembangan fitur. Anda mengintegrasikan cabang fitur ke cabang utama saat Anda siap untuk menerapkan fitur ke lingkungan atas. Cabang fitur tidak pernah digunakan langsung ke lingkungan atas. Untuk informasi selengkapnya, lihat [Trunk-based pendekatan](fully-cicd-process-differences.md#trunk-based-approach) dalam panduan ini.

*Proses integrasi berkelanjutan*

1. Pengembang membuat cabang baru dari cabang utama.

1. Pengembang membuat perubahan dan membangun dan menguji secara lokal.

1. Ketika perubahan sudah siap, pengembang membuat [permintaan tarik](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) (GitHub dokumentasi) dengan cabang utama sebagai tujuan.

1. Kode ditinjau.

1. Ketika kode disetujui, itu digabungkan ke cabang utama.

## Tentang pengiriman berkelanjutan
<a name="about-continuous-delivery"></a>

Pengiriman berkelanjutan terjadi di lingkungan yang terisolasi, seperti lingkungan pengembangan dan lingkungan produksi. Tindakan yang terjadi di setiap lingkungan dapat bervariasi. Seringkali, salah satu tahap pertama digunakan untuk membuat pembaruan pada pipa itu sendiri sebelum melanjutkan. Hasil akhir dari penerapan adalah bahwa setiap lingkungan diperbarui dengan perubahan terbaru. Jumlah lingkungan pengembangan untuk bangunan dan pengujian juga bervariasi, tetapi kami sarankan Anda menggunakan setidaknya dua. Dalam pipa, setiap lingkungan diperbarui dalam urutan signifikansinya, berakhir dengan lingkungan yang paling penting, lingkungan produksi.

*Proses pengiriman berkelanjutan*

Bagian pengiriman berkelanjutan dari pipeline dimulai dengan menarik kode dari cabang utama repositori sumber dan meneruskannya ke tahap pembuatan. Dokumen infrastruktur sebagai kode (IAc) untuk repositori menguraikan tugas-tugas yang dilakukan di setiap tahap. Meskipun menggunakan dokumen IAc tidak wajib, layanan atau alat IAC, seperti [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)atau [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html), sangat disarankan. Langkah-langkah yang paling umum meliputi:

1. Tes unit

1. Membangun kode

1. Penyediaan sumber daya

1. Tes integrasi

Jika terjadi kesalahan atau pengujian apa pun gagal pada tahap apa pun dalam pipa, tahap saat ini kembali ke keadaan sebelumnya, dan pipa dihentikan. Perubahan selanjutnya harus dimulai di repositori kode dan melalui proses penuh CI/CD .