Home » Blog » Ini Dia 5 Kelebihan Arsitektur Microservices

Ini Dia 5 Kelebihan Arsitektur Microservices

Arsitektur Monolithic dan Microservices

Apa itu Arsitektur Microservices?

Microservices merupakan aplikasi-aplikasi kecil yang saling bekerja sama. Dalam microservices, setiap aplikasi fokus mengerjakan satu pekerjaan dengan baik. Arsitektur ini bersifat independen yakni dapat berdiri sendiri. Maksudnya, dapat dikembangkan dan diubah tanpa bergantung dengan aplikasi lain. Setiap komponen dalam sistem biasa dibuat dalam bentuk service atau aplikasi. Komunikasi antar service biasanya terjadi melalui network-call. 

Perbedaan Arsitektur Monolithic dan Microservices

Dilansir dari kutu.dev, perbedaan antara arsitektur monolithic dan microservices bisa dilihat dari beberapa aspek, di antaranya:

Cakupan

Pada monolithic, fungsionalitas yang dibutuhkan diimplementasikan secara lengkap dan menyeluruh pada satu codebase. Sedangkan pada microservices, satu servis fokus hanya pada satu fungsi.

Jumlah

Pada monolithic, biasanya hanya menjadi satu binari atau servis. Sedangkan dalam microservices, dibutuhkan banyak servis atau aplikasi yang saling berkomunikasi.

Komunikasi Antar Modul

Komunikasi antar modul pada monolithic dilakukan melalui function call pada kode tanpa perlu protokol eksternal khusus. Sedangkan pada microservices, memerlukan protokol komunikasi yang ringan agar komunikasi antar servis bisa berjalan dengan baik.

Deployment

Monolithic biasanya lebih lambat karena perlu men-deploy kode yang besar pada satu waktu dan tidak fleksibel. Sedangkan pada microservices, lebih fleksibel dan cepat, deployment dapat dilakukan terpisah untuk masing-masing servis.

5 Kelebihan Arsitektur Microservices

Independent Development

Seperti yang sudah dibahas sebelumnya, aplikasi dalam microservices dipecah menjadi aplikasi-aplikasi kecil. Hal ini memberikan kemudahan untuk mengembangkan masing-masing dari setiap pecahan aplikasi tersebut. Misalnya, jika ada 3 pecahan aplikasi, ketiganya tidak harus ditangani dengan jumlah orang yang sama. Aplikasi A bisa ditangani oleh 1 orang, aplikasi B ditangani oleh 3 orang, dan aplikasi C yang perlu untuk segera diselesaikan bisa ditangani oleh 7 orang. Intinya, kita bisa lebih fleksibel dalam mengatur sumber daya sesuai dengan yang dibutuhkan.

Independent Data Management

Masing-masing aplikasi memiliki karakteristik data yang berbeda-beda. Tidak semua aplikasi akan cocok jika dipasang relational database. Dalam microservices, kita bisa memilih teknologi penyimpanan data sesuai dengan proses bisnis yang ingin diimplementasikan. 

Independent Technology

Sama halnya dengan data, pada microservices kita bisa memilih teknologi yang sesuai. Contohnya, saat kita ingin mengimplementasikan machine learning yang library-nya lebih banyak memakai phyton. Dalam mengatur dan mencari rekomendasi pada machine learning kita memakai phyton. Namun, untuk transaksinya, kita bisa memakai java dengan alasan kestabilan dan support database yang lebih baik. Demikian juga dengan portalnya yang bisa diakses oleh orang lain, kita bisa memakai PHP karena murah dan memberikan kemudahan untuk akses di mana saja.

Independent Release

Kita merilis aplikasi untuk produksi tidak tergantung dengan modul yang lain. Contohnya, pada aplikasi atau servis untuk pendaftaran pegawai. Saat pendaftarannya selesai, kita bisa langsung melanjutkan untuk produksi, di mana orang-orang bisa langsung mendaftar. Ini bisa terjadi meskipun setelah orang mendaftar, kita masih belum selesai membuat untuk tahapan seleksinya. Bagian seleksi bisa dikerjakan oleh tim lain dan saat sudah selesai orang-orang bisa melanjutkan ke tahap seleksi meskipun bagian penempatannya belum selesai dikerjakan. Intinya, dengan menggunakan microservices ini kita bisa merilis secara parsial atau bisa merilis fitur di aplikasi tertentu tanpa harus menunggu semua bagian selesai.

Independent Scaling

Independent scaling artinya kita bisa meningkatkan kapasitas aplikasi. Contohnya, jika sebuah aplikasi awalnya hanya bisa menerima seribu permintaan, dengan microservices kita bisa meningkatkan kapasitas aplikasi tersebut menjadi mampu menerima satu juta permintaan. Contoh, saat penerimaan pegawai sedang dibuka, kita membutuhkan kapasitas yang besar karena banyak orang yang tertarik untuk ikut melakukan pendaftaran. Namun, untuk fitur lainnya, setelah orang mendaftar, kita akan melakukan seleksi. Seleksinya ini belum tentu sebanyak yang mendaftar. Atau akan ada tahap penempatan jika sudah resmi diterima. Kapasitas atau load penempatan juga tidak sebesar pendaftaran. Dalam kasus seperti ini, kita bisa melakukan scaling terpisah. Untuk fitur registrasi, kita bisa memberikan resource yang besar. Misal kita bisa membuat servernya menjadi 10 dari yang awalnya hanya 1. Untuk yang penempatan, karena load-nya tidak banyak berubah, misalnya server yang kita berikan 3, tidak perlu ditambahkan lagi. Intinya, setiap fitur bisa kita tambahkan masing-masing secara berbeda. 

Dari semua kelebihan tersebut, kita harus mempertimbangkan apakah semua kelebihan yang ada pada microservices benar-benar kita butuhkan atau tidak. Dengan mengetahui kebutuhan, kita akan mengetahui lebih baik menggunakan arsitektur monolithic atau microservices. Jika masih bingung dan ingin mengetahui lebih lanjut mengenai kedua jenis arsitektur tersebut, Widya Analytic mengadakan Tech Talks dengan tema “Arsitektur Monolithic vs Microservices, Mana yang Lebih Baik untuk Pengembangan Aplikasi Saat Ini?” Langsung saja ikuti webinar kami. Ditunggu ya.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments