Strategi percabangan untuk IAc - AWS Bimbingan Preskriptif

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

Strategi percabangan untuk IAc

Metodologi Git tipikal menggunakan basis batang utama (sepertimain) cabang untuk produksi, cabang pengembangan, dan cabang fitur. Banyak organisasi langsung mengadopsi desain yang sama untuk infrastruktur sebagai kode (IAc). Namun, metodologi Git tidak secara langsung kompatibel dengan pola desain infrastruktur umum. Pertimbangkan poin-poin berikut:

  • Aplikasi memiliki beberapa lingkungan.

    • Contoh lingkungan termasuk kotak pasir, pengembangan, pementasan, dan produksi.

  • Lingkungan tidak digabungkan dengan erat.

    • Produksi sering kali digabungkan dengan penyebaran pementasan yang berhasil.

    • Produksi dan pementasan biasanya dipisahkan seluruhnya dari lingkungan pembangunan.

    • Pengembangan biasanya dipisahkan seluruhnya dari lingkungan kotak pasir.

  • Setiap aplikasi memiliki seperangkat standar lingkungannya sendiri.

    • Banyak aplikasi tidak menggunakan lingkungan kotak pasir.

    • Beberapa aplikasi tidak memerlukan lingkungan pementasan tetapi menggunakan strategi penyebaran biru/hijau.

Bayangkan sebuah skenario di mana repositori aplikasi memberikan tiga lingkungan yang menggunakan metodologi berbasis batang. Lingkungan pengembangan terkait dengan develop cabang, pementasan ke staging cabang, dan produksi ke main cabang. Untuk aplikasi ini, diperlukan fitur baru untuk menghubungkan gateway transit dalam solusi, yang dikelola oleh tim dan repositori lain. Pengembang menulis kode infrastruktur di cabang fitur, dan menggabungkannya ke develop cabang saat siap. Semua tampak baik.

Namun, sebuah tantangan muncul. Pengembang lain memiliki cerita pengguna terpisah untuk fitur terpisah, menulisnya di cabang fitur, dan menggabungkannya ke develop cabang. Fitur kedua sekarang siap untuk digabungkan menjadi pementasan dan produksi. Namun, fitur gateway transit asli belum siap karena kriteria risiko dalam organisasi. Sekarang semua fitur diblokir dari promosi ke produksi, dan kode aplikasi secara efektif dibekukan atau rusak.

Dalam skenario ini, pertimbangkan solusi potensial berikut:

  • Solusi paling umum: Tingkatkan pengulangan kode (kurangi KERING) di lokasi struktur kode yang ditargetkan dengan mengatur ./environments folder terpisah di repositori. Ini memungkinkan kode lingkungan berada di repositori yang sama, tetapi dipisahkan.

  • Siapkan proses CI/CD dengan manajemen variabel yang kompleks.

  • Pisahkan lingkungan menjadi repositori terpisah.

  • Solusi yang paling tidak umum: Gunakan beberapa cabang batang.