Programming
Monolit VS Microservice
Perbandingan antara arsitektur monolit dan microservice β kelebihan, kekurangan, dan kapan masing-masing cocok digunakan.
Versi Bahasa Indonesia. Baca dalam Bahasa Inggris
Monolit
- Aplikasi tunggal, semuanya di dalam satu kesatuan: UI, backend, database, dll.
- Kelebihan:
- Arsitektur yang disederhanakan.
- Lebih sedikit waktu mengkhawatirkan kompleksitas sistem terdistribusi.
- Lebih sedikit waktu mengkhawatirkan deployment sistem.
- Kekurangan:
- Skalabilitas, sulit untuk diskalakan.
- Terkadang sulit untuk di-debug. Misalnya memory leak yang terjadi di awal-awal Netflix.
- Jika satu bagian program mati, maka semuanya mati.
Microservice
- Pendekatan untuk mengembangkan satu aplikasi sebagai sekumpulan layanan kecil. Masing-masing berjalan dalam prosesnya sendiri dan berkomunikasi dengan mekanisme yang ringan.
- Kelebihan:
- Separation of concerns.
- Modularitas dan enkapsulasi.
- Skalabilitas, mudah melakukan horizontal scaling dan partisi workload.
- Virtualisasi: Disarankan menggunakan lingkungan virtual untuk deployment yang lebih sederhana (sumber daya sesuai permintaan & auto scaling).
- Kekurangan:
- Jauh lebih kompleks untuk dibangun.
- Rawan terhadap partisi jaringan, lihat [[cap_theorem]] untuk detail lebih lanjut.
Edit on GitHub
Last updated on