Rilis canary memungkinkan penerapan versi lama dan baru suatu aplikasi secara paralel. Anda dapat menerapkan versi baru kepada sebagian kecil pengguna sebelum merilisnya ke seluruh basis pengguna. Dengan rilis canary, Anda dapat mengatur persentase pengguna yang terpapar versi lama dan baru sesuai kebutuhan bisnis.
Skenario
Saat mengembangkan aplikasi, Anda ingin mempercepat proses rilis sekaligus memastikan pengalaman pengguna tetap optimal. Untuk mengurangi risiko gangguan akibat kesalahan pada versi baru, Anda dapat menerapkan rilis canary dengan mengarahkan sebagian kecil traffic layanan ke versi baru tersebut. Selanjutnya, evaluasi versi baru berdasarkan metrik seperti log, kinerja, dan stabilitas menggunakan umpan balik dari pengguna canary. Berdasarkan hasil evaluasi, Anda dapat merilis versi baru secara bertahap ke seluruh pengguna atau melakukan rollback ke versi lama.
Persiapan
-
Deploy versi lama dan baru pada server backend yang berbeda. Untuk memastikan ketersediaan layanan, deploy masing-masing versi pada beberapa server backend.
-
Buat instans Application Load Balancer (ALB). Instans ALB Basic tidak mendukung aturan berbasis cookie; oleh karena itu, Anda harus membuat instans ALB Standard. Untuk informasi selengkapnya, lihat Create and manage ALB instances.
-
Buat kelompok server, lalu tambahkan server backend tempat versi lama dan baru dideploy ke kelompok server yang berbeda. Untuk informasi selengkapnya, lihat Create and manage a server group.
-
Buat listener, lalu tambahkan server backend tempat versi lama dideploy ke kelompok server default listener tersebut. Untuk informasi selengkapnya, lihat Add an HTTP listener, Add an HTTPS listener, dan Add a QUIC listener.
Setelah menyelesaikan langkah-langkah di atas, semua permintaan akan diarahkan ke versi lama. Anda dapat menggunakan salah satu atau beberapa metode berikut untuk menerapkan rilis canary. Pada contoh ini, versi baru ditambahkan ke Server Group A dan versi lama ditambahkan ke Server Group B.
Canary releases based on HTTP headers
Pada contoh ini, permintaan HTTP yang berisi header User-Agent *Mozilla/4.0* akan diarahkan ke versi baru.
Masuk ke ALB console.
-
Di bilah navigasi atas, pilih wilayah tempat instans ALB dideploy.
-
Pada halaman Instances, klik ID instans ALB yang ingin Anda kelola.
-
Di tab Listener, temukan listener yang ingin Anda kelola, lalu klik View/Modify Forwarding Rule di kolom Actions.
-
Di tab Forwarding Rules, klik Add New Rule.
-
Konfigurasikan parameter berikut, lalu klik OK:
-
Add Condition: Pilih HTTP Header dari daftar drop-down, atur kunci menjadi user-agent, lalu atur nilainya menjadi *Mozilla/4.0*.
-
Action: Pilih Forward to dari daftar drop-down, lalu pilih Server Group A.
Untuk informasi selengkapnya, lihat Listener forwarding rules.
CatatanAnda dapat menambahkan lebih banyak aturan pengalihan untuk meningkatkan persentase traffic pengguna yang dialihkan ke versi baru. Jika versi baru berfungsi sesuai harapan, Anda dapat menghentikan versi lama dan mengarahkan semua permintaan ke versi baru.
-
Canary releases based on cookies
Contoh ini menunjukkan cara mengonfigurasi ALB untuk mengarahkan permintaan ke versi baru berdasarkan cookie yang ditentukan dalam pasangan kunci-nilai.
Masuk ke ALB console.
-
Di bilah navigasi atas, pilih wilayah tempat instans ALB dideploy.
-
Pada halaman Instances, klik ID instans ALB yang ingin Anda kelola.
-
Di tab Listener, temukan listener yang ingin Anda kelola, lalu klik View/Modify Forwarding Rule di kolom Actions.
-
Di tab Forwarding Rules, klik Add New Rule.
-
Konfigurasikan parameter berikut, lalu klik OK:
-
Cookie: Pilih Cookie dari daftar drop-down, lalu atur nilainya menjadi key: value.
-
Action: Pilih Forward to dari daftar drop-down, lalu pilih Server Group A.
Untuk informasi selengkapnya, lihat Listener forwarding rules.
CatatanAnda dapat menambahkan lebih banyak aturan pengalihan untuk meningkatkan persentase traffic pengguna yang dialihkan ke versi baru. Jika versi baru berfungsi sesuai harapan, Anda dapat menghentikan versi lama dan mengarahkan semua permintaan ke versi baru.
-
Canary releases based on server groups
Pada contoh ini, 80% permintaan yang ditujukan ke example.com diarahkan ke versi lama dan 20% permintaan diarahkan ke versi baru.
Masuk ke ALB console.
-
Di bilah navigasi atas, pilih wilayah tempat instans ALB dideploy.
-
Pada halaman Instances, klik ID instans ALB yang ingin Anda kelola.
-
Di tab Listener, temukan listener yang ingin Anda kelola, lalu klik View/Modify Forwarding Rule di kolom Actions.
-
Di tab Forwarding Rules, klik Add New Rule.
-
Konfigurasikan aturan pengalihan berdasarkan informasi berikut, lalu klik OK:
-
Add Condition: Pilih Domain Name dari daftar drop-down, lalu atur nama domain menjadi example.com.
-
Action: Pilih Forward to dari daftar drop-down, lalu pilih Server Group B dan Server Group A. Atur bobot Server Group B menjadi 80 dan Server Group A menjadi 20.
Untuk informasi selengkapnya, lihat Listener forwarding rules.
CatatanAnda dapat mengubah bobot kelompok server sesuai kebutuhan bisnis Anda. Jika versi baru berfungsi sesuai harapan, Anda dapat menghentikan versi lama sehingga semua permintaan diarahkan ke versi baru.
-