Sebelum Menerapkan Arsitektur Microservice : Kenali Terlebih Dahulu Arsitektur Monolith

Daftar Isi
Sebelum Menerapkan Arsitektur Microservice : Kenali Terlebih Dahulu Arsitektur Monolith

Apakah anda seorang pengembang software ? Jika iya, harusnya sebelum anda memulai pengembangan applikasi, ada baiknya mengetahui terlebih dahulu soal arsitektur apa yang akan di implementasikan ke applikasi yang akan anda buat. Mari kita bahas salah satu arsitektur yang banyak di implementasikan pada applikasi yang baru ingin di buat. Yupps nama arsitekturnya adalah arsitektur monolith. Jadi ada baiknya menggunakan arsitektur monolith terlebih dahulu sebelum menerapkan arsitektur microservice. Jadi mari kita bahas tentang apa sih itu arsitektur monolith.

Arsitektur Monolith

Arsitektur monolith merupakan arsitektur yang menerapkan singel deployment unit ( membuat seluruh code dalam applikasi menjadi satu kesatuan ). Jadi ketika ada proses deployment yang terjadi di server applikasi, maka keseluruhan applikasi tersebut akan di deploy. Jadi semua fitur dan fungsi dari applikasi tersebut akan terintegrasi dalam satu proyek tunggal. 

Sebelum banyak organisasi atau perusahaan beralih ke arsitektur microservice, biasanya mereka akan  memulai terlebih dahulu mengimplementasikan pengembangan perangkat lunaknya ke arsitektur monolith.

Arsitektur monolith juga biasanya hanya menggunakan 1 database, jadi otomatis semua service yang tedapat pada code akan mengakses database tersebut. 

Ciri Ciri dari Arsitektur Monolith

Arsitektur monolith dan microservice mempunyai ciri ciri tersendiri. Berikut adalah ciri ciri dari arsitektur monolith : 

1. Code applikasi terdapat dalam 1 repository

Ciri ciri pertama dari arsitektur monolith ialah semua code ataupun fungsi dalam applikasi tersebut akan terpusat di satu repository. Jadi jika dalam 1 team yang mengerjakan applikasi tersebut akan bekerja dalam 1 repository di github atau gitlab.

2. Singel Deployment Unit

Seperti yang kami bilang, yaitu arsitektur monolith menerapakan singel deployment unit, yang artinya adalah semua fitur yang berada dalam aplikasi akan berada dalam satu unit yang sama, sehingga ketika ada pembaruan pada applikasi tersebut maka seluruh applikasi akan ikut di deplou ulang. 

3. Menggunakan Satu Database 

Semua service yang ada dalam applikasi akan menembah 1 database tanpa pembagian basis data per service.

Mengapa Harus Arsitektur Monolith Terlebih Dahulu ? 

Jika anda ingin membangun sebuah perangkat lunak, mungkin ada baiknya mengimplementasikan arsitektur monolith terlebih dahulu sebelum arsitektur microservice. Kenapa ? Pastinya mudah di kembangkan, di karenakan dalam 1 code terpusat ( 1 repository ) maka para team developer hanya akan berfokus pada 1 repository tersebut tanpa perlu memikirkan integrasi ke service di luar repository. Dan jika menggunakan arsitektur monolith, maka team developer akan mudah melakukan testing pada applikasi yang dibuatnya dikarenakan seluruh service berada dalam 1 repository. 

Dan pastinya juga arsitektur monolith lebih mudah untuk di deploy. Tidak ada konfigurasi tambahan seperti pipeline deployment yang sangat kompleks untuk mengatur berbagai layanan. 

Kekurangan Dari Arsitektur Monolith

Pastinya terdapat kekurangan jika anda menggunakan arsitektur monolith dalam applikasi anda. Berikut adalah beberapa kekurangan yang terjadi jika anda menggunakan arsitektur microservice : 

1. Code yang akan konflik 

Bayangkan jika team developer anda ada 10 orang, dan 10 orang tersebut bekerja dalam 1 repository terpusat. Yaa pastinya akan terjadi konflik terhadap code yang dibuat, yang dapat menghalangi keterlambatan proses development. Jadi mungkin solusi nya adalah komunikasi yang bagus dalam team tersebut jika ingin bekerja dengan arsitektur monolith.

2. Menggunakan Satu Database

Seperti yang kami bilang, bahwa arsitektur monolith menggunakan 1 database. Jadi apabila database tersebut mati, yaa otomatis applikasi juga tidak bisa di akses yaa. di karenakan hanya menggunakan 1 database terpusat. 

3. Proses Build Yang Berat

Jika code dalam applikasi sudah ratusan bahkan ribuan maka otomatis ketika melakukan build dalam applikasi tersebut akan lama di karenakan proses build akan mengecek satu persatu service yang berada dalam applikasi. Nah ini akan menghambat proses development juga guyss.

4. Mengintimidasi Developer yang Baru Join dalam Team

Ketika aplikasi sudah semakin besar, pastinya struktur code dapat menjadi sangat kompleks. Developer yang baru join ke dalam team pastinya akan merasa lelah menghadapi proyek yang besar dengan logika bisnis yang sangat rumit.

Jadi Kapan Beralih ke Microservice ? 

Jika applikasi anda yang mengimplementasikan arsitektur monolith telah mencapai batasnya atau mulai sulit untuk di kelola, maka mungkin inilah saatnya anda untuk beralih ke arsitektur microservice yaa. Tapi ingat, team anda harus tepat mengambil keputusan di karenakan arsitektur microservice itu sendiri membutuhkan infrastruktur yang kompleks. Anda harus memisah setiap service yang berjalan dalam applikasi anda, jadi yaa otomatis banyak biaya infrastruktur yang akan di keluarkan ya. 

Kesimpulan

Mengimplementasikan arsitektur monolith pada tahap pertama pengembangan applikasi yang akan di buat adalah langkah awal yang baik. Dengan pendekatan ini, pengembangan, deployment, dan pengujian menjadi lebih sederhana di karenakan seluruh code akan terpusat dalam satu repository. Tapi akan ada beberapa tantangan yang akan di dapat jika menggunakan arsitektur monolith, contohnya code yang akan sering konflik dan Proses build file applikasi akan berat dan lama. Oleh karena itu dengan memahami kapan harus beralih ke arsitektur microservice adalah kunci untuk memastikan aplikasi tetap skalabel dan mudah dikelola. 

Jika anda seorang pengembang atau developer, bagaimana menurut anda tentang arsitektur monolith ? apakah sering merasakan code yang konflik juga ? atau proses build app yang lama ? yupss mari berdiskusi di dalam kolom komentar. 

Posting Komentar