Pernah dengar istilah microservices? Wah, apaan tuh? Ada hubungan apa nih ama microchip? Santuy, kali ini kami akan membahas tentang microservices spesial untuk kalian. Makanya, simak terus yuk sampai tuntas Pengertian Microservices, Karakteristik, dan Kelebihannya
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.
Bisa dibilang microservices sama dengan membangun aplikasi dalam aplikasi. Misal, penerapan microservices architecture pada super-app, seperti Gojek. Dalam satu aplikasi, Gojek menggunakan beberapa microservice untuk berbagai jenis service-nya, seperti GoRide, GoPay, GoFood, dan sebagainya.
Biasanya developer menggunakan API agar setiap fitur dalam aplikasi tersebut saling terhubung.
Sebenarnya istilah microservices muncul sejak tahun 2005. Tepatnya ketika Dr. Peter Rodgers membahas micro-web-services pada konferensi tentang cloud computing.
Saat ini sekitar 85% perusahaan telah mengadopsi microservices architecture.
Riset lain menunjukkan bahwa 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 cekatan saat mengeksekusi rencana. Selain itu, karena perusahaan bisa mengembangkan sebagian layanan saja, biaya yang dikeluarkan pun jauh lebih hemat tapi rilisnya lebih cepat.
Dengan layanan yang bisa segera dipakai konsumen, maka mengumpulkan feedback untuk peningkatan service pun lebih cepat. Selain itu, web/apps yang dibangun dengan microservices juga punya performa lebih ringan dibanding jika dibangun dengan sistem monolith.
Monolith vs Microservices
Kebalikan dari microservices adalah monolith. Monolith sendiri adalah pendekatan yang 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.
Risikonya adalah sistem monolith tidak fleksibel terhadap perubahan. Ketika kalian mau mengubah satu fitur, seluruh bagian dalam sistem akan terdampak. Deployment juga akan lebih lama karena harus dilakukan secara keseluruhan.
Namun, untuk proyek kecil monolith masih cocok, kok. Okay, mari kita 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 dilihat ya, monolith memang cocok untuk kebutuhan yang sederhana. Jika proyek kalian besar, serius, dan potensi berkembangnya tinggi maka microservices tentu lebih cocok.
Karakteristik Microservices
Berikut ini karakteristik microservices:
1. Terdiri dari Beberapa Komponen
Microservices membagi aplikasi utama menjadi lebih kecil. Artinya, web/apps yang mengadopsi arsitektur ini sudah pasti terdiri dari banyak komponen. Bisa layanan/produk, server, database, dan banyak lagi.
Oleh karena itu, biasanya aplikasi dengan microservices membutuhkan REST API agar setiap unitnya tetap saling terhubung.
2. Ditujukan untuk Kebutuhan Bisnis
Penggunaan microservices membantu perusahaan mencapai kebutuhan bisnisnya, termasuk menyediakan berbagai jasa dengan pelayanan yang sama-sama optimal.
Bukan hanya di bagian teknis dan pengembangan produk tapi juga lewat pembagian tim dengan fokus yang berbeda.
Okay, kita ambil contoh startup A punya misi memudahkan transaksi properti di Indonesia. Startup A menyediakan berbagai layanan, seperti jual-beli rumah, sewa apartemen, hingga jasa kebersihan. Nah, agar lebih efektif, tentunya setiap layanan ini dikembangkan secara terpisah dengan tim khusus, kan. Tujuannya ya agar pengerjaannya lebih fokus.
Hasilnya pun akan lebih cepat dan bagus. Jika dibandingkan dengan satu tim besar yang mengurus seluruh project, ya tentu berbeda. Komunikasinya pasti tidak efektif dan progres pengerjaan juga relatif lambat.
3. Proses Routing Sederhana
Karakteristik selanjutnya adalah menyederhanakan proses dalam web/apps. Sebuah fitur dapat memproses permintaan tanpa harus berkoordinasi dengan fitur lainnya karena terdiri dari komponen-komponen kecil.
Jadi ketika pengembang merilis fitur baru, potensi gangguan pada fitur lama pun lebih kecil.
4. Dapat Berjalan Sendiri (Desentralisasi)
Microservices memungkinkan sebuah fitur berjalan tanpa perlu sinkronisasi dengan fitur lainnya.
Singkatnya, pendekatan ini memungkinkan tiap layanan mampu berjalan sendiri. Dengan begitu, setiap tim developer dalam perusahaan bisa mengembangkan fitur sesuai kebutuhan layanan mereka. Misal, tim developer X memakai Java untuk membuat halaman login sedangkan tim lainnya menggunakan C++ untuk membangun menu.
5. Mengurangi Risiko Kegagalan
Microservices mampu mengurangi risiko kegagalan karena setiap komponen dalam web/apps dapat berjalan sendiri. Saat terjadi kerusakan pada sebuah fitur, komponen lain kemungkinan besar tidak terpengaruh.
6. Selalu Berkembang (Evolusioner)
Microservices memberikan fleksibilitas pengembangan yang lebih longgar. Makanya, fitur-fitur dalam setiap komponen lebih mudah untuk berevolusi sesuai kebutuhan konsumen.
Misalnya YouTube. Dulu YouTube hanya menyediakan tayangan video. Namun, YouTube ingin memperlebar peluang monetisasi penggunanya. Oleh karena itu, YouTube merilis fitur YouTube Shorts.
Tanpa adanya microservices, pengembangan fitur-fitur seperti itu tentu saja merepotkan. Ongkos pengembangannya pun pasti juga mahal. Iya, kan?
Simpulannya microservices memungkinkan untuk menambah fungsi penting pada web/apps, tanpa kalian kudu mengubah fungsi utama aplikasi. Jadi, proses development pun juga lebih efisien.
Kelebihan Microservices
Berikut ini kelebihan microservices:
1. Bebas Memilih Teknologi
Setiap fitur dalam layanan perusahaan dibangun dengan teknologi yang berbeda. Entah itu dari poin framework, seperti Kubernetes, Laravel, Docker. Ataupun bahasa pemrograman yang berbeda, seperti Java, Phyton, Objective-C, dan lain-lain.
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, kalian atau perusahaan akan lebih leluasa untuk meng-upgrade sistem, terutama untuk menambahkan sumber daya.
Nah, dengan begitu kalian bisa meng-upgrade layanan tertentu saja. Misalnya, menambah resource web server untuk layanan X yang memang sedang diminati user.
Selain mengoptimalkan penggunaan resource, perusahaan juga bisa lebih berhemat. Penyebabnya adalah hanya layanan yang memang perlu saja yang resource-nya bisa ditambah, gak semuanya.
3. Memudahkan Error Isolation
Dalam sistem monolith, saat satu layanan bermasalah yang lain akan ikut terpengaruh. Lain halnya dengan microservices, yang mana kalian bisa melakukan error isolation.
Error isolation berarti kalian mengurung masalah dalam area ataupun kontainer tertentu saja. Dengan begitu, fitur lain tidak akan kecipratan dampaknya.
4. Maintenance Lebih Mudah
Jadi, aplikasi utama kan dipecah menjadi beberapa layanan maka maintenance pun lebih mudah. Sebab, tim developer tidak harus memelihara seluruh bagian aplikasi. Cukup di layanan yang mereka pegang.
Kekurangan Microservices
Kekurangan microservices antara lain:
1. Sistem Menjadi Kompleks
Saat memutuskan menggunakan microservices architecture, kalian kudu bersiap-siap sistem menjadi kompleks, ya. Sebab akan ada lebih banyak bahasa pemrograman, framework, hingga module yang dibutuhkan.
Sehingga saat kalian mau melakukan maintenance ataupun update, kemungkinan tak bisa dilakukan secara bersamaan.
2. Koordinasi Antarlayanan Lebih Rumit
Akibat dari sistem yang menjadi kompleks, koordinasi antarlayanan 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 karena setiap database butuh server tersendiri dan kalian juga memiliki lebih banyak tim untuk dikelola.
Untuk project besar, memang microservices mampu meningkatkan efisiensi berbagai proses bisnis dan membantu perusahaan mendapatkan untung lebih besar.
Namun untuk project kecil, microservices justru bisa membuat kalian mengeluarkan lebih banyak modal dan kerumitan.
Contoh Penggunaan Microservices
Oia, berikut ini ada beberapa contoh microservices di berbagai perusahaan:
1. Spotify
Spotify menggunakan microservices agar bisa mengikuti persaingan dengan layanan streaming lainnya. Karena membutuhkan inovasi yang cepat dan perkembangan terus menerus maka microservices adalah arsitektur yang tepat.
Tak heran, Spotify pun punya tim khusus untuk mengelola fitur-fitur tertentu. Contohnya saja fitur sugesti pencarian kepada pengguna punya tim pengembang tersendiri.
2. Netflix
Netflix memulai perjalanannya di tahun 1998 sebagai tempat persewaan DVD. Pada tahun 2008, Netflix baru menawarkan layanan live streaming film.
Memulai dengan arsitektur monolith, di tahun yang sama pun 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, dan sebagainya.
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, bisa disimpulkan manfaat microservices, yaitu untuk mengoptimalkan berbagai proses bisnis sekaligus meningkatkan customer experience. Tak heran, arsitektur ini cocok untuk perusahaan yang mau atau sedang bertumbuh.
Eitss, ada satu hal yang perlu kalian ingat, untuk mengeksekusi microservices, kalian membutuhkan sarana seperti VPS. Tenang, Jetorbit juga menyediakan produk VPS, yang tentunya bisa kalian pilih paketnya sesuai kebutuhan.
Leave a Comment