Ringkasan Cloud Service Mesh

Dokumen ini ditujukan untuk administrator jaringan dan pemilik layanan yang ingin memahami Cloud Service Mesh beserta kemampuannya. Ini adalah dokumen lama yang berlaku untuk konfigurasi yang menggunakan API load balancing.

Cloud Service Mesh adalah bidang kontrol terkelola untuk jaringan aplikasi. Dengan Cloud Service Mesh, Anda dapat menghadirkan layanan global yang sangat tersedia dengan kemampuan jaringan aplikasi canggih seperti pengelolaan traffic dan kemampuan observasi.

Seiring bertambahnya jumlah layanan dan microservice dalam deployment, Anda biasanya akan mulai menghadapi tantangan umum pada jaringan aplikasi, seperti berikut:

  • Bagaimana cara membuat layanan saya menjadi tangguh?
  • Bagaimana cara mendapatkan traffic ke layanan saya, dan bagaimana layanan mengetahui dan berkomunikasi satu sama lain?
  • Bagaimana cara memahami apa yang terjadi saat layanan saya saling berkomunikasi?
  • Bagaimana cara mengupdate layanan tanpa berisiko mengalami pemadaman?
  • Bagaimana cara mengelola infrastruktur yang memungkinkan deployment saya?
Layanan perlu berkomunikasi satu sama lain.
Layanan harus saling berkomunikasi (klik untuk memperbesar)

Cloud Service Mesh membantu Anda mengatasi jenis tantangan ini dalam deployment berbasis layanan yang modern. Cloud Service Mesh mengandalkan infrastruktur yang dikelola Google Cloud, sehingga Anda tidak perlu mengelola infrastruktur sendiri. Anda berfokus pada pengiriman kode aplikasi yang memecahkan masalah bisnis Anda sekaligus mengizinkan Cloud Service Mesh mengelola kompleksitas jaringan aplikasi.

Mesh Layanan Cloud

Pola umum untuk mengatasi tantangan jaringan aplikasi adalah dengan menggunakan mesh layanan. Cloud Service Mesh mendukung mesh layanan dan pola deployment lainnya yang sesuai dengan kebutuhan Anda.

Mesh layanan standar.
Mesh layanan standar (klik untuk memperbesar)

Dalam mesh layanan biasa, hal berikut berlaku:

  • Anda akan men-deploy layanan ke cluster Kubernetes.
  • Setiap Pod layanan memiliki proxy khusus (biasanya Envoy) yang berjalan sebagai proxy file bantuan.
  • Setiap proxy file bantuan berkomunikasi dengan infrastruktur jaringan (bidang kontrol) yang diinstal di cluster Anda. Bidang kontrol memberi tahu proxy file bantuan tentang layanan, endpoint, dan kebijakan di mesh layanan Anda.
  • Saat Pod mengirim atau menerima permintaan, permintaan tersebut mengarah ke proxy file bantuan Pod. Proxy file bantuan menangani permintaan, misalnya, dengan mengirimkannya ke tujuan yang dimaksudkan.

Dalam diagram dalam dokumen ini dan dokumen Cloud Service Mesh lainnya, ikon merah muda enam sisi mewakili proxy. Bidang kontrol terhubung ke setiap proxy dan memberikan informasi yang diperlukan proxy untuk menangani permintaan. Panah di antara kotak menunjukkan arus lalu lintas. Misalnya, kode aplikasi di Service A akan mengirim permintaan. Proxy akan menangani permintaan dan meneruskannya ke Service B.

Model ini memungkinkan Anda memindahkan logika jaringan dari kode aplikasi. Anda dapat berfokus untuk memberikan nilai bisnis sekaligus membiarkan infrastruktur Anda menangani jaringan aplikasi.

Perbedaan Cloud Service Mesh

Cloud Service Mesh memiliki cara kerja yang mirip dengan model tersebut, tetapi dengan cara yang berbeda. Semuanya dimulai dengan fakta bahwa Cloud Service Mesh adalah layanan yang dikelola Google Cloud. Anda tidak menginstalnya, cluster tidak berjalan di cluster Anda, dan Anda tidak perlu memeliharanya.

Dalam diagram berikut, Cloud Service Mesh adalah bidang kontrol. Ada empat layanan di cluster Kubernetes ini, masing-masing dengan proxy file bantuan yang terhubung ke Cloud Service Mesh. Cloud Service Mesh memberikan informasi yang diperlukan proxy untuk merutekan permintaan. Misalnya, kode aplikasi di Pod yang termasuk dalam Service A akan mengirim permintaan. Proxy file bantuan yang berjalan bersama Pod ini menangani permintaan dan merutekannya ke Pod milik Service B.

Contoh mesh layanan dengan Cloud Service Mesh.
Contoh mesh layanan dengan Cloud Service Mesh (klik untuk memperbesar)

Lebih dari sekadar mesh layanan

Cloud Service Mesh mendukung lebih banyak jenis deployment dibandingkan mesh layanan biasa.

Kubernetes Multi-cluster

Dengan Cloud Service Mesh, Anda mendapatkan jaringan aplikasi yang berfungsi di seluruh cluster Kubernetes. Dalam diagram berikut, Cloud Service Mesh menyediakan bidang kontrol untuk cluster Kubernetes dalam us-central1 dan europe-west1. Permintaan dapat diarahkan di antara tiga layanan di us-central1, di antara dua layanan di europe-west1, dan antara layanan di dua cluster.

Contoh Kubernetes multi-cluster dengan Cloud Service Mesh.
Contoh Kubernetes multi-cluster dengan Cloud Service Mesh (klik untuk memperbesar)

Mesh layanan Anda dapat mencakup beberapa cluster Kubernetes di berbagai region Google Cloud. Layanan di satu cluster dapat berkomunikasi dengan layanan di cluster lain. Anda bahkan dapat memiliki service yang terdiri dari Pod dalam beberapa cluster.

Dengan load balancing global berbasis kedekatan Cloud Service Mesh, permintaan yang ditujukan untuk Service B akan diarahkan ke Pod terdekat yang dapat menyalurkan permintaan. Anda juga akan mendapatkan failover yang lancar. Jika Pod tidak aktif, permintaan akan otomatis beralih ke Pod lain yang dapat menayangkan permintaan tersebut, meskipun Pod ini berada di cluster Kubernetes yang berbeda.

Virtual machine

Kubernetes menjadi semakin populer, tetapi banyak workload di-deploy ke instance virtual machine (VM). Cloud Service Mesh juga menangani networking aplikasi untuk workload ini. Workload berbasis VM Anda memiliki interoperabilitas dengan workload berbasis Kubernetes.

Pada diagram berikut, traffic memasuki deployment Anda melalui Load Balancer Aplikasi eksternal. Fungsi ini dirutekan ke Service A di cluster Kubernetes di asia-southeast1 dan ke Service D pada VM di europe-west1.

Contoh VM dan Kubernetes dengan Cloud Service Mesh.
Contoh VM dan Kubernetes dengan Cloud Service Mesh (klik untuk memperbesar)

Google menyediakan mekanisme yang lancar untuk menyiapkan workload berbasis VM dengan Cloud Service Mesh. Anda hanya menambahkan flag ke template instance VM Compute Engine, dan Google akan menangani penyiapan infrastruktur. Penyiapan ini termasuk menginstal dan mengonfigurasi proxy yang memberikan kemampuan jaringan aplikasi.

gRPC tanpa proxy

gRPC adalah framework RPC open source kaya fitur yang dapat Anda gunakan untuk menulis microservice berperforma tinggi. Dengan Cloud Service Mesh, Anda dapat menghadirkan kemampuan jaringan aplikasi (seperti penemuan layanan, load balancing, dan pengelolaan traffic) ke aplikasi gRPC Anda. Untuk mengetahui informasi selengkapnya, lihat Cloud Service Mesh dan gRPC—layanan tanpa proxy untuk mesh layanan Anda.

Dalam diagram berikut, aplikasi gRPC mengarahkan traffic ke layanan berdasarkan cluster Kubernetes dalam satu region dan ke layanan yang berjalan pada VM di region yang berbeda. Dua layanan tersebut menyertakan proxy file bantuan, dan yang lainnya tanpa proxy.

Contoh aplikasi gRPC tanpa proxy dengan Cloud Service Mesh.
Contoh aplikasi gRPC tanpa proxy dengan Cloud Service Mesh (klik untuk memperbesar)

Cloud Service Mesh mendukung layanan gRPC tanpa proxy. Layanan ini menggunakan versi terbaru library gRPC open source yang mendukung xDS API. Aplikasi gRPC Anda dapat terhubung ke Cloud Service Mesh menggunakan API xDS yang sama dengan yang digunakan Envoy.

Setelah aplikasi Anda terhubung, library gRPC akan menangani fungsi jaringan aplikasi seperti penemuan layanan, load balancing, dan pengelolaan traffic. Fungsi ini terjadi secara native di gRPC, sehingga proxy layanan tidak diperlukan. Itulah sebabnya fungsi ini disebut aplikasi gRPC proxyless.

Ingress dan gateway

Untuk banyak kasus penggunaan, Anda perlu [menangani traffic yang berasal dari klien yang tidak dikonfigurasi oleh Cloud Service Mesh. Misalnya, Anda mungkin perlu memasukkan traffic internet publik ke microservice. Anda juga dapat mengonfigurasi load balancer sebagai reverse proxy yang menangani traffic dari klien sebelum mengirimkannya ke tujuan.

Dalam diagram berikut, Load Balancer Aplikasi eksternal memungkinkan traffic masuk untuk klien eksternal, dengan traffic yang dirutekan ke layanan di cluster Kubernetes. Load Balancer Aplikasi internal merutekan traffic internal ke layanan yang berjalan di VM.

Cloud Service Mesh dengan Cloud Load Balancing untuk ingress.
Cloud Service Mesh dengan Cloud Load Balancing untuk traffic masuk (klik untuk memperbesar)

Cloud Service Mesh bekerja sama dengan Cloud Load Balancing untuk memberikan pengalaman traffic masuk yang terkelola. Anda menyiapkan load balancer eksternal atau internal, lalu mengonfigurasi load balancer tersebut untuk mengirim traffic ke microservice. Pada diagram sebelumnya, klien internet publik menjangkau layanan Anda melalui Load Balancer Aplikasi eksternal. Klien, seperti microservice yang berada di jaringan Virtual Private Cloud (VPC) Anda, menggunakan Load Balancer Aplikasi internal untuk menjangkau layanan Anda.

Untuk beberapa kasus penggunaan, Anda dapat menyiapkan Cloud Service Mesh untuk mengonfigurasi gateway. Pada dasarnya, gateway adalah reverse proxy, yang biasanya menjalankan Envoy pada satu atau beberapa VM, yang memproses permintaan masuk, menanganinya, dan mengirimkannya ke tujuan. Tujuan dapat berada di region Google Cloud mana pun atau cluster Google Kubernetes Engine (GKE). Platform ini bahkan dapat menjadi tujuan di luar Google Cloud yang dapat dijangkau dari Google Cloud menggunakan konektivitas hybrid. Untuk mengetahui informasi selengkapnya tentang kapan harus menggunakan gateway, lihat Traffic masuk untuk mesh Anda.

Dalam diagram berikut, VM di region europe-west1 menjalankan proxy yang bertindak sebagai gateway ke tiga layanan yang tidak menjalankan proxy. Traffic dari Load Balancer Aplikasi eksternal dan Load Balancer Aplikasi internal dirutekan ke gateway, lalu ke tiga layanan.

Cloud Service Mesh yang digunakan untuk mengonfigurasi gateway.
Cloud Service Mesh digunakan untuk mengonfigurasi gateway (klik untuk memperbesar)

Beberapa lingkungan

Baik Anda memiliki layanan di Google Cloud, di infrastruktur lokal, di cloud lain, atau semua itu, tantangan dasar jaringan aplikasi Anda tetap sama. Bagaimana Anda mendapatkan traffic ke layanan ini? Bagaimana layanan ini berkomunikasi satu sama lain?

Dalam diagram berikut, Cloud Service Mesh merutekan traffic dari layanan yang berjalan di Google Cloud ke Service G, yang berjalan di cloud publik lain, serta ke Service E dan Service F, yang keduanya berjalan di pusat data lokal. Service A, Service B, dan Service C menggunakan Envoy sebagai proxy file bantuan, sedangkan Service D adalah layanan gRPC tanpa proxy.

Cloud Service Mesh yang digunakan untuk komunikasi di seluruh lingkungan.
Cloud Service Mesh digunakan untuk komunikasi di seluruh lingkungan (klik untuk memperbesar)

Saat menggunakan Cloud Service Mesh, Anda dapat mengirim permintaan ke tujuan di luar Google Cloud. Dengan demikian, Anda dapat menggunakan Cloud Interconnect atau Cloud VPN untuk merutekan traffic secara pribadi dari layanan di dalam Google Cloud ke layanan atau gateway di lingkungan lain.

Menyiapkan Cloud Service Mesh

Penyiapan Cloud Service Mesh terdiri dari dua langkah. Setelah Anda menyelesaikan proses penyiapan, infrastruktur Anda akan menangani jaringan aplikasi, dan Cloud Service Mesh akan selalu mengupdate semuanya berdasarkan perubahan pada deployment Anda.

Men-deploy aplikasi Anda

Pertama, Anda men-deploy kode aplikasi ke container atau VM. Google menyediakan mekanisme yang memungkinkan Anda menambahkan infrastruktur jaringan aplikasi (biasanya proxy Envoy) ke instance VM dan Pod Anda. Infrastruktur ini disiapkan untuk berkomunikasi dengan Cloud Service Mesh dan mempelajari layanan Anda.

Mengonfigurasi Cloud Service Mesh

Selanjutnya, Anda akan mengonfigurasi layanan global dan menentukan cara penanganan traffic. Untuk mengonfigurasi Cloud Service Mesh, Anda dapat menggunakan Konsol Google Cloud (untuk beberapa fitur dan konfigurasi), Google Cloud CLI, Traffic Director API, atau alat lain, seperti Terraform.

Setelah Anda menyelesaikan langkah-langkah ini, Cloud Service Mesh siap mengonfigurasi infrastruktur jaringan aplikasi.

Infrastruktur menangani jaringan aplikasi

Saat aplikasi mengirimkan permintaan ke my-service, infrastruktur jaringan aplikasi Anda (misalnya, proxy file bantuan Envoy) akan menangani permintaan sesuai dengan informasi yang diterima dari Cloud Service Mesh. Hal ini memungkinkan permintaan untuk my-service dirutekan dengan lancar ke instance aplikasi yang dapat menerima permintaan.

Pemantauan dan update berkelanjutan

Cloud Service Mesh memantau instance aplikasi yang membentuk layanan Anda. Dengan pemantauan ini, Cloud Service Mesh dapat mengetahui apakah suatu layanan responsif atau bahwa kapasitas layanan telah berubah—misalnya, saat Pod Kubernetes baru dibuat. Berdasarkan informasi ini, Cloud Service Mesh terus mengupdate infrastruktur jaringan aplikasi Anda.

Fitur

Fitur Cloud Service Mesh memberikan kemampuan jaringan aplikasi ke microservice Anda. Beberapa hal penting dibahas di bagian ini.

Bidang kontrol, health check, dan load balancing yang terkelola sepenuhnya

Anda ingin menghabiskan waktu untuk menyampaikan nilai bisnis, bukan mengelola infrastruktur. Cloud Service Mesh adalah solusi terkelola sepenuhnya, sehingga Anda tidak perlu menginstal, mengonfigurasi, atau mengupdate infrastruktur. Anda akan mendapatkan manfaat dari infrastruktur yang sama yang digunakan Google untuk health check dan load balancing global.

Dibangun berdasarkan produk open source

Cloud Service Mesh menggunakan bidang kontrol yang sama (xDS API) dengan project open source populer seperti Envoy dan Istio. Untuk melihat versi API yang didukung, lihat API bidang kontrol xDS.

Infrastruktur yang memberikan kemampuan jaringan aplikasi, baik Envoy maupun gRPC, bergantung pada kasus penggunaan Anda, juga merupakan open source, sehingga Anda tidak perlu khawatir terikat pada infrastruktur eksklusif.

Skala

Mulai dari solusi jaringan aplikasi satu kali hingga deployment mesh layanan masif dengan ribuan layanan, Cloud Service Mesh dibangun untuk memenuhi kebutuhan penskalaan Anda.

Penemuan layanan dan pelacakan endpoint serta backend Anda

Saat aplikasi Anda mengirimkan permintaan ke my-service, infrastruktur Anda akan menangani permintaan tersebut dengan lancar dan mengirimkannya ke tujuan yang benar. Aplikasi Anda tidak perlu mengetahui apa pun tentang alamat IP, protokol, atau kompleksitas jaringan lainnya.

Load balancing dan failover global

Cloud Service Mesh menggunakan load balancing global dan health check Google untuk menyeimbangkan traffic secara optimal berdasarkan lokasi klien dan backend, kedekatan backend, kondisi, dan kapasitas. Anda meningkatkan ketersediaan layanan dengan membuat traffic akan otomatis digagalkan ke backend yang responsif dengan kapasitas. Anda dapat menyesuaikan load balancing untuk mendistribusikan traffic guna mendukung kebutuhan bisnis Anda dengan benar.

Pengelolaan traffic

Pengelolaan traffic lanjutan, termasuk manipulasi permintaan dan pemilihan rute (berdasarkan nama host, jalur, header, cookie, dan lainnya), memungkinkan Anda menentukan cara traffic mengalir di antara layanan Anda. Anda juga dapat menerapkan tindakan seperti percobaan ulang, pengalihan, dan pemisahan traffic berbasis bobot untuk deployment canary. Pola lanjutan seperti injeksi kesalahan, pencerminan traffic, dan deteksi pencilan memungkinkan kasus penggunaan DevOps yang meningkatkan ketahanan Anda.

Kemampuan observasi

Infrastruktur jaringan aplikasi Anda mengumpulkan informasi telemetri, seperti metrik, log, dan trace, yang dapat digabungkan secara terpusat di Kemampuan Observasi Google Cloud. Setelah informasi ini dikumpulkan, Anda bisa mendapatkan insight dan membuat pemberitahuan sehingga jika terjadi kesalahan, Anda akan mendapatkan pemberitahuan.

Kontrol Layanan VPC

Anda dapat menggunakan Kontrol Layanan VPC untuk memberikan keamanan tambahan bagi resource dan layanan aplikasi Anda. Anda dapat menambahkan project ke perimeter layanan yang melindungi resource dan layanan (seperti Cloud Service Mesh) dari permintaan yang berasal dari luar perimeter. Untuk mempelajari lebih lanjut Kontrol Layanan VPC, lihat ringkasan Kontrol Layanan VPC.

Untuk mempelajari lebih lanjut cara menggunakan Cloud Service Mesh dengan Kontrol Layanan VPC, lihat halaman Produk yang didukung.

Langkah selanjutnya

Ini adalah dokumen lama yang terutama berlaku untuk API load balancing. Sebaiknya Anda tidak mengonfigurasi Cloud Service Mesh menggunakan API load balancing.