Last Updated on November 28, 2022 by
Siapa yang tidak kenal Gojek? Pernahkah Anda menggunakan beberapa layanan yang ada pada aplikasi tersebut seperti GoPay, GoFood, dan lainnya? Salah satu start-up besar ini mengimplementasikan microservice architecture dalam aplikasi mereka. Istilah ini menjadi tren dalam industri teknologi. Teknologi ini telah banyak diterapkan oleh perusahaan besar. Hal ini karena memungkinkan mereka untuk memberikan layanan lebih baik kepada pengguna. Lalu, apa itu microservice dan mengapa digunakan? Bagi kalangan software developer tentunya istilah ini cukup populer dalam pengembangan aplikasi. Pada artikel ini, istilah tersebut akan dikupas tuntas mulai dari pengertian hingga kelebihan dan kekurangan dimiliki. Namun, sebelum mengenal microservice ada baiknya paham dahulu dengan yang namanya arsitektur monolitik atau monolithic architecture sehingga bisa muncul microservice ini. Simak sampai habis, ya!
Table of Contents
Monolithic Architecture
Terdapat pendekatan tradisional disebut monolitik, yaitu kebalikan dari microservice architecture. Sebelum munculnya microservice, pengembang biasanya menggunakan arsitektur monolitik ini dalam membangun aplikasi. Monolitik terdapat kata mono yang artinya satu. Monolitik sendiri merupakan pendekatan arsitektur yang mana dalam pembuatan aplikasi, semua komponen menjadi satu kesatuan. Dalam artian, fornt-end dan back-end menjadi satu.
Ada beberapa kelebihan mengapa arstitektur ini digunakan, seperti mudah dibangun, diuji dan di-deploy. Namun, ada beberapa kelemahan yang dimiliki sehingga banyak yang beralih ke microservice. Ketika terjadi error pada salah satu fungsi aplikasi, maka hal ini akan mempengaruhi keseluruhan aplikasi. Sama halnya jika ingin mengubah satu fitur, juga harus merombak keseluruhan aplikasi. Hal ini membuat arsitektur monolitik menjadi tidak fleksibel. Selain itu, jika aplikasi berkembang menjadi besar dan pengguna atau akses berkembang, performa dari aplikasi akan menurun. Kelemahan inilah menyebabkan banyak yang beralih ke microservice architecture.
Apa itu Microservice?
Jika dilihat dari istilahnya, terdapat kata micro dan service. Micro berarti kecil, dan service berarti layanan. Microservice architecture atau arsitektur layanan mikro merupakan pendekatan arsitektur perangkat lunak yang mana satu aplikasi dipecah menjadi aplikasi kecil yang disebut sebagai layanan. Mereka saling terhubung satu sama lain di dalamnya dengan bantuan API. Di samping itu, layanan ini dijalankan secara independen, sehingga untuk bahasa pemrograman ataupun database dapat berbeda pada tiap layanannya yang paling sesuai dengan kebutuhannya.
Karakteristik Microservice
Sebelum membahas apa yang menjadi kelebihan dan kekurangan dari microservice architecture, ada baiknya mengenal beberapa karakteristik yang dimiliki oleh microservice, antara lain:
1. Selalu Berkembang (Evolusioner)
Dengan hadirnya microservice yang memberikan fleksibilitas, aplikasi dapat lebih mudah untuk beradaptasi sesuai kondisi yang ada. Fitur-fitur dalam setiap komponen juga lebih mudah untuk berevolusi. Misalnya, dalam sebuah aplikasi ingin mengembangakan suatu fitur penting/tambahan karena adanya peluang makin berkembangnya aplikasi. Dengan adanya microservice memungkinkan Anda untuk menambah fitur tersebut tanpa harus mengubah aplikasi utama. Tanpa adanya hal tersebut, tentunya akan sangat merepotkan dan biaya yang dikeluarkan juga menjadi mahal.
2. Mengurangi Risiko Kegagalan
Berbagai fitur dan fungsi yang terdapat dalam aplikasi akan saling mem-backup kendatipun layanan pada microservice berjalan sendiri seperti yang disebutkan sebelumnya. Dengan adanya hal tersebut, tentunya ketika ada kegagalan atau kerusakan dalam suatu fitur dapat dihindari atau diminimalisasi dan memungkinkan komponen lain tidak terpengaruh akan hal tersebut.
3. Dapat Berjalan Sendiri
Microservice memiliki karakteristik, yaitu tiap layanannya mampu berjalan sendiri atau desentralisasi. Mengapa? Karena metode kelola yang terpusat tidak optimal, sehingga microservice menggunakan sistem paralel yang memudahkan dalam mengelola tiap fiturnya. Tidak ada sinkronisasi dalam setiap fiturnya pada aplikasi. Satu fitur dengan fitur lainnya memungkinkan untuk dibangun menggunakan bahasa pemrograman yang berbeda sesuai dengan kebutuhan layanan mereka. Jadi, tidak heran jika dalam mengembangan aplikasi menggunakan microservice memiliki tim developer yang berbeda dengan tim developer aplikasi utama.
4. Proses Routing Sederhana
Karakteristik microservice selanjutnya adalah proses routing-nya yang sederhana. Ketika ada suatu permintaan, maka suatu fitur tidak perlu berkoordinasi atau menyinkronkannya dengan fitur lain. Hal ini karena di dalam microservice terdiri dari fitur-fitur kecil. Jadi tidak akan menjadi hambatan atau gangguan, sehingga tidak perlu melakukan proses yang lama.
5. Banyak Komponen
Ada banyak komponen yang ada pada microservice karena terbaginya menjadi banyak fitur atau layanan. Fitur ini tentunya membutuhkan komponennya sendiri agar dapat melakukan layanan tersebut. Agar tiap unitnya tetap terhubung, maka dibutuhkan REST API.
6. Relevan dengan Bisnis
Karena dapat dibagi menjadi berbagai layanan, hal ini akan membantu dalam bisnis agar lebih optimal dan maksimal dalam memberikan layanan dan jasa ke pelanggan. Jadi, tidak hanya fokus pada pengembangan produk tetapi juga fokus tim yang mempunyai fungsi dan tanggung jawab yang berbeda-beda. Jika dibandingkan dengan satu tim besar yang mengurus seluruh project, maka akan memperlambat proses pengerjaan.
Kelebihan Microservice
Berikut ini adalah kelebihan-kelebihan yang dimiliki oleh microservice berdasarkan karakteristik yang dijelaskan sebelumnya sehingga banyak industri teknologi yang mengadopsi arsitektur ini.
- Adanya kebebasan dalam mengembangkan banyak fitur.
- Dapat menggunakan bahasa pemrograman lebih dari satu pada tiap fitur yang berbeda sesuai dengan bahasa pemrograman yang lebih cocok digunakan dan sesuai dengan kebutuhan.
- Erroryang terjadi lebih mudah diatasi karena dapat mengisolasi error tersebut pada area tertentu, sehingga tidak mempengaruhi layanan lainnya.
- Leluasa dalam meng-upgradedan mengatur sistem, seperti menambah resource.
- Proses deploydapat dilakukan dengan individual, sehingga proses CI/CD dapat bekerja lebih efisien dan tim developer tidak perlu bergantung pada tim lain yang membuat layanan yang berbeda.
- Maintenanceatau pemeliharaan yang lebih mudah karena tiap tim developer hanya me-maintenance layanan yang mereka pegang saja.
- Aman (secure) karena arsitektur ini dirancang untuk mampu mengatasi kegagalan yang mungkin terjadi.
Kelemahan Microservice
Ada kelebihan adapula kelemahan jika menggunakan microservice architecture. Berikut adalah kelemahannya.
- Pengujian cukup sulit karena penyebaran kode terdistribusi pada tiap fiturnya.
- Menggunakan microservice architecturememungkinkan sistem menjadi lebih kompleks karena ada framework, bahasa pemrograman, dan module yang lebih banyak.
- Karena layanannya berjalan independen dan kompleks, koordinasi antar layanan menjadi cukup rumit.
- Karena tiap layanannya membutuhkan server tersendiri, tentunya membutuhkan biaya yang tidak sedikit.
- Perlu banyaknya automationdalam melakukan deployment.
- Dapat meningkatkan latensi antar layanan.
Contoh
Beberapa contoh perusahaan besar yang mengadopsi microservice architecture ini, yaitu
- Amazon
- Netflix
- Uber
- Grab
- Gojek
- PayPal
Itulah beberapa hal tentang microservice architecture yang perlu Anda pahami. Hal ini tentunya dapat menjadi pertimbangan ketika perusahaan memiliki peluang untuk berkembang atau sedang bertumbuh. Namun, ketika Anda hanya ingin membangun project aplikasi kecil atau aplikasi yang memang tidak dikembangkan lebih lanjut, microservice ini bukanlah hal yang cocok untuk diterapkan karena mengingat sistemnya yang lumayan kompleks dan biaya yang dikeluarkan cukup mahal. Maka perlu dipertimbangkan untuk menggunakan monolithic. Untuk informasi seputar teknologi lainnya dapat Anda simak di Appkey.id, ya!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.