Penemuan layanan
Cloud Service Mesh menyediakan penemuan layanan dan endpoint. Fitur ini memungkinkan Anda mengelompokkan instance virtual machine (VM) dan instance container yang menjalankan kode Anda sebagai endpoint layanan Anda.
Cloud Service Mesh memantau layanan ini sehingga dapat membagikan informasi pemeriksaan kondisi terbaru kepada kliennya. Oleh karena itu, saat salah satu aplikasi Anda menggunakan klien Cloud Service Mesh (seperti proxy sidecar Envoy atau aplikasi gRPC tanpa proxy) untuk mengirim permintaan, aplikasi tersebut akan mendapatkan manfaat dari informasi terbaru tentang layanan Anda.
Dalam konteks Cloud Service Mesh, klien adalah kode aplikasi yang berjalan di VM atau container yang membuat permintaan untuk dikirim ke server. Server adalah kode aplikasi yang menerima permintaan tersebut. Klien Cloud Service Mesh adalah klien Envoy atau gRPC atau xDS lainnya yang terhubung ke Cloud Service Mesh dan merupakan bagian dari bidang data.
Di bidang data, Envoy atau gRPC melakukan hal berikut:
- Layanan ini memeriksa permintaan dan mencocokkan permintaan dengan layanan backend, yaitu resource yang Anda konfigurasi selama deployment.
- Setelah permintaan dicocokkan, Envoy atau gRPC akan menerapkan kebijakan keamanan atau traffic yang sebelumnya dikonfigurasi, memilih backend atau endpoint, dan mengarahkan permintaan ke backend atau endpoint tersebut.
Penemuan layanan
Cloud Service Mesh menyediakan penemuan layanan. Saat mengonfigurasi Cloud Service Mesh, Anda membuat layanan backend. Anda juga menentukan aturan perutean yang menentukan cara permintaan keluar (permintaan yang dikirim oleh kode aplikasi Anda dan ditangani oleh klien Cloud Service Mesh) dicocokkan dengan layanan tertentu. Saat menangani permintaan yang cocok dengan aturan, klien Cloud Service Mesh dapat memilih layanan yang harus menerima permintaan.
Contoh:
- Anda memiliki VM yang menjalankan aplikasi Anda. VM ini memiliki proxy sidecar Envoy yang terhubung ke Cloud Service Mesh dan menangani permintaan keluar atas nama aplikasi.
- Anda mengonfigurasi layanan backend bernama
payments
. Layanan backend ini memiliki dua backend grup endpoint jaringan (NEG) yang mengarah ke berbagai instance penampung yang menjalankan kode untuk layananpayments
Anda. - Anda mengonfigurasi resource
Mesh
yang menentukan mesh bernamasidecar-mesh
. - Anda mengonfigurasi resource
Route
yang menentukan tujuan traffic untuk layanan backendpayments
dan nama hosthelloworld-gce
.
Dengan konfigurasi ini, saat aplikasi Anda (di VM) mengirim permintaan HTTP
ke payments.example.com
, klien Cloud Service Mesh mengetahui bahwa
permintaan ini ditujukan untuk layanan payments
.
Saat Anda menggunakan Cloud Service Mesh dengan layanan gRPC tanpa proxy, penemuan layanan berfungsi serupa. Namun, library gRPC yang bertindak sebagai klien Cloud Service Mesh hanya mendapatkan informasi tentang layanan yang resolver xDS-nya Anda tentukan. Secara default, Envoy mendapatkan informasi tentang semua layanan yang dikonfigurasi di jaringan Virtual Private Cloud (VPC) yang ditentukan dalam file bootstrap Envoy.
Penemuan endpoint
Penemuan layanan memungkinkan klien mengetahui layanan Anda. Penemuan endpoint memungkinkan klien mengetahui instance yang menjalankan kode Anda.
Saat membuat layanan, Anda juga menentukan backend untuk layanan tersebut. Backend ini berupa VM dalam grup instance terkelola (MIG) atau container dalam NEG. Cloud Service Mesh memantau MIG dan NEG ini sehingga mengetahui kapan instance dan endpoint dibuat dan dihapus.
Cloud Service Mesh terus-menerus membagikan informasi terbaru tentang layanan ini kepada kliennya. Informasi ini memungkinkan klien menghindari pengiriman traffic ke endpoint yang tidak ada lagi. Selain itu, klien dapat mempelajari endpoint baru dan memanfaatkan kapasitas tambahan yang disediakan oleh endpoint ini.
Selain menambahkan endpoint ke MIG atau NEG dan menyiapkan Cloud Service Mesh, Anda tidak memerlukan konfigurasi tambahan untuk mengaktifkan penemuan layanan dengan Cloud Service Mesh.
Intersepsi traffic proxy sidecar di Cloud Service Mesh
Cloud Service Mesh mendukung model proxy sidecar. Dalam model ini, saat aplikasi mengirim traffic ke tujuannya, traffic dicegat dan dialihkan ke port pada proxy sidecar di host tempat aplikasi berjalan. Proxy file bantuan memutuskan cara menyeimbangkan beban traffic, lalu mengirim traffic ke tujuannya.
Dengan Cloud Service Mesh dan API perutean layanan, pencegatan traffic dikelola secara otomatis.
Langkah berikutnya
- Untuk mempelajari cara Cloud Service Mesh memberikan load balancing global untuk microservice internal Anda dengan proxy sidecar, lihat Load balancing Cloud Service Mesh.
- Untuk mempelajari Cloud Service Mesh lebih lanjut, lihat Ringkasan Cloud Service Mesh.