Senin, Maret 11, 2019

Pengantar Microservices

Microservices adalah sistem terdistibusi yang berukuran kecil dan longgar. Arsitektur microservices berubah menjadi solusi untuk tantangan skalabilitas dan inovasi terhadap arsitektur monolith yang pada dasarnya merupakan bentuk aplikasi arsitektur yang berukuran besar (lebih dari 100k baris kode program). Microservices memungkinkan pengembang untuk membuat aplikasi dan menguraikannya atau mengubahnya menjadi partisi komponen kecil yang mudah diatur dengan beban yang didefinisikan secara sempit.

Alasan Menggunakan Microservices, karena :
Aplikasi monolith, memiliki beberapa kekurangan dalam pengembangannya, yaitu;
satu, Untuk aplikasi berukuran besar, kompleksitas pengembangan aplikasi sangat sulit untuk dipahami dan juga dalam hal pengubahan kode program yang tidak bisa dilakukan secara cepat dan akurat, bahkan terkadang pengembangan kode program menjadi sulit untuk di-manage.
dua, Aplikasi membutuhkan pengujian yang ekstensif untuk memastikan dampak dari perubahan pengembangan aplikasi.
tiga, Aplikasi membutuhkan pembangunan dan deploy ulang walaupun hanya untuk perubahan kecil.
empat, Aplikasi yang berukuran besar memperlambat waktu start-up.

Keunggulan Microservices
satu, Ukuran modul yang kecil, aplikasi dipecah menjadi modul-modul berukuran kecil yang memudahkan pengembangan dan perawatan aplikasi.
dua, Adaptasi proses yang mudah, dengan menggunakan microservices, teknologi baru dan adaptasi proses menjadi lebih mudah. Teknologi bisa diuji dengan menggunakan microservices yang digunakan saat ini.
tiga, Scaling yang independent, setiap microservices dapat melakukan scale secara independent melalui X-axis scaling dan Z-axis scaling, sesuai dengan nilai kebutuhan.
empat, Tidak mudah terpengaruh, aplikasi berukuran besar tidak terpengaruh oleh kegagalan single modul.
lima, DURS, setiap aplikasi dapat melakukan DURS (development, updates, replaces, dan scaled).

Kendala Microsevices
satu, Konfigurasi manajemen, proses konfigurasi dan pengawasan merupakan permasalahan yang rumit dalam microservices. Microservices perlu mempertahankan konfigurasi dari ratusan komponen diberbagai lingkungan pengembangan.
dua, Debugging, Menemukan error pada sistem adalah proses yang sulit. Pengembang mungkin harus melihat ke dalam berbagai fasilitas pelayanan atau services pada berbagai komponen yang berbeda. Dashboard dan logging terpusat adalah komponen penting untuk membuat proses pencarian debug menjadi lebih mudah.
tiga, Otomatisasi, karena terdapat begitu banyak komponen kecil sebagai ganti dari arsitektur monolith, maka semuanya harus dipastikan dapat berjalan secara otomatis baik untuk builds, deployment, monitoring, dan lain sebagainya.
empat, Testing, membutuhkan upaya yang lebih besar untuk pengujian dari ujung ke ujung sistem karena operasinal sistem yang bekerja independent.

Microservices framework untuk bahasa pemrograman Java
satu, Spring Boot, framework Spring Boot merupakan framework Java terbaik yang dapat bekerja pada bahasa tingkat tinggi untuk Inversion of Control, Aspect Oriented Programming, dan lain sebagainya.
dua, Dropwizard, adalah framework yang menjaga segalanya seimbang, libraries usang dari ekosistem Java diubah menjadi sederhana, package ringan yang memungkinkan untul lebih fokus dalam pengembangan.
tiga, Restlet, membantu pengembang Java membangun web API yang lebih baik sesuai dengan gaya arsitektur REST.
empat, Spark, adalah mikro framework yang digunakan untuk menciptakan aplikasi web pada Kotlin dan Java 8 dengan beban kerja minimal.

Beberapa framework lain yang bisa menjadi pertimbangan bagi pengembang adalah Ninja Web Framework, Play Framework, RestExpress, dan Restx Framework.

Tidak ada komentar:

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D

Footer Adsense