skip to Main Content

Arsitektur Monolithic vs Microservices

Mengenal Arsitektur Monolithic dan Microservices dalam pengembangan aplikasi

Akhir-akhir ini kita sering mendengar istilah Microservices di dunia teknologi. Istilah yang sedang populer ini diyakini mampu memberikan pilihan solusi dalam membangun sebuah aplikasi yang efisien pada proses dan efektif dalam pengembangan. Terlebih lagi harus mampu tetap berfungsi baik pada saat mendapatkan lonjakan pengunjung. Kali ini akan dibahas dua cara perancangan sebuah infrastruktur aplikasi. Perancangan infrastruktur ini sangat penting, karena sangat berpengaruh dalam suatu proses pengembangan aplikasi.

Monolithic 

Arsitektur Monolithic vs Microservices

Monolithic adalah arsitektur dimana keseluruhan kode akan dikompilasi menjadi satu aplikasi (biasanya menjadi satu binary atau artifact) dimana aplikasi tersebut menjalankan seluruh proses yang dibutuhkan. Kebutuhan akan komunikasi kepada aplikasi atau service lain bisa jadi tidak ada, karena aplikasi ini telah mencakup seluruh kode yang dibutuhkan.

Microservices

Arsitektur Monolithic vs Microservices

Arsitektur microservices, atau sederhananya microservices adalah pendekatan SDLC yang didasarkan pada aplikasi yang lebih besar yang dibangun sebagai kumpulan modul fungsional kecil. Modul fungsional ini dapat diterapkan secara independen, dapat diskalakan, menargetkan sasaran bisnis tertentu, dan berkomunikasi satu sama lain melalui protokol standar seperti permintaan / respons HTTP dengan API sumber daya. 

Berbeda dari monolithic, infrastruktur microservices membagi layanan-layanan yang ada menjadi bagian-bagian yang lebih kecil. Misalkan ada server khusus untuk memproses layanan antrian, layanan hosting khusus untuk antarmuka pengguna, server khusus untuk manajemen database, dan sebagainya.

Perbandingan Monolithic dan Microservices

Jika kita bandingkan maka bisa kita bedakan sebagai berikut :

  • Monolithic
  • Jika aplikasi makin kompleks dan penggunanya makin banyak, kenaikan biaya yang dibutuhkan lebih besar daripada jika menggunakan microservices.
  • Satu server untuk menangani semua layanan.
  • Tidak bisa menggunakan modul yang tidak terinstall pada server utama, misalnya akan menggunakan no-sql atau sql, nodejs dan lain sebagainya.
  • Proses update aplikasi akan berimbas ke seluruh aplikasi.
  • Seluruh code atau component menjadi satu server.
  • Latensi komunikasi antar modul sangat rendah karena berada dalam server yang sama.

 

  • MicroServices
  • Aplikasi scalable, secure dan reliable.
  • Setiap layanan memiliki infrastruktur sendiri.
  • Karena setiap layanan memiliki infrastruktur sendiri, bisa dengan mudah membuat aplikasi tanpa memikirkan hubungan / ketergantungan module dengan layanan yang lain. 
  • Proses pembaruan aplikasi hanya melingkupi layanan yang terkait.
  • Codenya berbasis layanan. harus memiliki dokumentasi yang lebih dari infrastruktur Monolithic
  • Proses Scalingnya bisa menggunakan beberapa metode, scaling up dan scaling side
  • Ada kemungkinan komunikasi antar modul-nya mengalami kegagalan. Untuk perlu dan harus selalu mempersiapkan cara handlenya.

Kapan Microservices digunakan?

Saat bekerja dengan aplikasi monolithic, dan aplikasi tersebut berkembang hingga ke tingkat di mana ada masalah dalam penskalaan atau mungkin, saat Anda tidak dapat menggunakan kembali komponen di berbagai proyek atau platform dan saat mengimplementasikan fitur baru menjadi menyakitkan dan lebih rentan kesalahan, maka Anda harus menggunakan layanan mikro.

Saat memulai aplikasi yang lebih baru, Anda pasti ingin aplikasi tersebut mudah diskalakan, dipelihara, dapat diterapkan, dan dapat diuji. Dengan menggunakan microservices, ini dapat diimplementasikan dengan lebih efisien dan digunakan di berbagai platform.

Rangkuman

Microservice dan monolithic digunakan pada kebutuhan yang berbeda. Microservice adalah suatu arsitektur dimana terdapat banyak service yang saling berkomunikasi satu sama lain, dimana masing-masing service memiliki masing-masing fungsi yang terfokus. Monolitik bukan berarti tidak modular, kita bisa saja memiliki kode modular atau monolitik.

Pastikan sesuai dengan kebutuhan aplikasi yang akan dikembangkan, jika aplikasi memiliki skala yang kecil maka penggunaan arsitektur monolithic menjadi pilihan yang tepat, namun jika aplikasi yang akan dikembangkan merupakan aplikasi besar dengan berbagai fitur, arsitektur microservices dapat menjadi pilihan yang sangat baik. 

 

Sumber :

https://blog.devgenius.io/everything-a-developer-must-know-about-microservices-dae854782ab

https://kutu.dev/artikel/microservice

 

Penulis :

Hasan Khairullah

Application Developer di PT Xsis Mitra Utama

X
wpChatIcon
Back To Top