Arsitektur microservices adalah model arsitektur aplikasi yang memisahkan aplikasi menjadi beberapa komponen yang independen yang dapat di-deploy dan diubah tanpa mempengaruhi komponen lainnya. Dalam arsitektur ini, setiap komponen aplikasi (atau “microservice”) diimplementasikan sebagai aplikasi yang berdiri sendiri, yang dapat dikembangkan, di-deploy, dan diubah secara independen.
Komponen yang dipisah bisa dikategorikan oleh beberapa pilihan, misal berdasarkan module atau fitur pada sebuah system, berdasarkan divisi team pada perusahaan, atau bisa berdasarkan teknis system seperti presentation layered, bussiness layered, dan database layered.
Kelebihan arsitektur microservice adalah lebih mudah untuk di-scaling secara parsial. Jika salah satu bagian dari aplikasi mengalami masalah, hanya bagian tersebut yang terpengaruh, sehingga mengurangi dampak pada seluruh sistem. Selain itu, arsitektur ini juga lebih mudah untuk dikembangkan dan diperbarui, karena setiap komponen dapat dikembangkan dan diperbarui secara independen.
Kekurangan dari arsitektur microservice adalah lebih sulit untuk di-debug dan di-maintain karena setiap komponen berada dalam lingkungan yang terpisah. Komunikasi antar komponen menjadi lebih rumit, sehingga diperlukan konfigurasi yang baik dan infrastruktur yang kuat untuk mengelola komunikasi tersebut. Selain itu arsitektur microservice juga membutuhkan resource sdm dan tim divisi yang tidak sedikit yang bisa bekerja secara independen.
Dari gambaran mengenai Microservices diatas seharusnya kita bisa menyimpulkan kalau arsitektur ini cukup rumit namun memudahkan untuk aplikasi / system yang memiliki kompleksitas yang tinggi.
Pada dasarnya Tolak ukur kapan Microservices bisa dilihat dari kebutuhan aplikasi itu sendiri apabila aplikasi tersebut memiliki kriteria sebagai berikut maka perlu Anda pertimbangkan untuk menggunakan Arsitektur Microservices:
Sering terjadi kendala atau permasalahan sistem dikarenakan Transfer rate yang tinggi dan menurunnya performa Server.
Membutuhkan pengembangan sesuai kebutuhan seperti DB, Bahasa perograman dan stack lain sesuai kebutuhan untuk setiap modul secara terpisah sehingga membutuhkan Team Dev yang banyak pula.
Memiliki skala bisnis yang Besar seperti E-Commerce sehingga dibutuhkan realibilitas yang tinggi dan securoty yg baik.
Project atau Produk memiliki nilai jangka Panjang.
Pada dasarnya Arsitektur suatu aplikasi digunakan sesuai kebutuhan dan bisa digunakan dengan baik pada porsinya, microservice bisa digunakan sebagaimana mestinya apabila tepat pada flow system yg tepat sebaliknya microservices juga akan mempersulit jalannya flow sistem apabila tidak disesuaikan dengan porsinya.
sumber:
https://badr.co.id/software-arsitektur-microservices-vs-monolitik/