Deployment Server yang Aman dengan Canary Test
(engineering.vcnc.co.kr)-
Pengalaman VCNC, operator Tada, yang ditulis oleh Kim Tae-ho tentang canary deployment di lingkungan Kubernetes.
-
Nama canary deployment berasal dari praktik para penambang yang membawa burung kenari dalam sangkar untuk mendeteksi kebocoran gas di tambang.
-
Saat menaikkan versi mayor Spring Boot, versi library yang menjadi dependensi juga ikut berubah secara paksa, sehingga canary deployment dicoba untuk meminimalkan masalah performa atau gangguan yang belum sempat diuji akibat perubahan tersebut.
-
Deployment dilakukan di Kubernetes menggunakan package manager Helm; satuan paket di Helm disebut "chart", dan ketika chart dipasang ke cluster Kubernetes, akan dibuat sebuah release.
-
Mereka membuat chart/release untuk canary, lalu menambahkan annotation pada Ingress controller agar hanya persentase request tertentu yang diarahkan ke Ingress canary.
Tantangan ke depan
-
Saat terjadi masalah pada release canary, sulit menentukan apakah penyebabnya berasal dari perubahan di canary atau dari masalah yang memang sudah ada, sehingga diperlukan metode menyalakan kelompok kontrol dengan rasio yang sama lalu membandingkan metriknya.
-
Karena sebagian request dikirim ke canary tanpa terkait pengguna tertentu, meskipun ada masalah di canary request bisa saja berhasil diproses oleh versi lama setelah retry, tetapi secara keseluruhan proporsi pengguna yang mengalami masalah canary bisa meningkat. Karena itu, jika routing ke canary dilakukan berdasarkan kelompok pengguna seperti sticky handling di LB, kontrolnya tampaknya akan menjadi lebih baik.
Belum ada komentar.