Kodeloka
  1. Kodeloka
  2. Kelas Microservices
  3. Materi

Konsep Dasar ยท Modul 1 dari 24

Belajar Microservices - Intro

Pengenalan arsitektur Microservices, sejarah evolusi dari Monolith, alasan adopsi microservices di perusahaan tech, dan tantangan umum yang dihadapi.

1. Apa itu Arsitektur Microservices?

Microservices Architecture adalah gaya arsitektur sistem di mana aplikasi terdiri dari kumpulan layanan (services) yang berukuran kecil, terisolasi, dapat di-deploy secara independen, dan memiliki batas konteks (bounded context) yang jelas.

๐Ÿ’ก Karakteristik Utama Microservices:
  • Autonomous & Independent: Setiap service dapat di-build, di-test, dan di-deploy tanpa mengganggu service lainnya.
  • Single Responsibility: Setiap service hanya menangani satu domain bisnis spesifik (misal: Order Service, Payment Service, Notification Service).
  • Polyglot Technology: Bebas memilih bahasa pemrograman, framework, dan jenis database yang paling sesuai untuk tiap service.
  • Decoupled Data: Setiap service mengelola database miliknya sendiri tanpa mengizinkan akses tabel langsung dari service lain.

2. Mengapa Perusahaan Mengadopsi Microservices?

  • Organisasional (Conway's Law): Struktur aplikasi mencerminkan struktur tim. Tim kecil (2-Pizza Team) dapat bekerja secara independen pada service masing-masing.
  • Scalability Efisien: Hanya me-scale bagian service yang mengalami lonjakan trafik (misal: me-scale Payment Service saat Harbolnas, tanpa me-scale Notification Service).
  • Resilience (Isolasi Kegagalan): Jika satu service mengalami crash (misal Recommendation Service error), aplikasi utama (katalog & checkout) tetap dapat beroperasi normal.

3. Tantangan Nyata Microservices

Meskipun memiliki banyak keunggulan, Microservices membawa kompleksitas terdistribusi:

  • Latensi jaringan saat inter-service communication (Network Latency).
  • Konsistensi data terdistribusi (Distributed Transactions & Eventual Consistency).
  • Kompleksitas Observability (Distributed Tracing, Centralized Logging).