Versi layanan digunakan untuk fitur perutean berbasis tag yang dikonfigurasikan pada gateway cloud-native. Anda dapat mengonfigurasikan kebijakan perutean berbasis tag untuk memenuhi persyaratan dalam skenario seperti rilis canary, perutean berbasis tag, dan penyebaran dengan ketersediaan tinggi.
Anda tidak dapat mengelola versi layanan jika Sumber Layanannya diatur ke Fixed Address atau DNS Domain Name.
Informasi latar belakang
Dalam arsitektur layanan mikro, layanan didefinisikan sebagai unit fungsional dari aplikasi. Layanan bersifat spesifik untuk bidang tertentu, seperti layanan pesanan dan layanan pengguna. Secara fisik, layanan diterapkan dan dijalankan pada mesin fisik, mesin virtual, atau di dalam kontainer dengan alamat jaringan. Secara logis, layanan terdiri dari node yang menyediakan fungsi serupa.
Node dari suatu layanan dapat dibagi menjadi subset berdasarkan metadata pada node tersebut. Versi layanan merujuk pada subset node ini. Versi layanan biasanya digunakan dalam canary releases, tag-based routing, dan high-availability deployments.
Rilis canary: Versi baru dari layanan sering dirilis selama iterasi layanan. Untuk memastikan stabilitas dan kontinuitas layanan, pengembang menggunakan fitur rilis canary untuk melakukan pembaruan bertahap. Jika Anda melakukan rilis canary untuk menguji versi baru, sebagian kecil lalu lintas diarahkan ke versi baru. Jika hasil pengujian sesuai harapan, sisa lalu lintas secara bertahap dialihkan ke versi baru.
Perutean berbasis tag: Dalam skenario bisnis, beberapa versi layanan mungkin berjalan secara paralel. Fitur setiap versi berbeda dan diterapkan untuk permintaan spesifik. Sebagai contoh, ketika operasi API yang sama dipanggil, permintaan dengan nilai header yang berbeda diteruskan ke versi layanan yang berbeda. Perutean berbasis tag juga digunakan dalam skenario di mana lingkungan pengembangan seperti uji, pra-produksi, dan produksi berada bersamaan. Anda dapat menggunakan versi layanan untuk meneruskan permintaan ke lingkungan pengembangan yang berbeda berdasarkan informasi permintaan.
Penyebaran dengan ketersediaan tinggi: Untuk memastikan ketersediaan layanan, layanan identik mungkin diterapkan di beberapa kluster Kubernetes. Anda dapat mengelola semua instance layanan berdasarkan kluster menggunakan metadata kluster pada node. Anda juga dapat menyesuaikan bobot untuk mendistribusikan lalu lintas ke kluster. Jika sebuah kluster gagal, Anda dapat mengatur bobot lalu lintas menjadi 0 untuk kluster tersebut, sehingga semua lalu lintas dialihkan ke kluster lainnya.
Pengelolaan versi layanan bergantung pada metadata pada node layanan.
Untuk layanan pada kluster Container Service for Kubernetes (ACK), metadata pada node layanan ditentukan oleh atribut Labels pod. Sebagai contoh, jika Anda mendaftarkan layanan Spring Cloud dengan instance di kluster ACK, Anda dapat menambahkan nama tag dan nilai tag yang sesuai dengan layanan Spring Cloud ke
spec.template.metadata.labelsdalam file deployment.yaml kluster ACK.Untuk layanan yang menggunakan registri Nacos, metadata pada node layanan dikonfigurasikan saat aplikasi layanan didaftarkan di registri. Sebagai contoh, jika Anda mendaftarkan aplikasi Spring Cloud dengan instance Nacos, Anda dapat menentukan bidang
spring.cloud.nacos.discovery.metadatauntuk menentukan metadata pada node.
Tambahkan versi layanan
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
Di panel navigasi sisi kiri, pilih Cloud-native Gateway > Gateways. Pada halaman Gateways, klik ID gateway.
Di panel navigasi sisi kiri, klik Routes. Kemudian, klik tab Services.
Klik nama layanan yang ingin Anda ubah di tab Layanan. Di bagian Service Version, klik Add Version.
Di daftar versi layanan, konfigurasikan parameter dan klik ikon
di kolom Actions.
Parameter
Deskripsi
Version Name
Tentukan nama untuk versi layanan. Kami sarankan Anda menggunakan nama yang singkat dan deskriptif.
Tag Name
Pilih nama tag dari daftar drop-down. Nama tag digunakan untuk mengidentifikasi satu set lengkap kunci yang menunjukkan metadata pada semua node layanan. Anda harus memilih kunci untuk membedakan satu set node layanan untuk versi layanan yang ingin Anda tambahkan.
Tag Value
Pilih nilai tag dari daftar drop-down. Nilai tag digunakan untuk mengidentifikasi satu set lengkap nilai yang sesuai dengan kunci yang ditentukan oleh Tag Name. Anda harus memilih nilai untuk lebih mempersempit ruang lingkup node layanan untuk versi layanan yang ingin Anda tambahkan.
Number of Instances/Proportion
Jumlah Instance: jumlah node layanan yang diidentifikasi oleh nama tag dan nilai tag yang ditentukan. Node ini termasuk dalam versi layanan yang ingin Anda tambahkan.
Proporsi: proporsi node layanan yang termasuk dalam versi layanan baru terhadap semua node layanan.
CatatanTag Name dan Tag Value digunakan bersama untuk mengidentifikasi instance versi layanan yang ingin Anda tambahkan.
Di pesan yang muncul, klik OK.
Versi layanan yang telah ditambahkan ditampilkan di bagian Service Version.
Edit versi layanan
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
Di panel navigasi sisi kiri, pilih Cloud-native Gateway > Gateways. Pada halaman Gateways, klik ID gateway.
Di panel navigasi sisi kiri, klik Routes. Kemudian, klik tab Services.
Klik nama layanan yang ingin Anda ubah di tab Layanan. Di bagian Service Version, temukan versi yang diinginkan dan klik ikon
di kolom Actions.Ubah pengaturan Tag Name dan Tag Value, dan klik ikon
di kolom Actions.Di pesan yang muncul, klik OK.
Hapus versi layanan
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
Di panel navigasi sisi kiri, pilih Cloud-native Gateway > Gateways. Pada halaman Gateways, klik ID gateway.
Di panel navigasi sisi kiri, klik Routes. Kemudian, klik tab Services.
Klik nama layanan yang ingin Anda ubah di tab Layanan. Di daftar Service Version, temukan versi yang diinginkan dan klik ikon
di kolom Actions.Di pesan yang muncul, klik OK.