Integrasi Traffic Director dengan Direktori Layanan

Dokumen ini memberikan ringkasan tentang cara menggunakan registry layanan Direktori Layanan dengan Traffic Director, yang memungkinkan Traffic Director mengarahkan traffic ke dan menerapkan kebijakan traffic ke layanan yang terdaftar dengan Direktori Layanan. Dokumen ini ditujukan untuk developer Traffic Director yang ingin mengintegrasikan aplikasi mereka dengan layanan lain di Google Cloud.

Direktori Layanan adalah registry layanan yang menyimpan informasi tentang layanan jaringan yang terdaftar di layanan tersebut, termasuk nama, lokasi, dan atributnya. Anda dapat mendaftarkan layanan secara otomatis, mengambil semua detail, dan semua layanan dapat didaftarkan, apa pun infrastrukturnya.

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

Saat Anda menggunakan registry layanan Direktori Layanan dengan Traffic Director, integrasi ini akan membuat layanan di registry layanan tersedia untuk aplikasi di mesh Anda dan ke gateway yang telah dikonfigurasi oleh Traffic Director. Integrasi Traffic Director dengan Direktori Layanan didukung, dengan Envoy dan gRPC tanpa proxy, untuk integrasi Direktori Layanan dengan Load Balancer Jaringan passthrough internal, Load Balancer Aplikasi internal, dan L4 Private Service Connect.

Untuk mengintegrasikan layanan, daftarkan layanan dengan Direktori Layanan, lalu ikat layanan tersebut ke layanan backend Traffic Director. Setelah binding dibuat, Traffic Director mengkueri Direktori Layanan untuk mendapatkan informasi tentang layanan terdaftar dan cara layanan tersebut dapat dijangkau. Traffic Director juga melacak setiap perubahan pada layanan. Penggunaan integrasi ini memungkinkan mesh layanan Anda dan gateway yang dikelola sendiri untuk mengirim traffic ke layanan ini. API ini juga memungkinkan Anda menerapkan kebijakan—misalnya, kebijakan pengelolaan traffic lanjutan—yang Anda konfigurasi di Traffic Director.

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

Jika layanan didaftarkan dengan Direktori Layanan, Anda tidak perlu mengonfigurasi grup instance atau jenis grup endpoint jaringan (NEG) yang berbeda untuk mendapatkan akses ke layanan yang diperlukan. Anda dapat otomatis mendaftarkan Google Kubernetes Engine, load balancer internal, dan Private Service Connect ke Direktori Layanan, sehingga akan semakin menyederhanakan akses Traffic Director ke layanan ini.

Resource yang digunakan oleh integrasi

Integrasi antara Traffic Director dan Service Directory menggunakan resource berikut.

Layanan Direktori Layanan

Direktori Layanan adalah registry layanan. Direktori Layanan dapat Anda gunakan untuk mendaftarkan berbagai jenis layanan, termasuk layanan berbasis di Google Cloud atau lingkungan lainnya (misalnya, pusat data lokal). Setiap layanan terdiri dari nama unik dan nol atau beberapa endpoint layanan. Endpoint layanan terdiri dari alamat, port, properti, dan metadata. Jika tidak ada endpoint, Anda tidak dapat mengarahkan traffic ke layanan.

Pengikatan layanan

Binding layanan adalah resource yang menyertakan nama domain yang sepenuhnya memenuhi syarat (FQDN) dari layanan Direktori Layanan. 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 kepada Traffic Director, termasuk backend, seperti grup instance terkelola, yang menjadi tujuan rute traffic oleh layanan backend. Layanan backend yang mereferensikan binding layanan tidak dapat memiliki backend. Untuk menggunakan integrasi Traffic Director dengan Direktori Layanan, Anda harus membuat layanan backend baru untuk mereferensikan binding layanan.

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

Kasus penggunaan

Mengintegrasikan deployment Traffic Director dengan Direktori Layanan akan 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 Traffic Director

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

Setelah layanan didaftarkan dengan Direktori Layanan, Anda dapat mengonfigurasi Traffic Director untuk berkomunikasi dengan layanan tersebut. Klien Traffic Director kemudian dapat berkomunikasi dengan layanan yang berjalan di belakang 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 kepada tim lain sehingga lebih banyak tim yang dapat menggunakan kemampuan yang diberikan oleh layanan bersama. Hal ini menciptakan ketergantungan lintas tim. Meskipun dependensi ini memungkinkan tim membagikan upaya mereka, dependensi juga menciptakan overhead koordinasi.

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

Integrasi Traffic Director dengan Direktori Layanan memungkinkan Anda mengotomatiskan proses dengan mengikat layanan Direktori Layanan ke layanan backend Traffic Director, yang memiliki keuntungan berikut:

  • Traffic Director akan otomatis me-resolve endpoint layanan dengan menyinkronkannya dari Direktori Layanan. Jika endpoint layanan Direktori Layanan diperbarui, Traffic Director akan otomatis menyinkronkan perubahan ini.
  • Anda dapat menetapkan berbagai kebijakan pengelolaan traffic dan perutean, seperti waktu tunggu, di Traffic Director. Kebijakan ini memungkinkan Anda menyesuaikan cara aplikasi mengeluarkan permintaan ke layanan Direktori Layanan. Untuk informasi tentang pemilihan rute dan pengelolaan traffic di Traffic Director, lihat Pengelolaan traffic lanjutan.
  • Traffic Director menggunakan kemampuan pengelolaan traffic seperti load balancing berbasis kedekatan untuk mengarahkan traffic secara optimal dari aplikasi ke endpoint, misalnya dengan meminimalkan waktu round-trip.
Menggunakan Direktori Layanan untuk penemuan layanan.
Menggunakan Direktori Layanan untuk penemuan layanan (klik untuk memperbesar)

Jika Anda, sebagai konsumen, menggunakan Traffic Director dan memasang layanan backend ke layanan Direktori Layanan, overhead koordinasi lintas tim akan berkurang.

  • Anda melampirkan layanan, Payments, berdasarkan nama.
  • Traffic Director membagikan informasi tentang layanan Payments kepada kliennya.

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

  • Saat pembuat layanan mengupdate layanan eksternal (misalnya, mengubah endpoint-nya), Traffic Director akan mengambil update tersebut dan membagikannya dengan lancar kepada kliennya.

Mengakses layanan dalam perimeter menggunakan titik masuk (ingress point)

Sebuah 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 di dalam perimeter. Untuk mengetahui informasi selengkapnya tentang perimeter Kontrol Layanan VPC, lihat Detail dan konfigurasi perimeter layanan.

Misalnya, tim membuat gateway masuk menggunakan Load Balancer Aplikasi internal yang mendistribusikan permintaan ke kumpulan layanan Kubernetes dalam cluster. Gateway masuk ini otomatis terdaftar sebagai layanan ke Direktori Layanan. Konsumen yang ingin mengakses layanan Kubernetes dapat mencari gateway masuk ini di Direktori Layanan. Konsumen kemudian dapat mengonfigurasi mesh Traffic Director untuk mengakses layanan dalam perimeter melalui gateway.

Menghubungkan layanan di seluruh domain

Anda mungkin memiliki layanan di domain berbeda yang perlu dihubungkan.

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.

Direktori Layanan mendukung Private Service Connect. Saat Anda membuat endpoint Private Service Connect di jaringan, endpoint tersebut dapat didaftarkan sebagai layanan dengan Direktori Layanan. Selanjutnya, Anda dapat memasang layanan ini ke Traffic Director, sehingga klien mesh, seperti klien Envoy dan gRPC, dan 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 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 deployment Google Cloud mereka. Dalam kasus tersebut, layanan di satu jaringan VPC mungkin perlu mengakses layanan di jaringan VPC yang berbeda. Anda dapat mengonfigurasi peering VPC untuk mengakses layanan di jaringan VPC yang berbeda. Namun, konfigurasi ini akan menimbulkan detail saat ada rentang alamat IP yang tumpang-tindih di antara jaringan yang di-peering.

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

Tampilan mendetail penggunaan Direktori Layanan untuk penemuan layanan dengan Private Service Connect.
Tampilan mendetail penggunaan Direktori Layanan untuk penemuan layanan dengan Private Service Connect (klik untuk memperbesar)

Contoh tambahan di seluruh domain

Dua contoh sebelumnya menggambarkan kasus-kasus saat Anda mungkin perlu melintasi domain, tetapi masih ada banyak contoh tambahan. Misalnya, Anda membuat gateway yang berada di persimpangan dua region Google Cloud. Layanan di satu region dapat menjangkau layanan di region lain melalui gateway ini. Daftarkan gateway sebagai layanan di Direktori Layanan, lalu gunakan gateway dengan Traffic Director seperti yang dijelaskan dalam dokumen ini.

Terapkan kebijakan saat layanan diakses

Traffic Director mendukung kemampuan seperti pengelolaan traffic lanjutan yang dapat dikonfigurasi menggunakan kebijakan. Misalnya, Anda dapat menetapkan kebijakan pencerminan traffic, sehingga setiap kali klien mengirimkan permintaan ke layanan backend tertentu, traffic tersebut juga akan dikirim ke layanan backend kedua.

Saat mengikat layanan Service Directory ke layanan backend Traffic Director, Anda dapat mengonfigurasi jenis kebijakan ini di Traffic Director. Proxy file bantuan, proxy tengah atau edge, dan klien tanpa proxy Anda mempelajari kebijakan ini dan menerapkannya.

Beberapa contohnya:

  • Pembagian traffic berdasarkan bobot—misalnya, antara dua layanan Direktori Layanan
  • Pencerminan traffic—misalnya, ke layanan audit
Permintaan untuk layanan `users` dicerminkan ke layanan `audit`
Permintaan layanan users dicerminkan ke layanan audit (klik untuk memperbesar)

Dukungan untuk Traffic Director dan klien yang ada

Meskipun Traffic Director di-deploy di organisasi Anda, mungkin ada klien yang tidak menggunakan Traffic Director. Misalnya, Anda mungkin perlu mengakses layanan dari virtual machine yang bukan bagian dari mesh layanan.

Saat Anda mengikat layanan Service Directory ke layanan backend Traffic Director, klien Traffic Director secara otomatis akan mendapatkan informasi terbaru tentang layanan tersebut. Klien Anda yang tidak menggunakan Traffic Director dapat mencari dan menggunakan informasi layanan di Direktori Layanan.

Batasan

Traffic Director tidak mendukung NEG FQDN (INTERNET_FQDN_PORT NEG) dalam integrasi Direktori Layanan.

Langkah selanjutnya