CI/CD di AWS - Integrasi Berkelanjutan dan Pengiriman Berkelanjutan untuk Jaringan 5G di AWS

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

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 mengotomatiskan tahap pembangunan, pengujian, dan deployment dalam proses rilis setiap kali ada perubahan kode, berdasarkan model rilis yang ditetapkan. Hal ini memungkinkan pengiriman fitur dan pembaruan yang cepat dan dapat diandalkan.

Alur kode dapat berintegrasi dengan layanan lain. Ini bisa berupa Layanan AWS, seperti Amazon Simple Storage Service (Amazon S3), atau produk pihak ketiga, seperti GitHub. AWS CodePipeline dapat menangani berbagai kasus penggunaan pengembangan dan operasi termasuk:

  • 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

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 dan AWS CloudFormation. Dalam domain NFV, otomatisasi native AWS ini dapat diintegrasikan ke dalam kerangka kerja Management and Orchestration (MANO) dan kerangka kerja orkestrasi layanan CSP.

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.

Diagram rangkaian alur CI/CD AWS

Alur CI/CD dibuat menggunakan AWS CodePipeline, dan memanfaatkan layanan pengiriman berkelanjutan yang memodelkan, memvisualisasikan, dan mengotomatisasi langkah-langkah yang diperlukan untuk merilis perangkat lunak. Dengan mendefinisikan tahapan dalam alur, Anda dapat mengambil kode dari repositori kode sumber, membangun kode sumber itu menjadi artefak yang dapat dirilis, menguji artefak, dan men-deploy artefak ke produksi. Hanya kode yang berhasil melewati semua tahap ini akan di-deploy. Anda memiliki opsi untuk menambahkan persyaratan lain ke alur Anda, seperti persetujuan manual, untuk membantu memastikan bahwa hanya perubahan yang disetujui yang di-deploy ke produksi.