SIPA NURAENI

MICROSERVICES

Microservice atau dikenal juga sebagai (microservice architecture) adalah architectural style yang menyusun aplikasi sebagai kumpulan dari beberapa service.

     Microservice architecture memungkinkan untuk men-deliver aplikasi yang besar dan komplek dengan lebih cepat, lebih sering dan lebih stabil.

Dilihat dari viewpoint teknologi, setiap service memiliki beberapa karakteristik, diantaranya:


  • Dipisahkan berdasarkan business capabillities
  • Di-develop secara independent
  • Di-deploy secara independent
  • Setiap service berkomunikasi menggunakan network, misalkan (HTTP) melalui API (sync) atau melalui message queues (async)


     Pemodelan microservices didasarkan pada business domain, setiap service bersifat mandiri dan mengimplementasikan single business capability (Sahiti, 2019).

     Sebagai contoh mari kita lihat aplikasi e-commerce. Secara umum aplikasi e-commerce mempunyai fitur seperti dibawah ini:


  • Account management
  • Product catalog
  • Charting
  • Chat


     Pada konvensional arsitektur (atau lebih dikenal dengan nama monolithic architecture), semua fitur di atas akan digabungkan dalam satu codebase yang sama

     Dalam microservices architecture, setiap fitur tersebut akan dipisahkan dan menjadi satu service yang mengimplementasikan single business capability

Keuntungan menggunakan microservice



  1. Independent Development, setiap service dapat dengan mudah untuk didevelop berdasarkan pada fungsionalitas dari business domain yang akan di handle nya
  2. Independent Deployment, setiap service dapat di deploy dengan mudah dan independent, berdasarkan pada business domainnya
  3. Fault Isolation, Jika pada suatu saat terjadi kesalahan (error) pada satu service, maka service lainnya tidak akan ikut error
  4. Mixed Technology Stack, setiap service dapat di-develop dan di-deploy dengan menggunakan bahasa pemrograman dan technology stack yang berbeda, sesuai dengan kebutuhannya
  5. Granular Scalling, setiap service dapat di scale sesuai kebutuhannya, misalkan pada masa akhir - akhir Ramadhan biasanya terjadi lonjakan user yang belanja, maka service-service yang perlu di-scale adalah Product Catalog, Charting, dan Payment


Kerugian menggunakan microservice


  1. Troubleshooting complexity, microservice menyediakan semua kapabilitas dan fungsionalitas melalui komunikasi inter-microservice, yang meningkatkan potensi points of failure
  2. Increase latency, intraprocess communication antara microservice menjadi lebih lambat ketika dibandingkan dengan intraprocess yang terjadi pada monolithic application
  3. Operasional complexity, dengan puluhan, ratusan atau mungkin sampai ribuan mircoservice dalam real-world application, operation tim harus menghadapi complex infrastructure, deployment, monitoring, avaibility, backup dan management system
  4. Version control, karena microservices-based application ada kemungkinan untuk memiliki ribuan microservices, versioning dan management menjadi sedikit lebih komplek


Fitur menggunakan microservices


  1. Decoupling, setiap service diantara keseluruhan application memiliki sofat yang terpisah satu sama lain, sehingga keseluruhan aplikasi dapat dengan mudah di-develop, diubah dan di-scale
  2. Componentization, setiap service didesain sebagai komponen independen sehingga dapat dengan mudah diganti dan ditingkatkan
  3. Business Capabilities, microservices lebih simple dan dapat single business capability
  4. Autonomy, setiap developer dan tim microservices dapat bekerja secara independen, sehingga bisa meningkatkan kecepatan penge,bangan aplikasi secara keseluruhan
  5. Continous Delivery, memungkinkan lebih sering untuk merelease fitur baru atau meningkatkan fungsionalitas
  6. Responsibility, microservices tidak fokus pada aplikasi sebagai projek, tapi melihat aplikasi sebagai produk yang menjadi tanggung jawabnya

Posting Komentar

0 Komentar