Arsitektur Microservices berdasarkan kumpulan services yang dapat saling berinteraksi. Ciri-ciri services pada microservices:
- Fine grained, artinya service melakukan fungsi yang spesifik.
- Lightweight, artinya cepat dan tidak menghabiskan server resources.
- Loosely Coupled, artinya diantara service tidak ada ketergantungan dengan serivices lainnya.
Keunggulan Microservices
- Karena bersifat loosely coupled, ketergantungan antara service tidak ada atau sangat rendah, berarti modularity services sangat baik.
- Memungkinkan paralel development, service yang berbeda dapat didevelop oleh team yang berbeda bahkan dengan teknologi yang berbeda.
- Skalabilitas, jika desain tepat, microservices memudahkan pengembangan selanjutnya.
Kelemahan Microservices
- Umumnya biaya infrastructure lebih mahal dibandingkan dengan Arsitektur Monolitik.
- Testing integrasi yang kompleks.
- Service management yang kompleks.
- Bisa terjadi nanoservice, dimana service yang dikembangkan terlalu spesifik terhadap fungsi tertentu, bukan pada bisnis logic.
Penyebab Kegagalan Project Microservices
- Kurangnya pengetahuan dan skill dalam merancang arsitektur.
- Tidak adanya planning yang jelas, disini termasuk perencanaan scability dan waktu pengerjaan.
- Sering terjebak dengan masalah anti pattern atau service yang terlalu detail dan spesifik.