Service Directory adalah layanan yang tercakup dalam kewajiban Google sebagaimana ditetapkan dalam Adendum Pemrosesan Data Cloud.
Direktori Layanan adalah satu tempat untuk memublikasikan, menemukan, dan menghubungkan ke layanan secara konsisten dan andal, terlepas dari lingkungannya. Service Directory mendukung layanan di lingkungan Google Cloud, multi-cloud, dan lokal, serta dapat diskalakan hingga ribuan layanan dan endpoint untuk satu project.
Service Directory memiliki fitur berikut:
- Registration and Lookup API untuk membuat dan menyelesaikan namespace, layanan, dan endpoint
- Integrasi dengan Cloud DNS. Zona Service Directory memungkinkan layanan tersedia di Virtual Private Cloud (VPC).
- Integrasi IAM untuk menetapkan dan mengontrol visibilitas dan izin layanan
- Google Cloud CLI bawaan dan dukungan Google Cloud console untuk berinteraksi dengan Service Directory
- Integrasi Cloud Monitoring dan Cloud Logging untuk memantau, mengaudit, dan men-debug operasi Service Directory
Alasan menggunakan Service Directory
Seiring aplikasi mengadopsi layanan, kemampuan untuk menyelesaikan lokasi layanan menjadi lebih sulit karena endpoint layanan tersebut berubah. Layanan yang di-deploy di seluruh lingkungan hybrid menimbulkan hambatan tambahan karena keduanya mungkin tidak menggunakan sistem penamaan yang sama, sehingga menyulitkan penyelesaian dan koneksi layanan. Untuk mengilustrasikan masalah ini, perhatikan hal berikut.
Bayangkan Anda sedang membangun API sederhana dan kode Anda perlu memanggil beberapa aplikasi lain. Jika informasi endpoint tetap statis, Anda dapat meng-hardcode lokasi ini ke dalam kode atau menyimpannya dalam file konfigurasi kecil. Namun, dengan microservice dan multi-cloud, masalah ini menjadi jauh lebih sulit diatasi karena instance, layanan, dan lingkungan semuanya dapat berubah.
Dengan Direktori Layanan, Anda dapat mendaftarkan semua layanan di satu tempat dan menyelesaikannya menggunakan HTTP, gRPC, dan DNS.
Mari kita lihat kembali diagram sebelumnya, tetapi kali ini dengan menambahkan Service Directory. Dalam diagram berikut, setiap instance layanan didaftarkan ke Service Directory. Pendaftaran ini langsung tercermin dalam DNS dan dapat dikueri menggunakan HTTP/gRPC terlepas dari penerapan dan lingkungannya.
Anda dapat membuat nama layanan universal yang berfungsi di berbagai produk, seperti App Engine dan GKE. Google CloudAnda dapat menyediakan layanan ini melalui DNS. Anda dapat menerapkan kontrol akses ke layanan berdasarkan jaringan, project, dan peran IAM dari akun layanan.
Direktori Layanan memecahkan masalah berikut:
- Interoperabilitas: Service Directory adalah layanan penamaan universal yang berfungsi di seluruh Google Cloud, multi-cloud, dan lokal. Anda dapat memigrasikan layanan di antara lingkungan ini dan tetap menggunakan nama layanan yang sama untuk mendaftarkan dan menyelesaikan endpoint.
- Pengelolaan layanan: Service Directory adalah layanan terkelola. Organisasi Anda tidak perlu mengkhawatirkan ketersediaan tinggi, redundansi, penskalaan, atau pemeliharaan saat mempertahankan pendaftaran layanan Anda sendiri.
- Kontrol Akses: Dengan Service Directory, Anda dapat mengontrol siapa yang dapat mendaftarkan dan menyelesaikan layanan Anda menggunakan IAM. Tetapkan peran Service Directory ke tim, akun layanan, dan organisasi.
- Batasan DNS murni: Resolver DNS dapat menjadi tidak andal dalam hal mematuhi TTL dan caching, tidak dapat menangani ukuran data yang lebih besar, dan tidak menawarkan cara mudah untuk menyajikan metadata kepada pengguna. Selain dukungan DNS, Service Directory menawarkan API HTTP dan gRPC untuk mengkueri dan menyelesaikan layanan.
Menggunakan Cloud DNS dengan Service Directory
Cloud DNS adalah layanan Domain Name System (DNS) yang cepat, skalabel, dan andal, yang berjalan di infrastruktur Google.
Selain zona DNS publik, Cloud DNS juga menyediakan solusi DNS internal terkelola untuk jaringan pribadi diGoogle Cloud. Zona DNS pribadi memungkinkan Anda memberi nama instance virtual machine (VM), load balancer, atau resource lain secara internal. Kueri DNS untuk zona DNS pribadi tersebut dibatasi untuk jaringan pribadi Anda.
Diagram berikut menggambarkan cara menggunakan zona Direktori Layanan untuk membuat nama layanan tersedia menggunakan pencarian DNS.
Ringkasan setiap komponen:
- Endpoint didaftarkan langsung dengan Direktori Layanan menggunakan Service Directory API. Anda dapat mendaftarkan layanan Google Cloud dan non-Google Cloud dengan Direktori Layanan.
- Klien eksternal dan internal dapat mencari layanan tersebut di: https://servicedirectory.googleapis.com
- Untuk mengaktifkan permintaan DNS, buat zona Direktori Layanan di Cloud DNS yang terkait dengan namespace Direktori Layanan.
- Klien internal dapat me-resolve layanan ini menggunakan DNS, HTTP, dan gRPC. Klien eksternal (klien yang tidak berada di jaringan pribadi) harus menggunakan HTTP atau gRPC untuk menyelesaikan nama layanan.
Contoh konfigurasi
Cara mengekspos layanan melalui DNS
Diagram berikut menggambarkan cara arsitektur microservice dimodelkan di Service Directory dan tersedia menggunakan DNS. Perhatikan bahwa Direktori Layanan memelihara layanan dan endpoint sepenuhnya, tetapi zona pribadi berada di Cloud DNS.
Dalam diagram ini (sisi kiri), layanan payments terdaftar ke
namespace dengan nama backend-namespace, region us-east1, dan
project gcp-project. Namespace ditautkan ke zona pribadi
example.com.
Untuk melakukan pencarian DNS, klien meminta
catatan SRV
untuk nama domain _payments._tcp.payments.example.com, yang
di-resolve ke nomor port dan catatan alamat untuk endpoint
layanan pembayaran.
Langkah berikutnya
- Untuk mempelajari cara menyiapkan namespace Direktori Layanan, membuat layanan di namespace, dan menetapkan endpoint ke layanan, lihat Mengonfigurasi Service Directory.
- Untuk mempelajari cara membuat zona Direktori Layanan yang memanfaatkan namespace yang ada, lihat Mengonfigurasi zona DNS Direktori Layanan.
- Untuk mempelajari cara membuat kueri ke zona Direktori Layanan yang ada menggunakan DNS, lihat Membuat kueri menggunakan DNS.
- Untuk menemukan solusi atas masalah umum yang mungkin Anda alami saat menggunakan Service Directory, lihat Pemecahan masalah.