Back to IF4031 Arsitektur Aplikasi Terdistribusi

Topic

Questions/Cues

  • Apa itu Service Mesh?

  • Apa fokus utama Service Mesh?

  • Apa saja fitur utama Service Mesh?

  • Apa itu Control Plane & Data Plane?

  • Bagaimana arsitektur Service Mesh?

  • Apa itu Pola Sidecar Proxy?

  • Apa bedanya dengan API Gateway?

Reference Points

  • Slides 05-IF4031-05d-2023-APIGateway.pdf

Apa itu Service Mesh?

Service Mesh adalah sebuah lapisan infrastruktur (infrastructure layer) khusus yang didedikasikan untuk mengelola dan mengontrol semua komunikasi antar layanan (service-to-service) dalam sebuah aplikasi terdistribusi. Lapisan ini memungkinkan semua konfigurasi jaringan dikelola dari satu titik pusat yang disebut control plane.

Tujuannya adalah untuk memisahkan logika jaringan dari logika bisnis. Dengan begitu, developer bisa fokus membangun fitur layanan, sementara Service Mesh menangani kompleksitas komunikasi jaringan seperti routing, keamanan, dan observabilitas.

Fokus Utama: Komunikasi Internal (East-West Traffic)

Berbeda dengan API Gateway yang fokus pada trafik masuk dari luar ke dalam sistem (North-South traffic), Service Mesh fokus pada komunikasi antar layanan di dalam sistem (East-West traffic). Ia menyediakan fungsionalitas yang mirip dengan API Gateway, tetapi untuk lingkup internal.

Contoh teknologi Service Mesh populer: Istio/Envoy, Linkerd, Consul, AWS App Mesh.

Fitur Utama Service Mesh

Service Mesh menyediakan serangkaian fitur canggih untuk mengelola komunikasi internal:

  • Observability: Menyediakan metrik, log, dan trace secara otomatis untuk semua layanan, memberikan visibilitas mendalam tentang bagaimana layanan berinteraksi.

  • Routing & Traffic Shaping: Pengaturan routing yang dinamis (misalnya, canary deployments, A/B testing), load balancing, dan manajemen trafik lainnya.

  • Resiliency: Mengimplementasikan pola ketahanan seperti retries, timeouts, dan circuit breakers secara otomatis.

  • Trust & Security: Mengamankan komunikasi antar layanan dengan menerapkan mTLS (mutual TLS) secara otomatis, serta mengelola sertifikat dan kebijakan akses (authorization).

  • Automatic Service Discovery: Secara otomatis mendeteksi dan mendaftarkan layanan baru saat mereka muncul atau hilang dari sistem.

  • Separation of Duties: Memungkinkan tim platform/operasi untuk mengelola jaringan secara independen dari tim pengembang.

Konsep Inti: Control Plane & Data Plane

Arsitektur Service Mesh secara fundamental terbagi menjadi dua bagian:

  1. Control Plane: Ini adalah “otak” dari Service Mesh. Fungsinya adalah untuk mengatur dan mendistribusikan konfigurasi ke semua proxy di dalam mesh.

    • Karakteristik: Volume trafik rendah, mengutamakan konsistensi konfigurasi di atas ketersediaan. Jika Control Plane mati sementara, trafik data tetap berjalan dengan konfigurasi terakhir.
  2. Data Plane: Ini adalah bagian yang menangani lalu lintas data/permintaan pengguna secara langsung. Terdiri dari serangkaian proxy (biasanya diimplementasikan sebagai sidecar) yang berjalan di samping setiap instance layanan.

    • Karakteristik: Volume trafik tinggi, mengutamakan kecepatan dan ketersediaan.

Pemisahan ini sangat penting untuk skalabilitas dan ketahanan. Jalur konfigurasi (Control Plane) tidak mengganggu jalur data (Data Plane).

Arsitektur & Pola Sidecar Proxy

Service Mesh diimplementasikan menggunakan pola Sidecar Proxy.

  • Sidecar Proxy: Sebuah proxy jaringan (seperti Envoy) di-deploy di samping setiap container aplikasi/layanan. Semua lalu lintas jaringan yang masuk dan keluar dari layanan tersebut akan dicegat dan dikelola oleh proxy ini.

  • Interaksi:

    1. Layanan A ingin berkomunikasi dengan Layanan B.

    2. Permintaan dari Layanan A dicegat oleh Sidecar Proxy-nya.

    3. Sidecar Proxy A, berdasarkan konfigurasi dari Control Plane, menerapkan kebijakan (keamanan, routing, dll.) dan meneruskan permintaan ke Sidecar Proxy B.

    4. Sidecar Proxy B menerima permintaan, menerapkan kebijakannya, lalu meneruskannya ke Layanan B.

Aplikasi itu sendiri tidak sadar bahwa ada proxy yang mencegat komunikasinya.

Perbedaan Service Mesh vs. API Gateway

AspekAPI GatewayService Mesh
Fokus UtamaMengelola trafik dari luar ke dalam sistem (North-South Traffic).Mengelola trafik antar layanan di dalam sistem (East-West Traffic).
TujuanMenyediakan satu titik masuk, melindungi, dan menyederhanakan akses ke backend API.Menyediakan komunikasi yang aman, andal, dan dapat diamati antar layanan internal.
PosisiBerada di “tepi” (edge) arsitektur, antara client dan sistem.Terdistribusi di seluruh arsitektur, berjalan di samping setiap layanan.
Fungsi KhasKomposisi API, monetisasi, manajemen siklus hidup API.mTLS otomatis, service discovery, circuit breaking, traffic shifting internal.
PenggabunganKeduanya sering digunakan bersama. API Gateway mengelola trafik masuk, lalu menyerahkannya ke layanan pertama dalam Service Mesh untuk komunikasi internal lebih lanjut.Sama.

Summary

Service Mesh adalah sebuah lapisan infrastruktur terdedikasi yang mengelola komunikasi antar layanan (East-West traffic) dalam arsitektur microservices melalui sebuah Control Plane terpusat dan Data Plane yang terdistribusi. Dengan menggunakan pola Sidecar Proxy untuk mencegat semua trafik, Service Mesh menyediakan fitur-fitur krusial seperti keamanan (mTLS), observabilitas, dan ketahanan (resiliency) secara transparan, membebaskan pengembang dari kompleksitas logika jaringan dan memungkinkan pengelolaan yang konsisten di seluruh sistem.