Portal/Notes πŸ“
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

Monolit VS Microservice | Faisal Affan