Microservices Engine (MSE) memungkinkan Anda mengimplementasikan peluncuran kanari ujung ke ujung berdasarkan gateway MSE Ingress. Dengan cara ini, Anda dapat menerapkan pembatasan kecepatan trafik ujung ke ujung tanpa mengubah kode bisnis.
Prasyarat
-
Kluster ACK atau kluster ACK Serverless telah dibuat. Untuk informasi selengkapnya, lihat Buat kluster ACK yang dikelola.
-
Edisi Profesional Microservices Governance telah diaktifkan. Untuk informasi selengkapnya, lihat Aktifkan Microservices Governance.
-
Komponen MSE Ingress Controller telah diinstal dan izin relevan telah diberikan kepada komponen tersebut. Untuk informasi selengkapnya, lihat Kelola komponen dan Otorisasi controller MSE Ingress.
Batasan penggunaan
Fitur peluncuran kanari ujung ke ujung terintegrasi dengan fitur routing berbasis tag. Jika Anda menggunakan Microservices Governance untuk mengimplementasikan fitur peluncuran kanari ujung ke ujung pada aplikasi Anda, kami menyarankan agar Anda tidak mengonfigurasi aturan rilis canary dan aturan routing berbasis tag untuk aplikasi tersebut.
Untuk informasi selengkapnya tentang versi Java dan framework yang didukung oleh peluncuran kanari ujung ke ujung, lihat Framework Java yang didukung oleh Microservices Governance.
Informasi latar belakang
Dalam skenario layanan mikro dengan aplikasi Spring Cloud atau Dubbo, trafik secara default didistribusikan secara acak di antara versi aplikasi. Artinya, trafik dengan karakteristik tertentu mungkin tidak mencapai versi yang dimaksud. Fitur peluncuran kanari ujung ke ujung mengatasi hal ini dengan mengisolasi versi aplikasi tertentu ke dalam lane — lingkungan runtime independen — dan mengarahkan trafik yang sesuai dengan aturan yang ditentukan ke versi yang diinginkan. Anda dapat membuat lane untuk mengisolasi versi aplikasi dan mengonfigurasi aturan routing untuk gateway MSE Ingress guna mengarahkan trafik.
Skenario
Contoh ini menunjukkan peluncuran kanari ujung ke ujung dari gateway MSE Ingress ke layanan mikro backend dalam skenario pemesanan e-commerce. Arsitektur terdiri dari gateway MSE Ingress dan backend Spring Cloud dengan tiga aplikasi: pusat transaksi (Aplikasi A), pusat komoditas (Aplikasi B), dan pusat inventaris (Aplikasi C). Klien atau halaman HTML mengakses aplikasi backend ini, yang terdaftar pada instans Nacos.
Setelah pelanggan melakukan pemesanan, trafik mengalir melalui gateway MSE Ingress dan diarahkan ke Aplikasi A, Aplikasi B, dan Aplikasi C secara berurutan: Pelanggan → gateway MSE Ingress → Aplikasi A → Aplikasi B → Aplikasi C.
Sebelum merilis versi baru Aplikasi A dan Aplikasi C, Anda harus menguji versi baru tersebut pada kedua aplikasi menggunakan rilis canary. Setelah versi tersebut terbukti stabil, Anda dapat merilisnya untuk Aplikasi A dan Aplikasi C. Fitur peluncuran kanari ujung ke ujung, yang dibangun di atas gateway MSE Ingress dan Microservices Governance, memastikan bahwa trafik canary dengan karakteristik tertentu selalu diarahkan ke versi canary di beberapa aplikasi. Jika suatu aplikasi tidak memiliki versi canary, trafik secara otomatis diarahkan ke lingkungan dasarnya.

Istilah
-
Lane
Lingkungan terisolasi yang didefinisikan untuk aplikasi dengan versi yang sama. Hanya trafik yang sesuai dengan aturan kontrol trafik tertentu yang diarahkan ke aplikasi dalam lane. Satu aplikasi dapat termasuk dalam beberapa lane, dan satu lane dapat berisi beberapa aplikasi. Aplikasi memiliki hubungan banyak-ke-banyak dengan lane.
-
Lane group
Kumpulan lane, digunakan untuk membedakan antar tim atau skenario berbeda.
-
MSE Ingress gateway
Gateway MSE Ingress mengelola trafik Ingress berdasarkan gateway cloud-native MSE. Gateway ini kompatibel dengan NGINX Ingress dan mendukung lebih dari 50 anotasi NGINX Ingress, memungkinkan rilis canary untuk beberapa versi layanan secara bersamaan. Dengan tata kelola layanan yang fleksibel dan perlindungan keamanan komprehensif, gateway ini memenuhi kebutuhan tata kelola trafik aplikasi terdistribusi cloud-native berskala besar.
Prasyarat
Aktifkan Microservices Governance untuk aplikasi
-
Aktifkan Edisi Profesional MSE Microservices Governance.
Untuk informasi selengkapnya, lihat Aktifkan Microservices Governance.
-
Aktifkan Microservices Governance untuk aplikasi.
Masuk ke Konsol MSE.
Di panel navigasi kiri, pilih . Temukan kluster yang ingin Anda kelola, lalu klik Manage di kolom Actions.
Pada halaman cluster details, temukan namespace yang ingin Anda kelola, lalu klik Activate Microservices Governance di kolom Operation. Pada pesan yang muncul, klik OK.
Deploy aplikasi demo
Masuk ke Container Service Management Console.
-
Di panel navigasi kiri, klik Clusters.
Pada halaman Cluster List, klik nama kluster tujuan atau klik Details di kolom Actions.
Di panel navigasi kiri halaman manajemen kluster, pilih .
-
Pada halaman Stateless, pilih Namespaces dan klik Create from YAML.
-
Konfigurasikan templat dan klik Create.
Pada contoh ini, aplikasi Nacos Server dideploy untuk penemuan layanan. Aplikasi A, B, dan C dideploy. Versi dasar dan canary dideploy untuk Aplikasi A dan C, sedangkan hanya versi dasar yang dideploy untuk Aplikasi B.
Deploy aplikasi nacos-server.
-
Deploy Aplikasi A.
-
Kode YAML untuk versi dasar
-
Kode YAML untuk versi canary
-
-
Deploy Aplikasi B.
-
Kode YAML untuk versi dasar
-
-
Deploy Aplikasi C.
-
Kode YAML untuk versi dasar
-
Kode YAML untuk versi canary
-
-
-
Konfigurasikan dua layanan Kubernetes untuk Aplikasi A, yang merupakan aplikasi ingress.
Masuk ke Konsol ACK.
Di panel navigasi kiri halaman manajemen kluster, pilih .
-
Pada halaman Service, pilih Namespaces, klik Create from YAML, konfigurasikan templat, lalu klik Create.
-
Kode YAML untuk layanan spring-cloud-a-base yang dideploy untuk versi dasar Aplikasi A
-
Kode YAML untuk layanan spring-cloud-a-gray yang dideploy untuk versi canary Aplikasi A
-
Langkah 1: Buat lane group
-
Masuk ke Konsol MSE, dan pilih wilayah di bilah navigasi atas.
-
Di panel navigasi kiri, pilih Microservices Governance > Full link Grayscale.
-
Pada halaman End-to-end Canary Release, klik Create Lane Groups and Lanes. Jika lane group sudah ada di namespace mikroservis yang dipilih, klik +Create Lane Group.
-
Pada panel Create Lane Group, atur parameter lane group dan klik OK.
Parameter
Deskripsi
Name of Lane Group
Masukkan nama untuk kelompok lajur.
Entry Type
Pilih Other Gateways.
Untuk gateway lain seperti gateway NGINX Ingress, gateway APISIX, dan gateway Java yang dikelola sendiri, Anda harus mengimplementasikan aturan pengalihan canary pada gateway tersebut.
Lane group involves application
Pilih semua layanan yang terlibat dalam aplikasi ingress atau gateway Ingress Anda.
Setelah lane group dibuat, verifikasi bahwa aplikasi ingress dan semua aplikasi yang terlibat sudah benar. Anda dapat melihat lane group di bagian Lane Groups and Involved Applications pada halaman End-to-end Canary Release. Untuk mengubah informasi lane group, klik ikon
di sebelah kanan dan perbarui informasinya.
Langkah 2: Buat lane
-
Di bagian atas halaman End-to-end canary release, pilih wilayah yang sama dengan lane group Anda, lalu klik Create First Split Lane di bagian bawah halaman.
Jika lane sudah ada di namespace mikroservis yang dipilih, klik Create Lane.
PentingJika fitur peluncuran kanari ujung ke ujung diaktifkan untuk aplikasi, kami menyarankan agar Anda tidak menggunakan fitur rilis canary dan routing berbasis tag untuk aplikasi tersebut.
-
Pada panel Create Lane, atur parameter lane dan klik OK.
PentingJika gateway Anda adalah gateway Ingress, Anda harus mengonfigurasi aturan routing Ingress di Konsol ACK.
Parameter
Deskripsi
Add Node Tag
-
Metode konfigurasi: Di Konsol ACK, tambahkan
alicloud.service.tag: ${tag}kespec.template.metadata.labelsdalam file YAML aplikasi. -
Tambahkan tag: Tambahkan pasangan kunci-nilai berikut ke
spec.template.metadata.labels.-
msePilotCreateAppName:${AppName} -
alicloud.service.tag:{tag}
-
Lane Name
Masukkan nama untuk lane.
Lane Tag
Setelah Anda Add Node Tag, daftar tag yang sesuai akan muncul di daftar drop-down. Saat Anda memilih tag, aplikasi yang sesuai akan ditambahkan secara otomatis.
Setelah lane dibuat, Anda dapat melihat atau mengonfigurasi informasinya di bagian Traffic Distribution pada halaman End-to-end Canary Release.
-
Klik ikon
untuk melihat persentase trafik lane. -
Klik ikon
di kolom Actions daftar lane untuk mengatur status aplikasi dalam lane.-
Aktifkan lane: Klik Enable. Ini mengaktifkan lane, dan trafik diarahkan sesuai konfigurasi lane. Trafik yang cocok diarahkan terlebih dahulu ke versi aplikasi dengan tag lane yang sesuai. Jika tidak ada versi bertag, trafik diarahkan ke versi tanpa tag.
-
Nonaktifkan lane: Klik Close. Trafik untuk aplikasi ini diarahkan ke versi tanpa tag.
-
Ubah lane: Klik Edit untuk mengubah konfigurasi lane.
-
Hapus lane: Klik Delete untuk menghapus lane.
-
-
Langkah 3: Konfigurasikan aturan Ingress untuk versi dasar
Jika nama domain layanan adalah example.com dan Anda ingin mengarahkan trafik hanya ke versi dasar (versi online), gunakan YAML berikut untuk mengonfigurasi aturan Ingress untuk versi dasar.
Gunakan perintah curl untuk mengakses example.com dan arahkan trafik ke versi dasar.
curl -H "host: example.com" http://47.98.xxx.xx/a
Hasil contoh:
A[192.168.0.98][config=base] -> B[192.168.0.157] -> C[192.168.0.161]
Langkah 4: Konfigurasikan aturan routing Ingress untuk versi canary
Anda menggunakan aturan routing berbasis header untuk membedakan trafik dasar dari trafik canary. Untuk mengarahkan permintaan dengan Header HTTP x-user-id: 100 ke versi canary saat mengakses example.com, konfigurasikan aturan routing Ingress berikut. Permintaan diarahkan terlebih dahulu ke versi canary setiap aplikasi. Jika suatu aplikasi tidak memiliki versi canary, permintaan diarahkan ke versi dasarnya.
Kode di atas menggunakan anotasi untuk mengimplementasikan rilis canary, konfigurasi header, dan kontrol header. Untuk informasi selengkapnya tentang anotasi ini, lihat Container Service for Kubernetes: Penggunaan lanjutan MSE Ingress.
Jalankan perintah curl untuk mengakses example.com dan arahkan permintaan dengan Header HTTP x-user-id: 100 ke versi canary.
curl -H "host: example.com" -H "x-user-id: 100" http://47.98.xxx.xx/a
Hasil contoh: trafik canary diarahkan ke versi canary Aplikasi A dan C. Aplikasi B menerima trafik pada versi dasarnya karena tidak tersedia versi canary.
Agray[192.168.0.128][config=base] -> B[192.168.0.152] -> Cgray[192.168.0.151]
Lihat grafik pemantauan trafik aplikasi di Konsol MSE
-
Lihat grafik pemantauan satu aplikasi.
-
Pada halaman Full link grayscale, klik tab lane group yang ingin Anda lihat informasi pemantauannya.
-
Di bagian Lane Groups and Involved Applications, klik nama aplikasi yang ingin Anda lihat informasi pemantauannya. Data permintaan per detik (QPS) ditampilkan di bagian QPS data di sebelah kanan halaman.
-
-
Lihat grafik pemantauan semua aplikasi dalam lane group.
-
Pada halaman Full link grayscale, klik tab lane group yang ingin Anda lihat informasi pemantauannya.
-
Di sebelah kanan bagian Application QPS Monitoring, klik View Traffic Details untuk melihat grafik pemantauan trafik semua aplikasi dalam lane group.
-