CI/CD di AWS
CI/CD dapat digambarkan sebagai alur yang memungkinkan kode baru dikirimkan di salah satu ujung, diuji melalui serangkaian tahapan (sumber, pembangunan, pengujian, penahapan, dan produksi), lalu dipublikasikan sebagai kode siap produksi.
![Diagram yang menggambarkan contoh alur kode AWS](images/cicd_5g2.png)
Gambaran umum alur CICD
Setiap tahap alur CI/CD terstruktur sebagai unit logis dalam proses pengiriman. Setiap tahap bertindak sebagai gerbang yang memeriksa aspek tertentu dari kode. Saat kode diproses dalam sebuah alur, dapat diasumsikan bahwa kualitas kode tersebut akan lebih baik di tahap berikutnya karena makin banyak aspeknya yang terus diverifikasi. Masalah-masalah yang ditemukan di tahap awal akan mencegah pemrosesan kode dalam alur. Hasil pengujian segera dikirim ke tim, dan semua pembangunan serta peluncuran lebih lanjut akan dihentikan jika perangkat lunak gagal melewati tahapan ini.
AWS menghadirkan serangkaian alat developer CI/CD lengkap untuk mempercepat siklus pengembangan dan rilis perangkat lunak. AWS CodePipeline
Alur kode dapat berintegrasi dengan layanan lain. Ini bisa berupa Layanan AWS, seperti Amazon Simple Storage Service
-
Kompilasi, pembangunan, dan pengujian kode dengan AWS CodeBuild
-
Pengiriman berkelanjutan terhadap aplikasi berbasis kontainer ke cloud
-
Validasi pra-deployment terhadap artefak (seperti deskriptor dan image kontainer) yang diperlukan untuk layanan jaringan atau fungsi jaringan cloud native tertentu
-
Pengujian fungsi, integrasi, dan performa untuk fungsi jaringan terkontainerisasi/fungsi jaringan virtual (CNF/VNF), termasuk pengujian acuan dasar dan regresi
-
Pengujian keandalan dan pemulihan bencana (DR).
![Diagram yang menggambarkan komponen alur CI/CD AWS](images/cicd_5g3.png)
Komponen alur CI/CD AWS
AWS dapat menyiapkan alur CI/CD menggunakan Alat Developer AWS berikut:
Pembuatan alur CI/CD dapat diotomatisasi menggunakan AWS CDK
Proses CI/CD mencakup langkah-langkah berikut:
-
Penyiapan jaringan – AWS CDK dan AWS CloudFormation menginisiasi pembuatan prasyarat jaringan:
-
Deployment infrastruktur – AWS CDK dan AWS CloudFormation menginisiasi pembuatan tumpukan sumber daya berikut:
-
Deployment Cloud Network Function (CNF) — Pada tahap ini, CNF di-deploy ke klaster EKS menggunakan alat bagan Kubectl
dan Helm. Tahap ini juga men-deploy aplikasi atau alat tertentu yang dibutuhkan oleh CNF untuk bekerja secara efisien (seperti Prometheus atau Fluentd ). CNF dapat di-deploy melalui fungsi Lambda atau dengan AWS CodeBuild. -
Pembaruan dan deployment berkelanjutan – Ini adalah urutan langkah yang dilakukan secara iteratif untuk men-deploy perubahan yang merupakan bagian dari perubahan kontainer/konfigurasi yang menghasilkan upgrade. Mirip dengan kasus deployment CNF, pembaruan dan deployment berkelanjutan dapat diotomatisasi menggunakan Layanan AWS, dengan pemicu dari AWS CodeCommit
, Amazon Elastic Container Registry (Amazon ECR), atau sistem sumber pihak ketiga seperti GitLab Webhook .
![Diagram yang menggambarkan rangkaian alur CI/CD AWS.](images/cicd_5g4.png)
Diagram rangkaian alur CI/CD AWS
Alur CI/CD dibuat menggunakan AWS CodePipeline