Apa itu Canary Deployment?
Apabila frasa Canary Deployment diutarakan dalam mesyurat, saya terus terbayang seekor burung kenari dalam sebuah sangkat kecil. Burung itu dibawa ke dalam sebuah lombong untuk mengesan sebarang kebocoran gas beracun yang boleh membahayakan pelombong. Jika burung tersebut mati, pelombong-pelombong akan segera meninggalkan lombong tersebut.
Apa itu Canary Deployment?
Menurut pemahaman saya, Canary Deployment ini merupakan strategi deployment sesebuah aplikasi baru untuk menggurangkan impak kegagalan jika berlaku sesuatu yang tidak diingini. Secara umumnya terdapat 2 kumpulan pengguna utama dalam strategi ini:
Pengguna Awal (Early Adopter) - terpilih dan peratusan yang kecil
Pengguna Umum (General User) - umum dan peratusan besar
Semasa Canary Deployment
Selepas Sistem Stabil
Sekejap-sekejap, bukankah sistem telah diuji (UAT, SIT)? Kenapa tidak yakin dengan hasil ujian tersebut? Pendapat saya UAT and SIT ini kepada fungi sistem tersebut dan ia diuji di enviroment yang berbeza dangan production envinroment, jadi kemungkinan berlaku bug wujud. Jadi Canary Deployment dapat mengurangkan bug yang mungkin berpunca daripada infrastruktur system (contohnya Configuration, Network Setup).
Jenis-jenis Canary Deployment
Terdapat 2 jenis Canary Deployment
Deployment Secara Berperingkat (Rolling Deployments)
Deployment Secara Bersebelahan (Side-by-side Deployments)
Deployment Secara Berperingkat (Rolling Deployments)
Deployment menggunakan cara ini, anda mengemaskini sistem secara satu demi satu. Katakan anda ada 3 machine yang digunakan untuk hosting code anda. Anda akan update 1 host pada minggu ini dan 1 lagi pada minggu depan dan seterusnya.
Deployment Secara Bersebelahan (Side-by-Side Deployment)
Deployment dengan cara ini memerlukan anda mempunyai satu lagi environment yang sama seperti production environment. Pengguna-pengguna akan dipisahkan untuk masuk ke environment yang ditetapkan menerusi sistem seperti load balancer atau proxy server. Sistem dalam mode Canary akan diperhatikan untuk memastikan ia mampu menampung pengguna. Lama-kelamaan semua pengguna akan dipindahkan ke sistem dalam Mode Canary dan ia akan menjadi sistem dalam Mode Stabil.
Perkara Yang Perlu Dipertimbangkan
Berapa lamakah masa yang diperlukan untuk menjadikan Mode Canary kepada Mode Stabil?
Apakah kriteria-kriteria penilaian perlu ditentukan untuk memastikan transisi mode berjaya
Bagaimana anda membahagi pengguna sistem Mode Canary dan Mode Stabil
Apakah strategi deployment yang pernah anda jalankan?
Rujukkan:
https://semaphoreci.com/blog/what-is-canary-deployment
https://www.harness.io/blog/blue-green-canary-deployment-strategies
https://circleci.com/blog/canary-vs-blue-green-downtime/