Ada pertanyaan yang diajukan di grup Telegram AWS User Group Indonesia pada tanggal 7 Juli 2020.

Halo mau bertanya. Saya punya 2 environment, yaitu development dan production di AWS (EC2).

Di Git ada 2 branch, yaitu staging dan master.

Lalu saya mau implementasi CodePipeline dan CodeBuild.

Nah kira-kira best practice nya apakah dibuat pipeline yang berbeda (satu pipeline untuk env development, sattu pipeline lagi untuk env production)?

Atau dibuat satu pipeline dengan beda stage deploy development dan production?

Kira-kira best practices-nya di AWS gimana ya?

Jawaban untuk Pertanyaan

Halo!

Bisa coba cek whitepaper dari AWS berikut ini:
https://d0.awsstatic.com/whitepapers/DevOps/practicing-continuous-integration-continuous-delivery-on-AWS.pdf

Jika kita melihat-lihat screenshot CodePipeline yang ada di whitepaper AWS tersebut, maka bisa disimpulkan bahwa gunakanlah satu AWS CodePipeline untuk deteksi trigger di satu “main trunk” / “branch” saja. Jika automated test (unit test, integration test, dan sebagainya) sukses, maka lakukan deployment ke environment development secara otomatis. Lalu gunakan approval manual jika ingin deploy ke environment production.

Lalu berikut ini saya kutipkan bagian relevan dengan pertanyaan yang diajukan:

Dari dua paragraf tersebut dapat disimpulkan bahwa cara yang tadi dibeberkan tidaklah harus dipaksakan. Anda bisa melakukan penyesuaian jika di tim menggunakan lebih dari satu branch di Git. Alias bikin satu CodePipeline untuk branch staging dan satu CodePipeline lagi untuk branch production.

Terima kasih, satu lagi jawaban dari Dojotek, konsultan dan rekan strategi multi-cloud Anda.