Pengenalan Microservice
From Zero to Hero
Microservice Arsitektur adalah software arsitektur berorientasi pada cara pembuatan aplikasi yang terdiri dari service-service kecil. Service-service ini terhubung satu sama lain dan bekerja sama membentuk satu kesatuan. Hubungan dan ketergantungan satu service dengan service lainnya tidak terlalu ketat bahkan cukup longgar. Dengan demikian masing-masing service terbebas dari service-service lainya. Kita sering menyebutnya dengan istilah loosely coupled.
Lawan dari microservice arsitektur adalah monolith arsitektur, yakni cara pembuatan aplikasi yang hanya terdiri dari satu aplikasi atau satu service besar dan menghandle semua fungsionalitas dari software yang dibuat.
Dahulu proses scaling aplikasi dilakukan dengan menambah kapasitas dan kualitas hardware yang digunakan atau mengganti dengan yang baru yang memiliki kapasitas dan kualitas yang leih bagus. Cara ini kita sebut sebagi teknik scaling vertical. Dengan meningkatnya pengguna dan teknologi internet serta semakin popularnya hukum Moor (Moor’s Law) maka teknik scaling vertical kurang memadai dan kurang berdampak. Para ahli mulai melirik teknik scaling denga cara memperbanyak server. Jadi lebih baik membeli banyak server yang murah daripada membeli satu server dengan hardware yang bagus dan mahal. Teknik ini di kenal sebagi teknik scaling horizontal dan microservice memiliki peranan yang sangat penting dan utama di sini.
Sekarang ini microservice arsitektur merupakan primadona di kalangan software developer. Kepopularitasannya hampir benar-benar menghilangkan penerapan monolith arsitektur. Hampir semua cara pembuatan software baru, selalu berusaha untuk menerapkan microservice arsitektur. Monolith sudah tidak lagi laku dikarenakan dari berbagai kelebihan yang ditawarkan oleh microservice arsitektur.
Berikut adalah beberapa keuntungan dan kelebihan dari microservice arstektur:
- Keuntungan paling untama dengan menerapkan microservice arsitektur adalah kemampuannya untuk melakukan scaling secara horizontal. Sebut saja kita mempunyai Service Order apabila selama bulan promosi pembeli meningkat tajam maka kita dapat melakukan scaling dengan mudah dengan cara menambah banyaknya instance server dari Servis Order.
- Service berjalan terisolasi, independent, dan tiap komponentnya dapat berjalan pada repository yang terpisah serta dimanage oleh dedicated team kecil. Dengan demikian, kita dapat memilih penggunaan bahasa pemograman yang bebas disesuaikan dengan kebutuhan dan ketersediaan team. Misalkan satu service dapat dibuat menggunakan Go, Java , atau Phyton.Tidak agnostik terhadap bahasa pemograman.
- Sistem arsitektur flexible. Kita dapat menerapkan teknologi-teknologi baru unutk membantu kinerja dari sistem seperti menambahkan full text query seperti elasticsearch , cahce management dan lain-lainnya.
- Scalability baik team dan service. Dengan microservice kita dapat dengan mudah mengatur dan mengembangankant team dan service yang kita buat.
- Cepat naik ke production. Karena service-service cukup kecil maka proses deployment dan test menjadi lebih cepat
- Mudah beradaptasi dengan perubahan-perbukan bussine proses yang mendadak.
- Ketersediaan Service ( Avaibility ) dan Performance dari aplikasi mudah untuk di atur dan ditingkatkan.
- Cost development, deployment, dan maintenance yang lebih murah.
Akan tetapi, apakah semua pembuatan software harus dimicroservicekan? Apakah penerapan microservice itu mudah sehingga banyak sekali organisasi atau perusahaan menerapkannya? Pertanyaan lebih bijak muncul kapankah kita membutuhkan microservcie? Bagaimana dengan sistem yang sudah terlanjur monolith apakah harus segera dilakukan migrasi? Jika ya, bagaimana cara terbaik melakukannya?
Semua pertanyaan-pertanyaan di atas akan dibahas satu persatu pada artikel dan tulisan yang ada di publiser The Legend. Anda sudah berada di tempat yang benar.!!!
“Keep in mind that API not only runs from server to server but also from people to people.”