Contoh Nyata Sistem yang Menerapkan Microservices
1. Netflix
Latar Belakang
Netflix adalah salah satu pelopor dalam penggunaan arsitektur microservices. Pada awalnya, mereka menggunakan monolithic architecture, di mana semua fungsi aplikasi digabungkan dalam satu kesatuan kode besar. Seiring berkembangnya bisnis, terutama ketika pengguna Netflix meningkat pesat di seluruh dunia, arsitektur monolitik menjadi sulit untuk diskalakan dan dikelola. Proses deployment lambat, maintenance rumit, serta jika satu modul gagal, bisa berdampak pada seluruh sistem.
Untuk mengatasi masalah tersebut, Netflix melakukan transformasi besar-besaran dengan memecah sistemnya menjadi ratusan microservices yang dapat berjalan secara independen.
Arsitektur yang Digunakan
-
Microservices Domain
Setiap fungsi utama Netflix dipecah menjadi layanan kecil, misalnya:-
User Service → login, pendaftaran, manajemen akun.
-
Recommendation Service → algoritma personalisasi untuk rekomendasi film.
-
Streaming Service → pengelolaan server streaming, buffering, kualitas video.
-
Billing Service → pembayaran dan langganan.
-
-
API Gateway
Walaupun di backend ada ratusan service, pengguna hanya mengakses satu pintu masuk lewat API Gateway. Gateway ini yang meneruskan permintaan user ke service terkait. -
Komunikasi Antar Service
-
Menggunakan REST API dan gRPC.
-
Untuk kebutuhan real-time dan high throughput, mereka juga memakai message broker.
-
-
Infrastructure & Deployment
-
Seluruh infrastruktur Netflix berjalan di AWS Cloud.
-
Deployment menggunakan container dan pipeline CI/CD otomatis.
-
Sistem resiliency menggunakan Hystrix (circuit breaker) agar jika satu service gagal, tidak membuat seluruh aplikasi mati.
-
Keuntungan yang diperoleh: Netflix mampu melayani ratusan juta pengguna secara stabil, dengan sistem yang scalable, reliable, dan mudah menambahkan fitur baru.
2.Amazon (E-Commerce & AWS)
Latar Belakang
Amazon adalah salah satu e-commerce terbesar di dunia. Mereka memiliki ribuan fitur: katalog produk, keranjang belanja, sistem pembayaran, pengiriman, rekomendasi produk, ulasan, dan sebagainya. Jika semua fitur ini dijalankan dalam satu arsitektur monolitik, kompleksitas dan risiko kegagalan akan sangat tinggi.
Karena itu, Amazon memecah sistem mereka menjadi microservices architecture, di mana setiap bagian aplikasi ditangani oleh service terpisah.
Arsitektur yang Digunakan
-
Microservices Domain
-
Catalog Service → menampilkan daftar produk.
-
Cart Service → mengelola keranjang belanja.
-
Payment Service → transaksi pembayaran.
-
Order Service → pemrosesan pesanan.
-
Recommendation Service → rekomendasi produk berdasarkan riwayat belanja.
-
-
Team Ownership
Amazon menerapkan prinsip “You build it, you run it”, artinya setiap tim bertanggung jawab penuh atas service yang mereka buat, mulai dari pengembangan, pengujian, hingga operasi di production. -
Infrastruktur Cloud
-
Mereka menggunakan AWS (Amazon Web Services), yang sekaligus jadi produk utama mereka.
-
Untuk fungsi ringan, digunakan AWS Lambda (serverless).
-
Penyimpanan data menggunakan database terpisah per service (misalnya DynamoDB untuk rekomendasi, RDS untuk transaksi).
-
-
Komunikasi Antar Service
-
Sebagian besar melalui REST API.
-
Untuk komunikasi asinkron, mereka menggunakan event-driven architecture dengan message broker seperti Amazon SQS dan Kinesis.
-
Keuntungan yang diperoleh: Amazon dapat mengelola skala global dengan jutaan transaksi per detik, menjaga kecepatan inovasi, serta memastikan jika satu layanan gagal (misalnya sistem rekomendasi), layanan inti lainnya tetap berjalan.
3. Gojek (SuperApp Indonesia)
Latar Belakang
Gojek adalah contoh nyata di Indonesia yang sukses menerapkan microservices. Sebagai SuperApp, Gojek tidak hanya menyediakan layanan transportasi (GoRide, GoCar), tapi juga pesan antar makanan (GoFood), pembayaran (GoPay), logistik (GoSend), belanja (GoMart), dan banyak lagi.
Jika semua layanan ini diletakkan dalam satu aplikasi monolitik, pengembangan akan sangat lambat dan rawan error. Karena itu, Gojek membagi sistemnya menjadi ratusan microservices.
Arsitektur yang Digunakan
-
Microservices Domain
-
Transport Service (GoRide, GoCar).
-
Food Delivery Service (GoFood).
-
Payment Service (GoPay).
-
Logistic Service (GoSend, GoMart).
-
Promotion & Loyalty Service (voucher, diskon, poin).
-
-
Container & Orchestration
-
Semua service dijalankan dalam Docker container.
-
Pengelolaan dan scaling menggunakan Kubernetes.
-
-
Komunikasi Antar Service
-
gRPC untuk komunikasi cepat antar service.
-
Apache Kafka untuk event streaming, misalnya ketika pesanan makanan dibuat, event ini langsung dikirim ke layanan driver, pembayaran, dan notifikasi.
-
-
API Gateway
Seperti Netflix dan Amazon, Gojek juga menggunakan API Gateway, sehingga aplikasi mobile hanya perlu mengakses satu endpoint, meskipun di backend ada ratusan service. -
Scalability
-
Masing-masing layanan bisa diskalakan sesuai kebutuhan.
-
Misalnya: saat jam makan siang, GoFood Service di-scale lebih banyak dibandingkan GoRide.
-
Keuntungan yang diperoleh: Gojek bisa terus menambah layanan baru tanpa mengganggu layanan lama, sistem lebih stabil, dan mudah di-scale sesuai kebutuhan pengguna yang terus bertambah.
Komentar
Posting Komentar