Microservices adalah teknologi yang mulai banyak perusahaan adopsi. Terutama yang bergerak secara digital. Baik e-commerce, jasa transportasi, layanan properti, dan banyak lagi.
Bukan tanpa sebab, microservices architecture memang memungkinkan startup dan perusahaan melayani konsumen dengan lebih baik, meski secara virtual. Mulai dari menawarkan berbagai service, sampai memproses request lebih cepat.
Contohnya saja, fitur GroupWatch pada layanan DisneyPlus. Tanpa adanya microservice, kecil kemungkinan DisneyPlus bisa menawarkan layanan nobar bersama teman. Apalagi lokasi nobar di berbagai negara dengan bandwidth internet berbeda. Sebab, pastinya akan sangat memberatkan di server.
Nah itu hanya satu contoh microservice saja. Kalau Anda tertarik dan ingin memahami microservices lebih jauh, selamat, ini adalah artikel yang tepat. Tanpa basa-basi, yuk simak apa itu microservices!
Apa Itu Microservices?
Microservices adalah desain arsitektur untuk membuat sebuah aplikasi yang terdiri dari berbagai unit layanan tersendiri tapi tetap saling terhubung.
Setiap unit layanan dalam aplikasi tersebut menjalankan fungsi berbeda, tapi tetap mendukung satu sama lain.
Boleh dibilang, microservices sama dengan membangun aplikasi dalam aplikasi.Misalnya penerapan microservices architecture pada super-app seperti Gojek. Dalam satu aplikasi, Gojek menggunakan beberapa microservice untuk berbagai jenis service-nya seperti GoRide, GoPay, GoFood, dsb.
Supaya setiap fitur dalam aplikasi tersebut saling terhubung, biasanya developer menggunakan API.
Istilah microservices sebenarnya sudah muncul sejak tahun 2005. Tepatnya ketika Dr. Peter Rodgers membahas micro-web-services pada konferensi tentang cloud computing.
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.
Nah, sebelum sampai ke artikel ini, mungkin Anda sudah lebih dulu mengenal monolith. Apa itu monolith dan apa perbedaannya monolith vs microservices? Coba simak di bawah ini!
Monolith vs Microservices
Kebalikan dari microservices adalah monolith. Monolith sendiri adalah pendekatan di mana seluruh komponen atau fitur dijadikan satu dalam sebuah server aplikasi.
Dibandingkan microservices, monolith memang lebih sederhana. Seluruh sistemnya memakai server, logika, database, hingga user interface yang sama.
Namun risikonya, sistem monolith tidak fleksibel terhadap perubahan. Ketika Anda mau mengubah satu fitur, seluruh bagian dalam sistem akan terdampak. Deployment juga akan lebih lama karena harus dilakukan secara keseluruhan.
Meski begitu, untuk proyek kecil, monolith memang masih cocok. Tapi kalau bisnis Anda terus berkembang, pasti lain cerita. Sebagai gambaran, mari lihat perbedaan monolith vs microservices.
Microservices | Monolith | |
Biaya sewa server | Lebih mahal, apalagi setiap komponen membutuhkan resource yang berbeda | Lebih murah karena hanya mengandalkan satu server. |
Maintenance | Bisa menyesuaikan kebutuhan masing-masing module, tidak harus maintenance total | Saat server bermasalah seluruh layanan akan terdampak. |
Kecepatan memproses permintaan | Lebih cepat | Lambat karena resource digunakan bersama |
Deployment | Tidak mengganggu proses dan module lainnya | Lebih mudah dan cepat |
Fleksibilitas pengembangan | Lebih fleksibel | Lebih rumit karena harus merombak seluruh aplikasi utama |
Bisa Anda lihat, monolith memang cocok untuk kebutuhan yang sederhana. Namun kalau proyek Anda besar, serius, dan potensi berkembangnya tinggi, maka microservices tentu lebih cocok.
5+ Karakteristik Microservices
Ini dia 5+ karakteristik microservices:
1. Terdiri dari Beberapa Komponen
Microservices membagi aplikasi utama menjadi lebih kecil. Itu artinya, web/apps yang mengadopsi arsitektur ini sudah pasti terdiri dari banyak komponen. Bisa layanan/produk, server, database, dan banyak lagi.
Oleh sebab itu, biasanya aplikasi dengan microservices membutuhkan REST API agar setiap unitnya tetap saling terhubung.
Baca Juga: Cara Membuat REST API CodeIgniter
2. Ditujukan untuk Kebutuhan Bisnis
Penggunaan microservices membantu perusahaan mencapai kebutuhan bisnisnya. Termasuk menyediakan berbagai jasa dengan pelayanan yang sama-sama optimal.
Bukan cuma di bagian teknis dan pengembangan produk, tapi juga lewat pembagian tim dengan fokus yang berbeda.
Katakanlah startup A punya misi memudahkan transaksi properti di Indonesia. Startup A menyediakan berbagai layanan. Jual-beli rumah, sewa apartemen, hingga jasa kebersihan.
Agar lebih efektif, setiap layanan ini dikembangkan secara terpisah dengan tim khusus juga. Tujuannya, agar pengerjaannya lebih fokus.
Tentunya, hasilnya pun akan lebih cepat dan bagus. Apalagi dibanding dengan satu tim besaryang mengurus seluruh project. Komunikasinya pasti tidak efektif dan progres pengerjaan juga relatif lambat.
3. Proses Routing Sederhana
Karakteristik berikutnya, menyederhanakan proses dalam web/apps. Karena terdiri dari komponen-komponen kecil, sebuah fitur dapat memproses permintaan tanpa harus berkoordinasi dengan fitur lainnya.
Jadi ketika pengembang merilis fitur baru, potensi gangguan pada fitur lama pun juga lebih kecil.
4. Dapat Berjalan Sendiri (Desentralisasi)
Seperti yang sudah Anda ketahui pada poin sebelumnya, microservices memungkinkan sebuah fitur berjalan tanpa perlu sinkronisasi dengan fitur lainnya.
Singkat kata, pendekatan ini memungkinkan tiap layanan mampu berjalan sendiri. Dengan begitu, setiap tim developer dalam perusahaan bisa mengembangkan fitur sesuai kebutuhan layanan mereka.
Misalnya, tim developer A memakai Java untuk membuat halaman login, sedangkan tim lainnya menggunakan C++ untuk membangun menu.
5. Mengurangi Risiko Kegagalan
Karena setiap komponen dalam web/apps dapat berjalan sendiri, microservices mampu mengurangi risiko kegagalan. Saat terjadi kerusakan pada sebuah fitur, komponen lain kemungkinan besar tidak terpengaruh.
6. Selalu Berkembang (Evolusioner)
Microservices memberikan fleksibilitas pengembangan yang lebih longgar. Sehingga, fitur-fitur dalam setiap komponen lebih mudah untuk berevolusi, sesuai kebutuhan konsumen.
Misalnya saja, YouTube. Dulunya, YouTube hanya menyediakan tayangan video. Namun, YouTube ingin memperlebar peluang monetisasi penggunanya. Oleh sebab itu, YouTube merilis fitur YouTube Shorts.
Tanpa adanya microservices, pengembangan fitur-fitur seperti itu tentu saja merepotkan. Ongkos pengembangannya pun pasti juga mahal.
Jadi, boleh disimpulkan, microservices memungkinkan Anda menambah fungsi penting pada web/apps, tanpa Anda harus mengubah fungsi utama aplikasi. Jadi, proses development pun juga lebih efisien.
Kelebihan Microservices
Berikut kelebihan microservices:
1. Bebas Memilih Teknologi
Setiap fitur dalam layanan perusahaan dibangun dengan teknologi yang berbeda. Entah itu framework-nya, seperti Kubernetes, Laravel, Docker. Ataupun bahasa pemrograman yang berbeda seperti Java, Phyton, Objective-C, dll.
Nah, microservices memungkinkan itu terjadi. Sehingga, developer perusahaan di masing-masing layanan bisa mengembangkan fitur dengan pendekatan teknologi yang lebih cocok.
2. Leluasa untuk Upgrade
Dengan microservices, Anda ataupun perusahaan akan lebih leluasa untuk meng-upgrade sistem. Terutama untuk menambahkan sumber daya.
Dengan begitu, Anda bisa meng-upgrade layanan tertentu saja. Misalnya, menambah resource web server untuk layanan A yang memang sedang diminati user.
Selain mengoptimalkan penggunaan resource, perusahaan bisa lebih berhemat. Karena hanya layanan yang memang perlu saja yang resource-nya bisa ditambah. Bukan semuanya.
3. Memudahkan Error Isolation
Dalam sistem monolith, saat satu layanan bermasalah yang lain akan ikut terpengaruh. Lain halnya dengan microservices, di mana Anda bisa melakukan error isolation.
Error isolation berarti Anda mengurung masalah dalam area ataupun kontainer tertentu saja. Dengan begitu, fitur lain tidak akan kecipratan dampaknya.
4. Maintenance Lebih Mudah
Karena 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.
Baca Juga: Benarkah PHP Laravel Framework Kini Kian Diminati?
Kekurangan Microservices
Kekurangan microservices antara lain:
1. Sistem Menjadi Kompleks
Saat memutuskan menggunakan microservices architecture, Anda harus bersiap-siap sistem menjadi kompleks. Akan ada lebih banyak bahasa pemrograman, framework, hingga module yang dibutuhkan.
Sehingga saat Anda mau melakukan maintenance ataupun update, kemungkinan tidak bisa dilakukan secara bersamaan.
2. Koordinasi Antar Layanan Lebih Rumit
Akibat dari sistem yang menjadi kompleks, koordinasi antar layanan mungkin agak lebih rumit. Sebab, setiap layanan berjalan sendiri-sendiri.
Oleh karena itu, ketika developer melakukan testing tertentu, mereka perlu bekerja keras untuk mengurangi potensi masalah latensi jaringan ataupun error lainnya.
3. Biaya Lebih Mahal
Microservices membutuhkan biaya lebih mahal. Sebab, setiap database butuh server tersendiri dan Anda juga memiliki lebih banyak tim untuk dikelola.
Untuk project besar, memang microservices mampu meningkatkan efisiensi berbagai proses bisnis dan membantu perusahaan mendapat untung yang lebih besar.
Namun untuk project kecil, microservices justru bisa membuat Anda mengeluarkan lebih banyak modal dan kerumitan.
Contoh Penggunaan Microservices
Ini adalah beberapa contoh microservices di berbagai perusahaan:
1. Amazon
Amazon adalah e-commerce dengan 300 juta pelanggan aktif dan lebih dari 1,9 juta merchant. Kekuatan Amazon untuk menarik konsumen sebanyak itu tentu tak lepas dari keandalan web/apps-nya.
Awalnya, Amazon masih menggunakan monolith. Namun seiring peningkatan jumlah konsumen dan kebutuhan bisnis, arsitektur ini menciptakan issue pada development, basis code, dan ketersambungan layanan.
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. Spotify
Spotify menggunakan microservices agar bisa mengikuti persaingan dengan layanan streaming lainnya. Karena membutuhkan inovasi yang cepat dan perkembangan terus menerus, microservices adalah arsitektur yang tepat.
Tak heran, Spotify punya tim khusus untuk mengelola fitur-fitur tertentu. Contohnya saja fitur sugesti pencarian kepada pengguna punya tim pengembang tersendiri.
3. 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 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.
Jadi, Kapan Nih Anda Mulai Pindah ke Microservices?
Sampai sini, Anda sudah lebih memahami apa itu microservices. Microservices adalah cara untuk membagi suatu layanan menjadi lebih kecil tapi saling terhubung.
Manfaat microservices yaitu untuk mengoptimalkan berbagai proses bisnis, sekaligus meningkatkan customer experience. Tak heran, arsitektur ini cocok untuk perusahaan yang mau atau sedang bertumbuh.
Tapi ingat, untuk mengeksekusi microservices, Anda membutuhkan sarana seperti VPS.
Memakai VPS, Anda lebih bebas mengatur hosting sesuai kebutuhan. Termasuk membagi VPS menjadi beberapa docker container.
Nah kabar gembiranya, Niagahoster menyediakan berbagai paket VPS murah kualitas super. Secara garis besar, ini dia keunggulan VPS Niagahoster:
- Menyediakan root access untuk mengubah berbagai pengaturan server hosting;
- Mengelola banyak akun hosting;
- Mendukung Kubernetes untuk mengelola aplikasi project dengan sistem kontainer;
- RAM cadangan 2X lipat dari RAM dedicated;
- Fleksibel upgrade layanan hosting sesuai kebutuhan;
Jadi, kapan nih Anda mau mulai pindah ke microservices?