Di Cloud-native Gateway, versi layanan terutama digunakan untuk tag-based routing. Konfigurasikan kebijakan routing yang sesuai untuk mengaktifkan berbagai kasus penggunaan seperti canary release, tag-based routing, dan high-availability deployment.
Manajemen versi layanan tidak didukung untuk layanan Fixed Address atau DNS Domain Name.
Latar Belakang
Dalam arsitektur layanan mikro, layanan merupakan unit fungsional dari sebuah aplikasi yang biasanya memiliki domain bisnis independen, seperti layanan pesanan atau layanan pengguna. Secara fisik, layanan berjalan pada kontainer, mesin virtual, atau mesin fisik yang memiliki alamat jaringan. Secara logis, layanan terdiri dari sekelompok instans jaringan yang menyediakan fungsionalitas yang sama.
Versi layanan adalah subset dari instans suatu layanan, dikelompokkan berdasarkan metadata-nya. Kasus penggunaan umum untuk versi layanan mencakup canary release, tag-based routing, dan high-availability deployment.
-
Canary release: Untuk meluncurkan versi layanan baru secara aman, Anda dapat menerapkan strategi canary release, yang mengarahkan sebagian kecil lalu lintas ke versi baru guna verifikasi. Setelah memastikan versi baru berfungsi sesuai harapan, migrasikan seluruh lalu lintas dari versi lama ke versi baru secara bertahap.
-
Tag-based routing: Suatu layanan mungkin memiliki beberapa versi dengan fungsionalitas berbeda, masing-masing ditujukan untuk permintaan tertentu. Misalnya, untuk API yang sama, permintaan dengan nilai header tertentu diarahkan ke versi layanan tertentu. Anda juga dapat menggunakan versi layanan untuk mengarahkan permintaan ke lingkungan pengembangan yang tepat—seperti test, staging, atau production—berdasarkan atribut permintaan.
-
High-availability deployment: Untuk memastikan ketersediaan layanan, Anda dapat menyebarluaskan layanan di beberapa kluster Kubernetes (K8s). Dengan memperlakukan instans di setiap kluster sebagai versi layanan terpisah, Anda dapat menyesuaikan bobot traffic yang diarahkan ke masing-masing kluster. Jika salah satu kluster gagal, Anda dapat mengalihkan traffic dengan mengatur bobot-nya menjadi 0.
Manajemen versi layanan bergantung pada metadata yang terkait dengan instans layanan.
-
Untuk Container Service for Kubernetes (ACK), metadata pada instans layanan berasal dari atribut
LabelsPod. Misalnya, jika Anda menggunakan aplikasi Spring Cloud yang terkait dengan Kubernetes Service, Anda dapat menambahkan kunci tag dan nilai tag di bawahspec.template.metadata.labelsdalam file YAML Kubernetes Deployment. -
Untuk registri Nacos, metadata pada instans layanan didasarkan pada metadata yang disediakan aplikasi saat pendaftaran instans. Misalnya, jika Anda menggunakan aplikasi Spring Cloud dengan registri Nacos, Anda dapat mengatur metadata instans melalui bidang
spring.cloud.nacos.discovery.metadata.
Add service version
-
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
-
Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Di halaman Gateways, klik ID gateway tersebut.
-
Di panel navigasi kiri, klik Routes. Lalu, klik tab Services.
-
Klik nama layanan yang ingin dimodifikasi. Di bagian Service Version, klik Add Version.
-
Pada baris baru yang muncul di daftar versi layanan, konfigurasikan parameter, lalu klik ikon
di kolom Actions.Parameter
Deskripsi
Version Name
Masukkan nama versi layanan. Gunakan nama yang mudah dibaca dan deskriptif.
Tag Name
Kunci metadata yang tersedia di seluruh instans layanan. Pilih kunci untuk mengelompokkan instans bagi versi baru.
Tag Value
Nilai yang tersedia untuk tag key yang dipilih. Pilih nilai untuk menentukan kelompok instans bagi versi baru.
Number of Instances/Proportion
-
Jumlah instans: Jumlah instans yang sesuai dengan kunci dan nilai tag yang ditentukan.
-
Proporsi: Persentase dari total instans layanan yang termasuk dalam versi ini.
CatatanTag Name dan Tag Value bersama-sama menentukan himpunan instans untuk versi saat ini.
-
-
Di kotak dialog konfirmasi, klik OK.
Versi layanan baru muncul di bagian Service Version.
Edit service version
-
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
-
Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Di halaman Gateways, klik ID gateway tersebut.
-
Di panel navigasi kiri, klik Routes. Lalu, klik tab Services.
-
Klik nama layanan yang ingin dimodifikasi. Di bagian Service Version, klik ikon
di kolom Actions. -
Pilih Tag Name dan Tag Value yang baru, lalu klik ikon
di kolom Actions. -
Di kotak dialog konfirmasi, klik OK.
Delete service version
-
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
-
Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Di halaman Gateways, klik ID gateway tersebut.
-
Di panel navigasi kiri, klik Routes. Lalu, klik tab Services.
-
Klik nama layanan yang ingin dimodifikasi. Di daftar Service Version, klik ikon
di kolom Actions. -
Di kotak dialog konfirmasi, klik OK.