Assalamu‘alaikum wr. wb.
Halo gais! Saat ini, banyak sekali Perusahaan-perusahaan Besar Teknologi telah memanfaatkan Microservices ke dalam Software mereka. Dan beberapa Aspek pada Perangkat Lunak telah dilengkapi dengan Microservices adalah di bidang E-Commerce, Jasa Transportasi, Properti, dan lain-lainnya. Contohnya, jika kita menonton Layanan Streaming Video/Film seperti Netflix dan juga mengendarai Transportasi seperti Gojek dan Grab telah menggunakan Teknologi ini. Lantas, apa itu Microservices dalam Arsitektur Perangkat Lunak? Mari kita bahas pada Artikel ini sampai tuntas.
Sumber Artikel Materi : Niagahoster.co.id, Softwareseni.co.id (Blog), dan Glints.com
A. Pengertian Microservices
Microservices Architecture E-Commerce Application (Sumber : Guru99.com) |
Microservices adalah desain arsitektur untuk membuat aplikasi dari banyak unit layanan yang terpisah namun masih saling berhubungan. Setiap unit layanan dalam aplikasi menjalankan fungsi yang berbeda, namun tetap saling mendukung.
Dengan kata lain, microservices sama dengan membangun aplikasi dalam aplikasi. Contohnya, penerapan Microservices architecture pada super-app seperti Shopee. Dalam satu aplikasi, Shopee menggunakan beberapa microservice untuk berbagai jenis service-nya seperti Shopee Food, ShopeePay, Shopee Mall, dsb. Atau untuk contoh lainnya seperti Gojek memiliki Microservices seperti GoRide, GoPay, GoFood, GoSend, dsb.
Istilah microservices sebenarnya baru muncul sejak tahun 2005. Saat Dr. Peter Rodgers berbicara tentang layanan microgrid di konferensi komputasi awan. Dan sekarang sekitar 85% perusahaan telah mengadopsi Microservices Architecture.
Riset lain menunjukkan, microservices berhasil meningkatkan efisiensi karyawan, customer experience, serta menghemat biaya pengembangan pada 63% perusahaan. Sebab dengan arsitektur ini, setiap tim punya kewenangan sendiri sehingga lebih gesit mengeksekusi rencana. Dan karena perusahaan bisa mengembangkan sebagian layanan saja, biaya yang dikeluarkan pun jauh lebih hemat, tapi rilisnya lebih cepat.
Karena layanan bisa segera dipakai konsumen, mengumpulkan feedback untuk peningkatan service pun lebih cepat. Selain itu, web/apps yang dibangun dengan microservices juga punya performa yang lebih ringan dibanding jika dibangun dengan sistem monolith.
B. Karakteristik Microservices
Inilah beberapa Ciri-ciri atau Karakteristik dari Microservices.
1. Terdiri dari Beberapa Komponen
Microservices memecah aplikasi utama menjadi bagian-bagian yang lebih kecil. Artinya, sebuah jaringan/aplikasi yang menggunakan arsitektur ini tentunya akan terdiri dari banyak komponen. Ini bisa berupa layanan/produk, server, database, dan banyak lagi.
Oleh sebab itu, aplikasi yang berisi layanan mikro biasanya memerlukan REST API untuk menautkan masing-masing unit.
2. Ditujukan untuk Kebutuhan Bisnis
Penggunaan microservices membantu perusahaan memenuhi kebutuhan bisnis mereka. Termasuk penyediaan berbagai layanan dengan pelayanan yang optimal.
Tidak hanya di departemen spesialis dan pengembangan produk, tetapi juga melalui pembagian tim dengan fokus yang berbeda.
Untuk meningkatkan efisiensi, masing-masing layanan ini dikembangkan secara terpisah, juga dengan timnya sendiri. Tujuannya agar bekerja lebih terkonsentrasi.
Tentu saja, hasilnya lebih cepat dan lebih baik. Apalagi dibandingkan dengan tim besar yang menangani keseluruhan proyek. Komunikasi pasti tidak efisien dan kemajuan pekerjaan juga relatif lambat.
3. Dapat Berjalan Sendiri (Desentralisasi)
Seperti yang sudah Anda ketahui dari poin sebelumnya, layanan mikro memungkinkan Anda menggunakan suatu fungsi tanpa harus menyinkronkannya dengan fungsi lain.
Singkatnya, pendekatan ini memungkinkan setiap layanan beroperasi secara mandiri. Hal ini memungkinkan setiap tim developer perusahaan untuk mengembangkan fitur berdasarkan kebutuhan layanan mereka.
Misalnya, tim developer A menggunakan Java untuk membuat halaman login, sedangkan tim lain menggunakan C++ untuk membangun menu.
4. Proses Routing Sederhana
Fitur berikut menyederhanakan proses web/apps. Karena terdiri dari bagian-bagian kecil, sebuah fitur dapat menangani permintaan tanpa harus berkoordinasi dengan fitur lainnya.
Jadi, saat pengembang merilis fitur baru, kecil kemungkinan terjadinya gangguan bahkan dengan fitur lama.
5. Mengurangi Risiko Kegagalan
Karena setiap komponen Situs Web/Apps dapat berfungsi secara independen, Microservices dapat mengurangi risiko kegagalan. Saat terjadi kerusakan pada sebuah fitur, komponen lain kemungkinan besar tidak terpengaruh.
6. Selalu Berkembang (Evolusioner)
Microservices menawarkan fleksibilitas pengembangan yang lebih longgar. Dengan demikian, lebih mudah untuk mengembangkan karakteristik masing-masing komponen sesuai dengan kebutuhan konsumen.
Misalnya saja, YouTube. Sebelumnya, YouTube hanya menawarkan video. Namun, YouTube ingin memperluas kemampuannya untuk monetisasi penggunanya. Itu sebabnya YouTube memperkenalkan fitur YouTube Shorts.
Tanpa adanya microservices, pengembangan fitur seperti itu sangat membosankan. Biaya pengembangan juga harus mahal.
Jadi, boleh disimpulkan, microservices memungkinkan Anda menambahkan fungsionalitas penting ke situs web/aplikasi Anda tanpa harus mengubah fungsionalitas inti aplikasi. Ini juga membuat proses pengembangan lebih efisien.
C. Kelebihan Microservices
Berikut inilah beberapa Kelebihan dari Microservices :
1. Bebas Memilih Teknologi
Dalam layanan perusahaan, setiap fungsi dibuat menggunakan teknologi yang berbeda. Baik itu framework seperti Kubernetes, Laravel, Docker. Atau bahasa pemrograman yang berbeda seperti Java, Python, Objective-C, dll.
Microservices memungkinkan itu dapat terjadi. Hal ini memungkinkan pengembang perusahaan untuk mengembangkan fitur di setiap layanan dengan pendekatan teknologi yang lebih tepat.
2. Kebebasan untuk Upgrade
Dengan microservices, perusahaan dapat memperbarui sistem dengan lebih fleksibel. Terutama untuk meningkatkan sumber daya. Ini memungkinkan Anda untuk meningkatkan hanya layanan tertentu saja. Contohnya, menambah resource web server untuk layanan A yang sedang diminati user.
Selain mengoptimalkan penggunaan Sumber Daya (Resource), perusahaan dapat mencapai penghematan tambahan. Karena hanya layanan yang benar-benar membutuhkan sumber daya yang dapat ditambahkan, bukan semuanya.
3. Memudahkan Error Isolation
Error Isolation berarti Anda menyertakan masalah di area atau kontainer tertentu. Dengan cara ini, fungsi lain tidak terpengaruh. Dengan menggunakan microservices, Anda menghindari pengalihan masalah ke sistem lain.
4. Maintenance Lebih Mudah
Dikarenakan aplikasi utama dipecah menjadi beberapa layanan, maka maintenance-nya pun lebih mudah. Sebab, tim developer Anda tidak harus memelihara seluruh bagian aplikasi. Cukup di layanan yang mereka pegang.
D. Kekurangan Microservices
Selain Kelebihan, juga ada Kekurangan dari Microservices, yaitu :
1. Sistem Menjadi Kompleks
Jika ingin memilih Microservices Architecture, Anda harus harus siap menghadapi kerumitan sistem. Diperlukan lebih banyak Bahasa Pemrograman, Kerangka Kerja (Framework), dan Modul yang kompleks.
Jadi jika Anda ingin melakukan maintenance ataupun update, Anda mungkin tidak dapat melakukannya secara bersamaan.
2. Koordinasi Antar Layanan Lebih Rumit
Ketika sistem menjadi lebih kompleks, koordinasi antar layanan dapat menjadi lebih rumit. Karena setiap layanan bekerja secara independen satu sama lain.
Oleh karena itu, saat developer melakukan testing tertentu, mereka harus bekerja keras untuk mengurangi potensi masalah latensi jaringan atau kesalahan/error lainnya.
3. Biaya Lebih Mahal
Microservices membutuhkan biaya lebih mahal. Karena setiap database membutuhkan servernya sendiri dan Anda harus mengelola lebih banyak tim.
Dalam proyek besar, memang microservices dapat membuat berbagai proses bisnis menjadi lebih efisien dan membantu perusahaan meningkatkan keuntungan. Namun untuk proyek kecil, microservices bahkan dapat menghabiskan lebih banyak modal dan kompleksitas.
E. Contoh dari Microservices
Inilah beberapa contoh Microservices di berbagai Perusahaan :
1. Amazon
Amazon adalah e-commerce dengan 300 Juta pelanggan aktif dan lebih dari 1,9 Juta merchant. Kemampuan Amazon untuk menarik begitu banyak konsumen tidak lepas dari keandalan web/apps-nya.
Amazon memiliki beberapa tim developer terpisah yang mengelola tombol beli di halaman produk, kalkulator pajak, dsb.
Akhirnya, Amazon pun memutuskan menerapkan microservices sehingga berbagai layanannya bisa berjalan secara independen.
Tak heran, Amazon punya beberapa tim developer terpisah untuk mengelola tombol beli di halaman produk, kalkulator pajak, dsb.
Dengan membangun tim khusus dan menyerahkan kewenangan pengembangan, Amazon bisa lebih fokus melihat berbagai masalah secara detail, sekaligus menyelesaikannya dengan lebih efisien.
2. Netflix
Netflix memulai perjalanannya di tahun 1998 sebagai tempat persewaan DVD. Di tahun 2008, Netflix baru menawarkan layanan live-streaming film.
Memulai dengan Arsitektur Monolith, di tahun yang sama Netflix berhadapan dengan masalah serius. Database-nya rusak sehingga Netflix terpaksa menutup operasional bisnis hingga 4 (Empat) Hari.
Itulah mengapa Netflix mulai memanfaatkan cloud untuk distribusi produk yang lebih baik. Sejak tahun 2009, Netflix menggunakan microservices secara bertahap. Mulai dari pengembangan CMS, Logs, Tombol Play, dst.
Setelah menerapkan microservices, Netflix berhasil memenuhi demand layanan live-streaming yang tinggi dengan lancar. Itu semua dilakukan sambil memotong ongkos pengembangan dan maintenance secara signifikan.
3. Spotify
Spotify menggunakan microservices agar bisa mengikuti persaingan dengan layanan streaming lainnya. Karena membutuhkan inovasi yang cepat dan perkembangan terus menerus, microservices dipilih menjadi arsitektur yang tepat.
Tak heran, Spotify memiliki tim khusus untuk mengelola fitur-fitur tertentu. Contohnya saja fitur sugesti pencarian, Spotify memiliki tim pengembang tersendiri.
Itulah penjelasan mengenai Microservices dalam Arsitektur Perangkat Lunak. Semoga bermanfaat bagi Mahasiswa TI dan SI.
Terima Kasih 😄😘👌👍 :)
Wassalamu‘alaikum wr. wb.