Pendahuluan

Sebelum memasuki konsep microservice itu sendiri, ada baiknya memahami seperti apa trend daripada aplikasi web yang dikembangkan.

Perlu satu dua pertemuan tersendiri untuk membahas rinci perbagiannya. Jadi saya hanya akan membuat ringkasannya saja. Gambar diatas saya gambar langsung dari presentasi seorang pakar teknologi disebuah seminar teknologi. Saya lupa sumbernya, karena catatan ini sudah saya buat lama sekali. Saya akan update kalau sumbernya sudah ketemu.

Pada tahun 2008, tren aplikasi web adalah menggunakan arsitektur monolotik, yaitu arsitektur dasar dari aplikasi berbasis web. Klien akan terhubung ke satu server utama ketika mengakses ingin konten. Jika ingin mengakses dari handphone, maka developer akan menyiapkan website untuk mobile version-nya. Tahun 2010, teknologi mulai berkembang. Smartphone mulai bermunculan. Para pengembang mulai mengembangkan aplikasi untuk smartphone. Sejak saat itu, banyak pihak web raksasa yang mulai menyediakan API untuk para pengembang bebas menggunakan data milik mereka. Seperti Twitter, kita bisa menggunakan data-data twitter untuk aplikasi buatan kita sendiri. Sampai akhirnya teori microservice, dengan memecah service menjadi bagian-bagian kecil, mulai digunakan pada aplikasi web modern saat ini. Kalau dulu, aplikasi web biasanya memecah bagian-bagian aplikasi menggunakan kaidah MVC (Model View Controller). Sedangkan microservice memecahnya berdasarkan fungsi. Misal dalam aplikasi toko online, service untuk order akan dipisah dengan service untuk pengiriman.

Monolithic vs Microservice

Monolithic

Strength
Weakness
Faster initial development
easy testing
easy to monitor
complexity in growing code base
longer development cycle
harder to scale

 

Microservice

Strength
Weakness
Agile
Highly scalable
Better organized and easy to learn
Duplicates
More moving parts
Harder to test
Complex distributed system
Increased memory consumption

 

Why Microservice?

Kesimpulannya, arsitektur ini mudah untuk di maintain. Arsitektur yang fleksible, bisa memudahkan bila suatu saat dibuang atau ditambah resourcenya. Ketika ada bagian yang harus dirubah, tidak saling mengganggu kinerja bagian yang lain.