Routing berbasis tag bekerja dengan memberi tag pada traffic dan node, lalu menambahkan kemampuan routing untuk mengarahkan traffic dengan karakteristik tertentu ke node yang memiliki tag yang sesuai. Metode ini menjadi dasar bagi strategi penerapan lanjutan seperti blue-green deployment dan canary release.
Prasyarat
Batasan
Fitur ini tersedia di MSE Governance Center dan memerlukan aplikasi Anda terhubung dengannya.
Untuk daftar versi Java dan framework yang mendukung routing berbasis tag, lihat Framework Java yang didukung oleh Microservices Governance.
Kasus penggunaan
Pengembangan dan pengujian multi-versi
Mengembangkan beberapa versi aplikasi secara paralel memerlukan lingkungan pengembangan terpisah untuk setiap versi, yang mengakibatkan biaya sumber daya tinggi. Strategi isolasi traffic dapat secara signifikan mengurangi biaya tersebut. Dengan menggunakan isolasi traffic ujung ke ujung berbasis routing berbasis tag, Anda dapat mengarahkan traffic tertentu ke lingkungan pengembangan yang ditentukan. Misalnya, di Lingkungan Pengembangan 1, Anda dapat menerapkan tag Tag1 pada versi V1.1 dari Aplikasi B dan Aplikasi D serta mengonfigurasi aturan routing yang sesuai. Saat Aplikasi A memanggil Aplikasi B, sistem memeriksa apakah traffic tersebut sesuai dengan aturan routing. Jika ya, traffic tersebut diarahkan ke instans V1.1 dari Aplikasi B di Lingkungan Pengembangan 1. Jika tidak, traffic tersebut diarahkan ke instans V1 di lingkungan garis dasar. Demikian pula, saat Aplikasi C memanggil Aplikasi D, traffic diarahkan ke instans V1 atau V1.1 dari Aplikasi D berdasarkan karakteristik traffic tersebut.
Isolasi traffic multi-versi
Jika beberapa versi aplikasi berjalan online di lingkungan berbeda, seperti lingkungan reguler dan lingkungan khusus, Anda dapat menggunakan routing berbasis tag untuk mengisolasi traffic di antara keduanya. Misalnya, Anda dapat mengarahkan traffic dari flash sale atau saluran tertentu ke lingkungan khusus, sementara traffic normal diarahkan ke lingkungan reguler. Hal ini memastikan bahwa meskipun lingkungan khusus mengalami kegagalan, traffic yang ditujukan ke lingkungan tersebut tidak akan dialihkan ke lingkungan reguler, sehingga mencegah dampak terhadap lingkungan reguler.
Pengujian A/B
Untuk melakukan pengujian A/B pada beberapa versi aplikasi, Anda dapat menggunakan routing berbasis tag untuk kontrol traffic ujung ke ujung. Misalnya, Anda dapat mengarahkan traffic pelanggan dari Wilayah A ke versi V1 dan traffic dari Wilayah B ke versi V1.1. Dengan memvalidasi versi yang berbeda, Anda dapat mengurangi risiko yang terkait dengan peluncuran produk atau fitur baru.
Aktifkan Microservices Governance dan atur tag
Topik ini menggunakan aplikasi bernama spring-cloud-a sebagai contoh. Anda akan menerapkan tag1 dan tag2 untuk membuat dua kelompok instans aplikasi. Jika permintaan sesuai dengan kondisi yang Anda konfigurasi, permintaan tersebut diarahkan ke instans dengan tag yang ditentukan. Jika tidak ada aturan yang cocok, traffic didistribusikan ke instans berdasarkan persentase distribusi traffic yang dikonfigurasi.
-
Di panel navigasi sebelah kiri, pilih Clusters, lalu klik nama kluster target.
-
Di panel navigasi sebelah kiri, pilih .
-
Klik Create from Image untuk membuat dua workload
Deploymentbernamaspring-cloud-a-tag1danspring-cloud-a-tag2. Untuk informasi selengkapnya, lihat Buat workload Deployment tanpa status.Parameter
Deskripsi
Replicas
Atur nilainya menjadi 1.
Type
Pilih Deployment.
Image name
Pilih image yang telah Anda buat atau gunakan image bawaan
registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-a:3.0.1. -
Ikuti langkah-langkah berikut untuk menghubungkan
spring-cloud-a-tag1danspring-cloud-a-tag2ke Microservices Governance dan mengatur tag-nya.-
Kembali ke halaman Deployments. Pilih Namespaces dan temukan aplikasi yang telah Anda buat (spring-cloud-a-tag1 dan spring-cloud-a-tag2). Di kolom Actions, pilih More > View in YAML.
-
Di kotak dialog Edit YAML, tambahkan label berikut di bawah untuk kedua aplikasi
spring-cloud-a-tag1danspring-cloud-a-tag2agar terhubung ke Microservices Governance.labels: msePilotAutoEnable: "on" msePilotCreateAppName: <your-app-name> alicloud.service.tag: <tag>Catatan-
Ganti
<your-app-name>dengan nama aplikasi Anda di Microservices Governance. Dalam contoh ini, namanya adalahspring-cloud-a. -
Ganti
<tag>dengantag1atautag2.
-
-
Klik Update.
-
Buat aturan routing berbasis tag
-
Masuk ke Konsol MSE Governance Center, lalu pilih wilayah di bilah navigasi atas.
-
Di panel navigasi sebelah kiri, pilih Microservices Governance > Application Governance.
-
Di halaman Application list, pilih namespace layanan mikro yang diinginkan, cari aplikasi spring-cloud-a yang telah Anda buat di ACK, lalu klik namanya.
-
Di panel navigasi sebelah kiri, klik Traffic Management, lalu klik tab Tag-based Routing untuk melihat konfigurasi routing saat ini.
-
Di daftar Tag-based Routing, klik Traffic Distribution, atur persentase traffic untuk setiap tag, lalu klik Save.
Misalnya, atur persentase traffic untuk tag1 menjadi
100%, dan persentase untuk instans tag2 dan untagged menjadi0%. -
Di bawah Traffic Rules, klik Add. Di panel Create Tag-based Routing, konfigurasi parameter dan klik OK untuk membuat aturan routing.
CatatanRouting berbasis tag memprioritaskan kondisi yang ditentukan dalam aturan traffic. Jika permintaan sesuai dengan aturan traffic, permintaan tersebut diarahkan ke pod dengan tag yang sesuai. Jika tidak, permintaan tersebut diarahkan ke pod berdasarkan persentase distribusi traffic yang ditentukan.
Parameter
Deskripsi
Routing rule name
Nama aturan routing berbasis tag. Contoh:
test-springcloud.Application
Nama aplikasi. Contoh:
spring-cloud-a.Tag
Tag yang Anda atur untuk aplikasi di ACK. Contoh:
tag2.Application instance
Alamat IP dan port dari instans aplikasi
spring-cloud-ayang memiliki tag ini.Traffic rules
Framework type
Pilih framework aplikasi Anda: Spring Cloud atau Dubbo.
-
Untuk Spring Cloud, Anda hanya dapat mengatur path URL, seperti
/getIp. -
Untuk Dubbo, Anda dapat memilih layanan dan antarmuka.
Condition mode
Pilih mode kondisi sesuai kebutuhan Anda: Meet all of the following conditions atau Meet any of the conditions.
Condition list
-
Jika Framework Type adalah Spring Cloud, Anda dapat mengatur kondisi berdasarkan Parameter, Cookie, Header, atau Body Content. Misalnya, kondisi Parameter bisa berupa
name=xiaoming, dan kondisi Cookie bisa berupahello = "world" or "world2". -
Jika Framework Type adalah Dubbo, Anda harus menentukan ekspresi untuk mengambil nilai parameter.
-
Verifikasi
Verifikasi hasilnya berdasarkan kebutuhan bisnis Anda.
-
Secara default, 100% traffic diarahkan ke node dengan tag
tag1.Atag1[192.168.0.122][config=base] -> B[192.168.0.147] -> C[192.168.0.115] -
Traffic yang sesuai dengan aturan diarahkan ke node dengan tag yang sesuai.
Atag2[192.168.0.156][config=base] -> B[192.168.0.120] -> C[192.168.0.115]
Dokumentasi terkait
Untuk mempelajari cara menerapkan peluncuran kanari ujung ke ujung, lihat Peluncuran kanari ujung ke ujung.