Integrasi Cloud Service Mesh dengan Service Directory

Dokumen ini memberikan ringkasan cara menggunakan pendaftaran layanan Service Directory dengan Cloud Service Mesh, yang memungkinkan Cloud Service Mesh merutekan traffic ke dan menerapkan kebijakan traffic ke layanan yang terdaftar di Service Directory. Dokumen ini ditujukan bagi developer Cloud Service Mesh yang ingin mengintegrasikan aplikasi mereka dengan layanan lain di Google Cloud.

Service Directory adalah registri layanan yang menyimpan informasi tentang layanan jaringan yang terdaftar di dalamnya, termasuk nama, lokasi, dan atributnya. Anda dapat mendaftarkan layanan secara otomatis, mencatat semua detail, dan semua layanan dapat didaftarkan, terlepas dari infrastrukturnya.

Registry tidak hanya dapat berisi layanan, tetapi juga layanan hybrid yang berjalan secara lokal atau di cloud publik lainnya. Google Cloud Untuk memahami informasi dalam dokumen ini dengan baik, sebaiknya Anda memahami dasar-dasar operasi Service Directory.

Saat Anda menggunakan pendaftaran layanan Service Directory dengan Cloud Service Mesh, integrasi ini membuat layanan di pendaftaran layanan tersedia untuk aplikasi di mesh Anda dan untuk gateway yang dikonfigurasi oleh Cloud Service Mesh. Integrasi Cloud Service Mesh dengan Service Directory didukung, dengan Envoy dan dengan gRPC tanpa proxy, untuk integrasi Service Directory dengan Load Balancer Jaringan passthrough internal, Load Balancer Aplikasi internal, dan Private Service Connect L4.

Untuk mengintegrasikan layanan, Anda mendaftarkan layanan dengan Service Directory, lalu mengikat layanan ke layanan backend Cloud Service Mesh. Setelah binding dibuat, Cloud Service Mesh akan membuat kueri Service Directory untuk mendapatkan informasi tentang layanan terdaftar dan cara layanan tersebut dapat dijangkau. Cloud Service Mesh juga melacak setiap perubahan pada layanan. Dengan menggunakan integrasi, mesh layanan dan gateway yang dikelola sendiri dapat mengirim traffic ke layanan ini. Anda juga dapat menerapkan kebijakan—misalnya, kebijakan pengelolaan traffic lanjutan—yang Anda konfigurasi di Cloud Service Mesh.

Saat Anda menggunakan integrasi ini, binding layanan bertindak sebagai backend, terlepas dari jenis backend yang digunakan oleh layanan itu sendiri. Integrasi ini menyederhanakan deployment Cloud Service Mesh Anda, karena Cloud Service Mesh dapat mengirim traffic ke layanan tanpa memperhatikan jenis backend.

Saat layanan didaftarkan ke Service Directory, Anda tidak perlu mengonfigurasi grup instance atau berbagai jenis grup endpoint jaringan (NEG) untuk mendapatkan akses ke layanan yang Anda butuhkan. Anda dapat mendaftarkan Google Kubernetes Engine, load balancer internal, dan Private Service Connect ke Service Directory secara otomatis, sehingga semakin menyederhanakan akses Cloud Service Mesh ke layanan ini.

Resource yang digunakan oleh integrasi

Integrasi antara Cloud Service Mesh dan Service Directory menggunakan resource berikut.

Layanan Service Directory

Service Directory adalah registry layanan. Service Directory memungkinkan Anda mendaftarkan berbagai jenis layanan, termasuk layanan yang berbasis di Google Cloud atau lingkungan lain (misalnya, pusat data lokal). Setiap layanan terdiri dari nama unik dan nol atau lebih endpoint layanan. Endpoint layanan terdiri dari alamat, port, properti, dan metadata. Jika tidak ada endpoint,Anda tidak dapat merutekan traffic ke layanan.

Pengikatan layanan

Pengikatan layanan adalah resource yang mencakup nama domain yang sepenuhnya memenuhi syarat (FQDN) dari layanan Service Directory. Misalnya, projects/test-proj/locations/us-east1/namespaces/test-namespace/services/test-service adalah FQDN untuk layanan Direktori Layanan.

Layanan backend

Layanan backend adalah resource konfigurasi yang memberikan informasi ke Cloud Service Mesh, termasuk backend, seperti grup instance terkelola, yang menjadi tujuan perutean traffic oleh layanan backend. Layanan backend yang mereferensikan binding layanan tidak dapat memiliki backend. Untuk menggunakan integrasi Cloud Service Mesh dengan Service Directory, Anda membuat layanan backend baru untuk mereferensikan binding layanan.

Layanan backend dapat memiliki beberapa binding layanan. Konfigurasi ini berguna dalam situasi saat Anda memiliki deployment regional dari aplikasi yang sama. Anda dapat mendaftarkan setiap deployment regional ke instance regional Direktori Layanan, sebagai layanan regional 1 dan layanan regional 2. Setiap layanan Service Directory regional ini kemudian dapat dikaitkan dengan layanan backend yang sama, menggunakan dua binding layanan. Pengikatan layanan global 1 akan dikaitkan dengan layanan regional 1 di region A dan pengikatan layanan global 2 akan dikaitkan dengan layanan regional 2 di region B.

Kasus penggunaan

Mengintegrasikan deployment Cloud Service Mesh dengan Service Directory memungkinkan kasus penggunaan baru yang berguna saat Anda bergantung pada layanan yang dimiliki atau dipublikasikan oleh tim atau organisasi lain.

Menyediakan layanan yang ada untuk Cloud Service Mesh

Service Directory terintegrasi dengan Google Cloud produk seperti GKE, Load Balancer Jaringan passthrough internal, dan Load Balancer Aplikasi internal. Saat membuat layanan GKE atau load balancer, produsen layanan dapat mendaftarkannya ke Service Directory.

Setelah layanan didaftarkan ke Direktori Layanan, Anda dapat mengonfigurasi Cloud Service Mesh untuk berkomunikasi dengan layanan tersebut. Klien Cloud Service Mesh kemudian dapat berkomunikasi dengan layanan yang berjalan di balik Load Balancer Jaringan passthrough internal dan Load Balancer Aplikasi internal.

Meningkatkan koordinasi antara produsen dan konsumen layanan

Perusahaan besar memiliki banyak tim developer independen. Tim ini menyediakan layanan mereka untuk tim lain sehingga lebih banyak tim dapat menggunakan kemampuan yang disediakan oleh layanan bersama. Hal ini akan menciptakan dependensi lintas tim. Meskipun ketergantungan ini memungkinkan tim berbagi upaya mereka, ketergantungan juga menciptakan overhead koordinasi.

Saat Anda menggunakan Service Directory, satu tim (produsen) mendaftarkan layanan yang ingin disediakan untuk tim atau organisasi lain (konsumen). Produsen membagikan referensi ke layanan ini kepada konsumen. Konsumen dapat menggunakan referensi ini untuk mencari layanan produsen di Service Directory dan menemukan endpoint layanan. Misalnya, endpoint dapat berupa alamat IP virtual (VIP) yang diharapkan layanan produsen untuk menerima traffic.

Integrasi Cloud Service Mesh dengan Service Directory memungkinkan Anda mengotomatiskan proses dengan mengikat layanan Service Directory ke layanan backend Cloud Service Mesh, yang memiliki keuntungan sebagai berikut:

  • Cloud Service Mesh secara otomatis menyelesaikan endpoint layanan dengan mensinkronkannya dari Service Directory. Jika endpoint layanan Service Directory diperbarui, Cloud Service Mesh akan otomatis menyinkronkan perubahan ini.
  • Anda dapat menetapkan berbagai kebijakan perutean dan pengelolaan traffic, seperti waktu tunggu, di Cloud Service Mesh. Kebijakan ini memungkinkan Anda menyesuaikan cara aplikasi Anda mengeluarkan permintaan ke layanan Service Directory. Untuk informasi tentang pengelolaan traffic dan pemilihan rute di Cloud Service Mesh, lihat Pengelolaan traffic lanjutan.
  • Cloud Service Mesh menggunakan kemampuan pengelolaan traffic seperti load balancing berbasis kedekatan untuk mengarahkan traffic secara optimal dari aplikasi ke endpoint—misalnya, dengan meminimalkan waktu perjalanan pulang pergi.
Menggunakan Service Directory untuk penemuan layanan.
Menggunakan Service Directory untuk penemuan layanan (klik untuk memperbesar)

Saat Anda, sebagai konsumen, menggunakan Cloud Service Mesh dan melampirkan layanan backend ke layanan Service Directory, overhead koordinasi lintas tim akan berkurang.

  • Anda melampirkan layanan, Payments, berdasarkan nama.
  • Cloud Service Mesh membagikan informasi tentang layanan Payments kepada kliennya.

    • Misalnya, proxy sidecar yang berjalan di mesh layanan Anda kini mengetahui endpoint (misalnya 10.0.0.1:80) tempat layanan dapat dijangkau.
  • Aplikasi Anda dapat memanggil layanan ini berdasarkan nama tanpa Anda atau aplikasi Anda perlu mengetahui apa pun tentang endpoint layanan eksternal. Dalam diagram, layanan ini adalah layanan Payments.

  • Saat produsen layanan memperbarui layanan eksternal (misalnya, mengubah endpoint-nya), Cloud Service Mesh akan mengambil update tersebut dan membagikannya dengan lancar kepada kliennya.

Mengakses layanan dalam perimeter menggunakan titik traffic masuk

Tim dapat mengelompokkan kumpulan layanan dalam perimeter Kontrol Layanan VPC dan mengekspos layanan tersebut melalui satu titik masuk. Titik masuk ini dapat didaftarkan ke Direktori Layanan dan disediakan bagi pengguna yang ingin mengakses layanan dalam perimeter. Untuk mengetahui informasi selengkapnya tentang perimeter Kontrol Layanan VPC, lihat Detail dan konfigurasi perimeter layanan.

Misalnya, tim membuat gateway ingress menggunakan Load Balancer Aplikasi internal yang mendistribusikan permintaan ke kumpulan layanan Kubernetes dalam cluster. Gerbang masuk ini otomatis terdaftar sebagai layanan di Service Directory. Konsumen yang ingin mengakses layanan Kubernetes dapat mencari gateway ingress ini di Service Directory. Kemudian, konsumen dapat mengonfigurasi mesh Cloud Service Mesh untuk mengakses layanan dalam perimeter melalui gateway.

Menghubungkan layanan di seluruh domain

Anda mungkin memiliki layanan di domain yang berbeda yang perlu Anda hubungkan.

Menghubungkan layanan di seluruh organisasi

Anda mungkin menginginkan akses ke layanan yang dimiliki oleh organisasi lain, seperti Google API (misalnya, Cloud SQL) atau layanan terkelola pihak ketiga.

Service Directory mendukung Private Service Connect. Saat Anda membuat endpoint Private Service Connect di jaringan, endpoint tersebut dapat didaftarkan sebagai layanan dengan Service Directory. Kemudian, Anda dapat melampirkan layanan ini ke Cloud Service Mesh, sehingga klien mesh, seperti klien Envoy dan gRPC, serta gateway yang dikelola sendiri, seperti Apigee, dapat memanggil layanan ini.

Menggunakan Direktori Layanan untuk penemuan layanan dengan Private Service Connect.
Menggunakan Service Directory untuk penemuan layanan dengan Private Service Connect (klik untuk memperbesar)

Contoh sebelumnya, menggunakan Cloud Storage, menggambarkan cara Anda dapat menggunakan Private Service Connect untuk memanggil Google API menggunakan endpoint di jaringan Virtual Private Cloud Anda.

Menghubungkan layanan di seluruh jaringan VPC

Beberapa perusahaan menggunakan beberapa jaringan VPC sebagai bagian dari Google Cloud deployment mereka. Dalam kasus tersebut, layanan di satu jaringan VPC mungkin perlu mengakses layanan di jaringan VPC lain. Anda dapat mengonfigurasi peering VPC untuk mengakses layanan di jaringan VPC yang berbeda, tetapi konfigurasi ini menimbulkan komplikasi jika ada rentang alamat IP yang tumpang-tindih di antara jaringan yang di-peer.

Private Service Connect dapat membuat layanan di satu jaringan VPC dapat diakses oleh layanan di jaringan VPC lain secara aman dan pribadi, menggunakan satu endpoint IP:port.

Tampilan mendetail tentang penggunaan Service Directory untuk penemuan layanan dengan Private Service Connect.
Tampilan mendetail tentang penggunaan Service Directory untuk penemuan layanan dengan Private Service Connect (klik untuk memperbesar)

Contoh tambahan di seluruh domain

Dua contoh sebelumnya menggambarkan kasus saat Anda mungkin perlu melakukan lintas domain, tetapi ada banyak contoh tambahan. Misalnya, Anda membuat gateway yang berada di persimpangan dua region Google Cloud . Layanan di satu wilayah dapat menjangkau layanan di wilayah lain melalui gateway ini. Anda mendaftarkan gateway sebagai layanan di Service Directory, lalu menggunakan gateway dengan Cloud Service Mesh seperti yang dijelaskan dalam dokumen ini.

Menerapkan kebijakan saat layanan diakses

Cloud Service Mesh mendukung kemampuan seperti pengelolaan traffic lanjutan yang dapat dikonfigurasi menggunakan kebijakan. Misalnya, Anda dapat menetapkan kebijakan duplikasi traffic sehingga setiap kali klien mengirim permintaan ke layanan backend tertentu, traffic juga dikirim ke layanan backend kedua.

Saat mengikat layanan Service Directory ke layanan backend Cloud Service Mesh, Anda dapat mengonfigurasi jenis kebijakan ini di Cloud Service Mesh. Proxy sidecar, proxy tengah atau tepi, dan klien tanpa proxy Anda mempelajari kebijakan ini dan menerapkannya.

Beberapa contoh:

  • Pemisahan traffic berbasis bobot—misalnya, antara dua layanan Service Directory
  • Pencerminan traffic—misalnya, ke layanan audit
Permintaan untuk layanan `users` diduplikasi ke layanan `audit`
Permintaan untuk layanan users diduplikasi ke layanan audit (klik untuk memperbesar)

Dukungan untuk Cloud Service Mesh dan klien yang ada

Meskipun Cloud Service Mesh di-deploy di organisasi Anda, Anda mungkin memiliki klien yang tidak menggunakan Cloud Service Mesh. Misalnya, Anda mungkin perlu mengakses layanan dari virtual machine yang bukan bagian dari mesh layanan.

Saat Anda mengikat layanan Service Directory ke layanan backend Cloud Service Mesh, klien Cloud Service Mesh akan otomatis mendapatkan informasi terbaru tentang layanan tersebut. Klien Anda yang tidak menggunakan Cloud Service Mesh dapat mencari dan menggunakan informasi layanan di Service Directory.

Batasan

Cloud Service Mesh tidak mendukung NEG FQDN (INTERNET_FQDN_PORT NEG) dalam integrasi Service Directory.

Langkah berikutnya