Microservices merupakan salah satu tren arsitektur yang banyak digunakan oleh para developer pada saat ini, dengan Microservices dapat membantu mempermudah developer dalam pengembangan aplikasi yang high performance, scalable, reliable dan secure. Karena pada Microservices setiap bagian terpisah dalam pengembangannya.
Microservices merupakan pengembangan aplikasi dalam sekala besar yang dibangun sebagai rangkaian dari modul layanan. Setiap modul mendukung tujuan bisnis yang spesifik dan digunakan secara mudah. Contoh penggunaan Microservices pada aplikasi e-commerce yang memiliki beberapa fitur, seperti fitur pengguna, produk, dan transaksi. Fitur-fitur tersebut dikembangkan menggunakan service yang berbeda atau aplikasi yang berbeda dan database yang berbeda pula. Sehingga dalam pengembangannya seorang developer aplikasi tersebut yang menguasai salah satu bahasa pemrograman tidak wajib menggunakan bahasa pemrograman yang sama dengan developer lainnya.
Gambar diatas merupakan skema microservices dalam aplikasi e-commerce yang dibagi menjadi tiga services.
Salah satu karakteristik yang dimiliki Microservices yaitu Organized around Business Capabilities sehingga pada saat pengembangan akan dibagi menjadi beberapa tim bagian, seperti tim UI, tim server (middleware specialized), dan tim database.
Salah satu karakteristik yang dimiliki Microservices yaitu Organized around Business Capabilities sehingga pada saat pengembangan akan dibagi menjadi beberapa tim bagian, seperti tim UI, tim server (middleware specialized), dan tim database.
Microservices umumnya akan menggunakan pustaka/library yang sudah dikembangkan oleh tim. Library dianggap sebagai komponen yang saling terintegrasi pada program dan pemanggilan fungsi. sedangkan services merupakan keseluruhan proses yang verkomunikasi dengan beberapa mekanisme API atau pemanggilan prosedur remot.
Kelebihan Microservices
1. Aplikasi scalable, reliable, dan secure,
2. Pemeliharaan lebih mudah.
3. Stand alone services.
4. Setiap developer dapat mengembangkan aplikasi service tanpa menggangu aktifitas services lainnya.
Kekurangan
1. Ketika ada bug pada services lebih rumit untuk dideteksinya.
2. Deployment yang kompleks, perlu konfigurasi untuk menjalankan setiap services karena memiliki runtime yang berbeda, tidak seperti aplikasi monolitik yang memiliki sistem tinggal upload, deploy dan beres.
0 Komentar