Microservices Engine (MSE) memungkinkan Anda menerapkan peluncuran kanari ujung ke ujung berdasarkan gateway MSE Ingress. Dengan cara ini, Anda dapat menerapkan pembatasan trafik ujung ke ujung tanpa perlu mengubah kode bisnis Anda. Topik ini menjelaskan cara menggunakan gateway MSE Ingress untuk menerapkan peluncuran kanari ujung ke ujung.
Prasyarat
Kluster Container Service for Kubernetes (ACK) 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 Berikan izin kepada MSE Ingress Controller.
Batasan
Fitur peluncuran kanari ujung ke ujung terintegrasi dengan fitur routing berbasis tag. Jika Anda menggunakan Microservices Governance untuk menerapkan 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 tempat Anda telah men-deploy aplikasi Spring Cloud atau Dubbo dan tersedia versi baru untuk aplikasi tersebut, trafik akan diarahkan secara acak ke aplikasi-aplikasi tersebut tanpa memperhatikan versi yang digunakan. Dalam kasus ini, trafik yang memiliki karakteristik tertentu mungkin tidak diarahkan ke versi aplikasi yang diinginkan. Untuk mengatasi masalah ini, Anda dapat menggunakan fitur peluncuran kanari ujung ke ujung untuk mengisolasi versi tertentu dari aplikasi dari versi lainnya dan mengarahkan trafik permintaan yang sesuai dengan aturan tertentu ke versi aplikasi yang diinginkan. Anda dapat membuat jalur (lane) yang setara dengan lingkungan runtime independen untuk mengisolasi versi aplikasi dan mengonfigurasi aturan routing untuk gateway MSE Ingress guna mengarahkan trafik.
Skenario peluncuran kanari ujung ke ujung
Topik ini memberikan contoh tentang cara menerapkan peluncuran kanari ujung ke ujung dari gateway MSE Ingress ke aplikasi layanan mikro dalam skenario pemesanan pesanan di industri e-commerce. Dalam contoh ini, arsitektur aplikasi terdiri dari gateway MSE Ingress dan framework layanan mikro backend (Spring Cloud). Aplikasi backend berikut terlibat dalam proses pemanggilan backend: pusat transaksi (Aplikasi A), pusat komoditas (Aplikasi B), dan pusat inventaris (Aplikasi C). Anda dapat menggunakan klien atau halaman HTML untuk mengakses aplikasi backend ini yang terdaftar pada instans Nacos.
Setelah pelanggan melakukan pemesanan, trafik mengalir ke gateway MSE Ingress dan diarahkan secara berurutan ke pusat transaksi (Aplikasi A), pusat komoditas (Aplikasi B), dan pusat inventaris (Aplikasi C). Proses pemanggilan berikut digunakan: Pelanggan → gateway MSE Ingress → Aplikasi A → Aplikasi B → Aplikasi C.
Fitur-fitur versi aplikasi diperbarui seiring iterasi bisnis. Sebelum versi baru secara resmi dirilis untuk Aplikasi A dan Aplikasi C, Anda harus menguji versi tersebut pada kedua aplikasi menggunakan rilis canary. Setelah versi tersebut terbukti stabil, Anda dapat merilisnya untuk aplikasi. Untuk merilis fitur-fitur baru suatu versi, Anda harus merilis versi tersebut untuk Aplikasi A dan Aplikasi C. Fitur peluncuran kanari ujung ke ujung disediakan berdasarkan gateway MSE Ingress dan Microservices Governance. Anda dapat menerapkan peluncuran kanari ujung ke ujung dari gateway MSE Ingress ke beberapa aplikasi backend. Dengan cara ini, trafik canary yang memiliki karakteristik tertentu selalu dapat diarahkan ke versi canary aplikasi. Hal ini membantu Anda menguji suatu versi pada beberapa aplikasi menggunakan rilis canary. Jika suatu aplikasi tidak memiliki versi canary, trafik secara otomatis diarahkan ke lingkungan dasar aplikasi tersebut.

Istilah
Lane
Lingkungan terisolasi yang ditentukan untuk aplikasi dengan versi yang sama. Hanya trafik yang sesuai dengan aturan pengendalian trafik tertentu yang dapat diarahkan ke aplikasi yang ditandai dalam suatu lane. Suatu aplikasi dapat termasuk dalam beberapa lane. Satu lane dapat berisi beberapa aplikasi. Aplikasi memiliki hubungan banyak-ke-banyak dengan lane.
Lane group
Kumpulan lane. Lane group digunakan untuk membedakan antara tim atau skenario yang berbeda.
MSE Ingress gateway
Gateway MSE Ingress memungkinkan Anda mengelola trafik ingress berdasarkan gateway cloud-native MSE. Gateway MSE Ingress kompatibel dengan gateway NGINX Ingress dan mendukung lebih dari 50 anotasi dalam gateway NGINX Ingress. Gateway MSE Ingress mendukung rilis canary beberapa versi layanan secara bersamaan. Gateway MSE Ingress menyediakan kemampuan tata kelola layanan yang fleksibel dan perlindungan keamanan yang komprehensif. Gateway MSE Ingress cocok untuk tata kelola trafik dalam skenario di mana banyak aplikasi terdistribusi cloud-native tersedia.
Persiapan
Aktifkan Microservices Governance untuk aplikasi
Aktifkan MSE Microservices Governance Edisi Profesional.
Untuk informasi selengkapnya, lihat Aktifkan Microservices Governance.
Aktifkan Microservices Governance untuk aplikasi.
Masuk ke Konsol MSE.
Di panel navigasi sebelah 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 Konsol ACK.
Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin Anda kelola dan klik nama kluster tersebut atau klik Details di kolom Actions. Halaman detail kluster akan muncul.
Di panel navigasi sebelah kiri halaman detail, pilih .
Pada halaman Stateless, pilih Namespace dan klik Create From YAML.
Konfigurasikan parameter dan klik Create.
Dalam contoh ini, aplikasi Nacos Server dideploy untuk menerapkan penemuan layanan. Aplikasi A, B, dan C dideploy. Versi dasar dan versi canary dideploy untuk Aplikasi A dan C, sedangkan versi dasar 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, yaitu aplikasi ingress.
Masuk ke Konsol ACK.
Di panel navigasi sebelah kiri halaman detail, pilih
Pada halaman Services, pilih namespace dan klik Create Resources in YAML. Pada halaman Buat, konfigurasikan parameter, 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 grup lane
Masuk ke Konsol MSE, lalu pilih wilayah di bilah navigasi atas.
Di panel navigasi sebelah kiri, pilih Microservices Governance > Full link Grayscale.
Pada halaman Full link grayscale, klik Create Lane Group and Lane. Jika grup lane tersedia di namespace layanan mikro yang Anda pilih, klik Create Lane Group.
Pada panel Create Lane Group, konfigurasikan parameter dan klik OK.
Parameter
Deskripsi
Lane Group Name
Masukkan nama grup lane.
Ingress Type
Pilih Other Gateways.
Gateway lainnya mencakup NGINX Ingress, APISIX, dan gateway Java yang dikelola sendiri. Anda harus menerapkan aturan pengalihan canary di gateway.
Lane Group Application
Pilih semua layanan terkait yang terlibat dalam aplikasi ingress atau gateway Ingress Anda.
Setelah grup lane dibuat, periksa apakah aplikasi ingress dan aplikasi terkait lainnya valid. Anda dapat melihat grup lane yang telah Anda buat di bagian Lane Groups and Involved Applications pada halaman Full link grayscale. Untuk mengubah informasi grup lane, klik ikon
di sebelah kanan dan modifikasi informasinya.
Langkah 2: Buat lane
Pada halaman Grayscale tautan penuh, pilih wilayah tempat grup lane berada di bilah navigasi atas, lalu klik Create First Split Lane di bagian bawah.
Jika lane tersedia di namespace layanan mikro yang Anda pilih, 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, konfigurasikan parameter 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.Tetapkan nama 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 node tag dikonfigurasi, tag tersebut akan ditampilkan dalam daftar drop-down Tag Lane. Jika Anda memilih tag yang telah Anda konfigurasi dari daftar drop-down, tag tersebut akan secara otomatis ditambahkan ke aplikasi dalam lane.
Setelah Anda membuat lane, Anda dapat melihat atau mengonfigurasi informasi lane di bagian Traffic Distribution pada halaman Full link grayscale.
Klik ikon
untuk melihat persentase trafik lane.Klik ikon
untuk mengonfigurasi status aplikasi lane di kolom Actions.Aktifkan lane: Klik Enable. Trafik diarahkan berdasarkan konfigurasi lane. Trafik diprioritaskan ke versi aplikasi yang memiliki tag lane. Jika versi aplikasi bertag tidak ada, trafik diarahkan ke versi aplikasi tanpa tag.
Nonaktifkan lane: Klik Disable. Trafik aplikasi dalam lane selanjutnya diarahkan ke versi aplikasi tanpa tag.
Edit informasi lane: Klik Edit.
Hapus lane: Klik Delete.
Langkah 3: Konfigurasikan aturan Ingress untuk versi dasar
Jika nama domain bisnis adalah example.com dan Anda ingin mengarahkan seluruh trafik permintaan untuk example.com hanya ke lingkungan garis dasar (online), Anda dapat menggunakan kode berikut untuk mengonfigurasi aturan Ingress untuk lingkungan garis dasar.
Gunakan perintah curl untuk mengakses example.com dan arahkan trafik ke lingkungan garis dasar.
curl -H "host: example.com" http://47.98.xxx.xx/aHasil berikut dikembalikan:
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
Jika Anda menggunakan kebijakan berbasis header untuk membedakan antara trafik produksi dan canary, Anda dapat mengarahkan permintaan yang berisi Header HTTP x-user-id: 100 ke lingkungan canary saat mengakses example.com. Trafik diprioritaskan ke versi rilis canary setiap aplikasi dalam rantai pemanggilan. Jika versi rilis canary tidak tersedia untuk suatu aplikasi, trafik diarahkan ke versi garis dasar untuk pemulihan bencana. Gunakan kode berikut untuk mengonfigurasi aturan Ingress untuk lingkungan canary.
Kode di atas menggunakan anotasi untuk menerapkan kemampuan rilis canary, konfigurasi header, dan kontrol header. Untuk informasi selengkapnya tentang cara menggunakan anotasi, lihat Penggunaan lanjutan MSE Ingress.
Gunakan perintah curl untuk mengakses example.com dan arahkan trafik ke lingkungan canary. Permintaan harus berisi Header HTTP x-user-id: 100.
curl -H "host: example.com" -H "x-user-id: 100" http://47.98.xxx.xx/aHasil berikut menunjukkan bahwa trafik canary diprioritaskan ke versi canary Aplikasi A dan C. Untuk Aplikasi B, trafik diarahkan ke versi dasar karena tidak tersedia versi canary untuk aplikasi tersebut.
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 aplikasi tunggal.
Pada halaman Grayscale tautan penuh, klik tab grup lane yang ingin Anda lihat informasi pemantaunya.
Di bagian Lane Groups and Involved Applications, klik nama aplikasi yang ingin Anda lihat informasi pemantaunya. Data permintaan per detik (QPS) ditampilkan di bagian QPS data di sebelah kanan halaman.
Lihat grafik pemantauan semua aplikasi dalam grup lane.
Pada halaman Grayscale tautan penuh, klik tab grup lane yang ingin Anda lihat informasi pemantaunya.
Di sisi kanan bagian Application QPS Monitoring, klik View Traffic Details untuk melihat grafik pemantauan trafik semua aplikasi dalam lane.