Microservice



MICROSERVICES

Microservices berarti membagi aplikasi menjadi layanan yang lebih kecil dan saling terhubung tidak seperti aplikasi monolitik. Setiap microservice merupakan aplikasi kecil yang memiliki arsitektur heksagonal sendiri yang terdiri dari logika beserta berbagai adapternya (bahasa pemrograman, dll).

Pola arsitektur Microservice secara signifikan mempengaruhi hubungan antara aplikasi dan database. Alih-alih berbagi skema database tunggal dengan services lainnya, masing-masing services memiliki skema database tersendiri. Di satu sisi, pendekatan ini bertentangan dengan gagasan model data enterprise-wide. Selain itu, sering kali menghasilkan duplikasi beberapa data. Namun, memiliki skema database per service sangat penting jika ingin mendapatkan keuntungan dari layanan microservice. Masing-masing service memiliki database sendiri. Selain itu, services dapat menggunakan jenis database dan bahasa pemrograman yang paling sesuai dengan kebutuhannya.


Jadi intinya microservice yaitu membagi service ke bagian yang lebih kecil dimana service — service tersebut saling berhungan satu sama lain.Selain itu, dalam setiap services yang dibuat bisa menggunakan teknologi yang berbebeda.

Sedangkan untuk implementasi ke web, android, iOS dll tidak bisa secara langsung. Dimana kita harus membuat terlebih dahulu yang namanya API Gateway. API Gateway memiliki tugas seperti load balancing, caching, access controll , API metering, dan monitoring.

Kelebihan

  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 mengganngu services yang lain


Kekurangan

  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 jadi perlu perancangan yang matang.
  3. Deployment yang kompleks, perlu konfigurasi untuk menjalankan setiap services karena memiliki runtime yang berbebda, tidak seperti aplikasi monolitik tinggal upload , deploy dan beres.
  4. Perlu automation yang tinggi dalam melakukan deployment.


Posting Komentar

0 Komentar