Canonical Service
Catatan: Layanan Kanonik didukung secara otomatis di Cloud Service Mesh versi 1.6.8 dan yang lebih baru.
Halaman ini menjelaskan apa yang dimaksud dengan Layanan Kanonik di Cloud Service Mesh.
Apa yang dimaksud dengan Layanan Kanonik?
Cloud Service Mesh 1.6.8 memperkenalkan dukungan untuk Layanan Kanonik, model konseptual dan arsitektur untuk merepresentasikan beban kerja produksi Anda sebagai layanan tunggal yang lebih mudah diamati dan dikelola. Beban kerja ini dapat mencakup beberapa cluster, platform backend yang berbeda, serta skema dan konfigurasi yang berbeda.
Untuk pengguna Kubernetes: Layanan Kanonik secara kasar analog dengan konsep "aplikasi" Kubernetes dan CRD Aplikasi.
Untuk pengguna Serverless: Layanan Kanonik sangat mirip dengan konsep layanan App Engine dan layanan Cloud Run. Satu perbedaannya adalah layanan Serverless Google pada dasarnya bersifat regional, sedangkan Layanan Kanonis adalah abstraksi global / multi-region.
Misalnya, semua skenario berikut menjelaskan cara Anda dapat merujuk ke Layanan Kanonik:
- Layanan mengalami pemadaman.
- Layanan berjalan di lokal dan di cloud publik.
- Men-deploy revisi baru dari layanan.
- Layanan Foo mengirim terlalu banyak traffic dan mungkin melebihi kapasitas kami.
Layanan Kanonik ada dalam satu Mesh, yang dalam Cloud Service Mesh berarti bahwa layanan tersebut juga unik dalam armada dan Project Google Cloud (semuanya bersifat satu-ke-satu dengan Mesh).
Workload tertentu hanya diizinkan untuk menjadi bagian dari satu Layanan Kanonik.
Anda dapat menentukan cakupan lengkap Layanan Kanonik dari grup beban kerja yang menentukannya, termasuk:
- Nama host dan alamat IP
- Jaringan
- Kebijakan jaringan dan keamanan
- Pemilihan rute dan load balancing
- Image VM dan container
- Infrastruktur fisik atau virtual
- Wilayah geografis
- Sistem CI/CD
- Kode sumber
- Telemetri
- Tujuan dan pemberitahuan tingkat layanan
Anda dapat melihat dasbor yang menampilkan detail operasional ini untuk setiap layanan di halaman Layanan Enterprise GKE.
Persyaratan dan batasan Layanan Kanonik
Layanan Kanonik hanya tersedia di Cloud Service Mesh versi 1.6.8 dan yang lebih baru.
Setiap Layanan Kanonik ada di dalam satu namespace Kubernetes/Istio dan tidak dapat melintasi batas namespace.
Anda harus memberikan nama unik untuk Layanan Kanonik dalam namespace induknya. Untuk mengetahui informasi selengkapnya, lihat menentukan Layanan Kanonik.
Layanan Kanonik dapat ada di beberapa cluster dan region. Meskipun dapat mengelompokkan resource dan telemetri menurut cluster dan region, hal tersebut bukan faktor dalam menentukan cakupan atau keunikan layanan.
Oleh karena itu, identitas unik Layanan Kanonik ditentukan oleh:
mesh id + namespace + canonical name.
Revisi
Revisi mengacu pada perubahan inkremental pada layanan yang dapat Anda gunakan untuk membedakan dan mengidentifikasi berbagai "versi" atau "rilis" layanan Anda.
Membedakan antara revisi Layanan Kanonik dengan memberi label pada beban kerja individual dengan "revisi kanonis"-nya. Label ini adalah string arbitrer yang dapat Anda tentukan. Meskipun label dapat ditetapkan secara otomatis dalam beberapa kasus, Anda atau sistem CI/CD yang men-deploy layanan harus menerapkan label. Untuk panduan tentang cara menetapkan label ini, lihat Menentukan Layanan Kanonik.
Perhatikan bahwa beberapa revisi dapat diproduksi secara bersamaan. Menjalankan beberapa revisi sekaligus paling sering digunakan untuk mencapai:
- Peluncuran progresif biner baru, konfigurasi baru, atau keduanya di semua instance layanan seseorang. Dalam hal ini, revisi lama dan baru akan aktif selama transisi.
- "Pengujian A/B" atau "eksperimen langsung", yang menampilkan dua versi layanan yang berbeda kepada subset pemanggil downstream untuk menguji efek perubahan.