Microservice

Pengertian Microservices berarti membagi aplikasi menjadi layanan yang lebih kecil dan saling terhubung tidak seperti aplikasi monolitik.

Secara sederhana, arsitektur aplikasi Microservice ini menggunakan desain yang memecah aplikasi berdasarkan fungsinya secara spesifik. Tidak sekedar dengan memisahkan berdasarkan user-role atau subdomain saja, tetapi aplikasi akan di breakdown lebih rinci lagi dari sisi fungsionalitasnya. Aplikasi akan dirancang agar setiap fungsi bekerja secara independent.

Dan setiap fungsi dapat menggunakan teknologi stack yang sesuai dengan kebutuhan, walaupun itu artinya akan terdapat teknologi yang berbeda-beda dalam satu aplikasi besar.
Dengan pemisahan aplikasi berdasarkan fungsi-nya ini, pada akhirnya kita akan menemui keragaman teknologi dalam sebuah satu layanan digital.

Misalkan dari layanan blog yang telah dicontohkan diatas, kita bisa coba pecahkan aplikasi blog tersebut menjadi fungsi konten, user management, komentar, rangking, search dan lainnya.
Pada bagian fungsi konten mungkin kita menggunakan PHP dan mysql, tetapi pada komentar kita menggunakan Python dan Mongodb, sedangkan di search menggunakan nodejs dan elasticsearch untuk penyimpanan datanya.

Disini terlihat bahwa setiap fungsi / permasalahan teknis dapat diselesaikan dengan cara dan teknologi yang berbeda-beda.
Dalam konsep microservices, kita tidak hanya melalukan pemisahan di level aplikasi saja, tetapi dari sisi infrastruktur pula. Kita akan menemukan keragaman arsitektur infra, konfigurasi dan optimalisasi sistem yang berbeda, dan sering pula ditemukan jumlah dan spesifikasi server yang tidak sama antara service yang satu dengan yang lain.

Kelebihan Microservice

Berdasarkan pengertian tentang microservice yang sudah kita baca di atas, dapat kita simpulkan bahwa microservice memiliki kelebihan sebagai berikut:
  1. Aplikasi scalabale, secure dan reliable.
  2. Setiap service berdiri sendiri.
  3. Maintence-nya lebih mudah.
  4. Tidak ada hambatan dalam menggunakan teknologi baru.
  5. Setiap tim developer dapat mengembangkan setiap services=-nya tanpa ada mengganggu services yang lain.

Kekurangan Microservice

Selain memiliki banyak kelebihan, tentu microservice juga memiliki beberapa kekurangan, di antaranya adalah:
  1. Ketika satu entity pada database berubah maka setiap entity yang sama di setiap database service harus diubah
  2. Untuk beberapa kasus , sulit untuk menerapkan perubahan services, maka dari itu diperlukan perancangan yang matang.
  3. 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.
  4. Perlu automation yang tinggi dalam melakukan deployment.

Komentar

Postingan Populer