Artikel kali ini akan membahas tentang microservices. Apakah Anda sudah familiar dengan istilah microservices? Atau istilah ini masih terdengar asing bagi Anda?
Jika Anda masih belum begitu tahu apa, sih, sebenarnya microservices yang banyak digunakan dalam istilah-istilah yang berkaitan dengan teknologi ini, Anda dapat kenal lebih dalam tentang istilah tersebut dengan membaca artikel ini.
Istilah microservices saat ini cukup hits seiring dengan banyak perusahaan yang mengembangkan software dan membuat berbagai macam aplikasi demi menjawab tantangan jaman era digital ini. Microservices adalah ‘sesuatu’ yang memungkinkan seorang developer mampu untuk menciptakan aplikasi yang mempunyai performa tinggi, scalable, bisa dipercaya, dan aman.
Yuk, simak sampai habis untuk lebih memahami istilah yang katanya IT banget ini.
Arsitektur Monolitik
Sebelum kita bahas lebih lanjut mengenai microservices, kita lebih dulu berkenalan dengan arsitektur monolitik yang sudah ada sebelum microservices.
Arsitektur monolitik sudah digunakan selama berpuluh-puluh tahun. Menggunakan pola ini, aplikasi ditempatkan pada satu unit sebagai file WAR (Web Application Resource) dalam kontainer. Artinya satu unit ini memuat banyak logika bisnis, web controller, REST API’s, DAO’s, dan lain-lain. Ini karena sesuai namanya yaitu ‘mono’ yang artinya satu.
Sederhananya, arsitektur monolitik adalah sebuah arsitektur di mana dalam membuat aplikasi, semua komponen ditempatkan bersama menjadi satu kesatuan seperti front-end dan back-end dalam satu aplikasi yang sama.
Kelebihan dari arsitektur monolitik adalah sederhana, mudah diuji dan di deploy. Sedangkan kekurangannya cukup banyak seperti jika aplikasi menjadi besar performa akan menurun, jika ingin melakukan perubahan teknologi maka akan merubah keseluruhan aplikasi, jika terdapat eror di salah satu fungsi maka akan berpengaruh terhadap keseluruhan aplikasi, dan masih ada beberapa lagi.
Apa itu Microservices?
Microservices muncul sekitar 11 tahun yang lalu sebagai contoh dari evolusi konvergen yang kadang-kadang terjadi pada software. Istilah tersebut dicetuskan oleh James Lewis dan Martin Fowler dari Thoughtworks, konsultan software; kemudian konsep yang mirip juga telah didiskusikan oleh Adrian Cockcroft, lalu juga di Netflix dan firma Silicon Valley lainnya. Amazon, Google, dan eBay adalah sebagian perusahaan yang secara mandiri sudah merancang pola arsitektural yang serupa.
Arsitek microservices mengurai aplikasi secara fungsinya dan deploy setiap layanan di kontainer berbeda. Pola ini membangun aplikasi dengan memecah kegunaannya menjadi sebuah layanan kolaboratif. Setiap layanan akan melakukan tugas yang spesifik dan berkaitan. Sederhananya, microservices artinya membagi aplikasi menjadi layanan yang lebih kecil namun saling terhubung satu sama lain, berbeda dengan monolitik.
Contohnya pada aplikasi e-commerce, akan ada customer service, layanan order, dll.
Setiap layanan akan dikembangkan dan di-deploy secara individu berdasarkan susunan teknologi masing-masing. Pola arsitekturnya berpengaruh pada hubungan aplikasi dan database. Setiap layanan punya skema database tersendiri dan tidak berbagi satu sama lain. Salah satu keuntungan dari layanan microservices yaitu karena masing-masing layanan punya database sendiri sehingga jenis database dan bahasa pemrograman bisa disesuaikan dengan kebutuhan setiap layanan.
Masa Depan Industri dengan Microservices
Dari perkembangan microservices selama 11 tahun ini, muncul sebuah pertanyaan ‘apakah arsitektur microservices akan menjadi suatu hal yang besar selanjutnya?’
Desain pada arsitektur microservices menyusun sebuah aplikasi sebagai kumpulan layanan yang sangat maintainable dan testable, berpasangan dengan bebas, deployable, diatur oleh kapabilitas bisnis, dan dimiliki oleh sebuah tim kecil. Arsitektur microservices memungkinkan aplikasi bekerja dengan cepat, frequent dan reliable, dan kompleks. Pola tersebut juga memungkinkan sebuah perusahaan untuk merevolusi susunan teknologinya.
Berikut beberapa kelebihan dan kekurangan dari microservices:
Kelebihan:
- Membuat developer dapat memahaminya dengan mudah
- IDE memuat proyek lebih cepat
- Kontainer mulai lebih cepat
- Aplikasi scalable, aman, dan reliable
- Maintenance lebih mudah
- Pengembangan layanan dapat dilakukan tanpa mempengaruhi aplikasi secara keseluruhan
- Tidak bergantung pada susunan teknologi (tidak ada hambatan pada penggunaan teknologi baru)
Kekurangan:
- Tidak mudah diuji
- Developer harus mengimplementasikan use case yang memperpanjang layanan tanpa sebuah transaksi terdistribusi
- Mengubah satu entitas pada database mempengaruhi setiap entitas yang sama pada database setiap layanan
- Deployment harus kompleks dan perlu konfigurasi untuk setiap layanan
- Butuh automasi yang tinggi untuk deployment
Jadi, jawabannya adalah mungkin. Besar kemungkinan microservices akan menjadi sebuah hal besar di industri IT untuk kedepannya.
Discussion about this post