Penyebaran biru-hijau adalah strategi manajemen rilis perangkat lunak yang banyak digunakan. Ini melibatkan dua lingkungan perangkat keras yang identik — satu aktif dan melayani pengguna sementara yang lain tetap siaga. Pendekatan ini memfasilitasi kelancaran pengelolaan pembaruan perangkat lunak dan mengurangi risiko downtime sistem.
Kode baru awalnya dirilis ke lingkungan pementasan, di mana ia mengalami pengujian yang ketat. Setelah tim menyetujui kode yang diperbarui, konfigurasi router disesuaikan untuk mengalihkan lalu lintas aplikasi ke lingkungan produksi sekarang. Jika muncul masalah, mereka kembali ke lingkungan produksi sebelumnya untuk terus menggunakan versi perangkat lunak asli.
Beberapa manfaat penting dari penerapan biru-hijau meliputi:
Kubernetes semakin populer sebagai lingkungan untuk pengembangan, pengujian, dan penerapan produksi. Meskipun menyederhanakan penerapan aplikasi, Kubernetes tidak menawarkan fungsionalitas penerapan biru-hijau asli di luar kotak. Sebagai gantinya, ia menyediakan objek Deployment yang memungkinkan pembaruan berkelanjutan, yang dapat, sampai batas tertentu, mengganti pod aplikasi dengan versi terbarunya tanpa downtime.
Penerapan bergulir memiliki batasan tertentu. Mereka dapat membuat rollback menantang dan mungkin memerlukan pemeriksaan kesehatan Kubernetes untuk mengukur status pod dalam penerapan. Selain itu, penerapan bergulir dapat memakan waktu lebih lama dibandingkan dengan pola biru-hijau murni, di mana peralihan ke versi baru terjadi secara instan.
Untuk menerapkan penerapan biru-hijau secara efektif dengan Kubernetes, pertimbangkan alat berikut:
Argo Rollouts adalah kumpulan pengontrol Kubernetes dan Custom Resource Definitions (CRD) sumber terbuka yang menambahkan fitur penerapan lanjutan seperti penerapan biru-hijau dan canary, eksperimen, dan kemampuan pengiriman progresif lainnya. Ini secara opsional terintegrasi dengan pengontrol masuknya Kubernetes dan jaring layanan untuk mengelola lalu lintas selama pembaruan. Ia bahkan dapat membuat kueri dan menginterpretasikan metrik dari sistem lain untuk memvalidasi indikator kinerja utama (KPI) dan secara otomatis mempromosikan atau memutar kembali rilis.
Flagger adalah alat pengiriman progresif yang mengotomatiskan proses rilis aplikasi yang berjalan di Kubernetes. Ini mengurangi risiko memperkenalkan versi perangkat lunak baru ke dalam produksi dengan secara progresif mengalihkan lalu lintas ke versi terbaru sambil menilai metrik dan melakukan uji kesesuaian. Flagger mendukung beberapa strategi penerapan, seperti rilis canary, pengujian A/B, dan penerapan biru-hijau, dan terintegrasi dengan berbagai pengontrol masuknya Kubernetes, jaring layanan, dan sistem pemantauan.
GitLab CI/CD adalah platform DevOps penuh fitur yang merampingkan proyek pengembangan perangkat lunak besar. Selain repositori kode dan kemampuan pelacakan masalah, GitLab menawarkan otomatisasi CI/CD yang mendukung penerapan yang dipicu secara manual dan penerapan terjadwal ke sistem produksi Kubernetes, termasuk strategi penerapan progresif seperti penerapan biru-hijau.
CircleCI adalah platform CI/CD yang membantu tim teknik membuat, menguji, dan menerapkan perangkat lunak sambil melacak perubahan kode secara real-time melalui UI dasbornya. CircleCI mendukung penerapan ke kluster Kubernetes dan terintegrasi dengan layanan lain untuk strategi penerapan seperti flag fitur, biru-hijau, dan penerapan canary.
Artikel ini telah memperkenalkan pola penyebaran biru-hijau, berbagai manfaatnya, dan opsi untuk menerapkan teknik ini dalam lingkungan Kubernetes. Dengan mempertimbangkan alat seperti Argo Rollouts, Flagger, GitLab CI/CD, atau CircleCI, Anda dapat mencapai rilis perangkat lunak yang lebih lancar, meminimalkan waktu henti, dan meningkatkan pengalaman keseluruhan untuk pengembang dan pengguna akhir di lingkungan Kubernetes Anda. Saat Anda menjelajahi alat-alat ini, pertimbangkan persyaratan unik dari jalur pengembangan perangkat lunak Anda untuk mengidentifikasi solusi yang paling sesuai dengan kebutuhan tim Anda.