Jumat, 07 Agustus 2020

Microservice

Hai guys,, kembali lagi nih... kita mau bahas sesuatu,, yaitu tentang Microservice!! 

sebelum membahas mengenai microservice, ada baiknya kita bahas monolitik arsitektur terlebih dahulu. sebuah arsiterktur lama yang masih dipakai hingga saat ini.


Apa yang dimaksud Monolitik Aristektur?

monolitik arsitektur adalah sebuah arsitektur dimana dalam pembuatan aplikasi. semua komponen menjadi satu kesatuan. Dalam hal ini satu kesatuan berarti menyatukan antara front-end dan backend dalam satu aplikasi yang sama.


Kelebihan monolitik arsitektur

Mudah dibangun

Mudah di uji

Mudah di deploy ke server atau cloud

kekurangan monolotik arsitektur

Ketika aplikasi menjadi besar (banyak yang akses) peforma akan menurun

Ketika akan merubah teknologi pada aplikasi maka akan merubah secara keselutuhan aplikasi.

Jika terjadi error pada salah satu fungsi maka akan mempengaruhi keselutuhan aplikasi.


Apa itu microserver?

Microservices berarti membagi aplikasi menjadi layanan yang lebih kecil dan saling terhubung tidak seperti aplikasi monolitik. Setiap microservice merupakan aplikasi kecil yang memiliki arsitektur heksagonal sendiri yang terdiri dari logika beserta berbagai adapternya (bahasa pemrograman, dll).

Jadi intinya microservice yaitu membagi service ke bagian yang lebih kecil dimana service — service tersebut saling berhungan satu sama lain. Selain itu, dalam setiap services yang dibuat bisa menggunakan teknologi yang berbebeda.

Sedangkan untuk implementasi ke web, android, iOS dll tidak bisa secara langsung. Dimana kita harus membuat terlebih dahulu yang namanya API Gateway. API Gateway memiliki tugas seperti load balancing, caching, access controll , API metering, dan monitoring.


Kelebihan microserver

Aplikasi scalabale, secure dan reliable

Setiap service berdiri sendiri

Maintence-nya lebih mudah

Tidak ada hambatan dalam menggunakan teknologi baru

Setiap tim developer dapat mengembangkan setiap services-nya tanpa ada mengganngu services yang lain

Kekurangan microserver

Ketika satu entity pada database berubah maka setiap entity yang sama di setiap database service harus diubah

Untuk beberapa kasus , sulit untuk menerapkan perubahan services jadi perlu perancangan yang matang.

Deployment yang kompleks, perlu konfigurasi untuk menjalankan setiap services karena memiliki runtime yang berbebda, tidak seperti aplikasi monolitik tinggal upload , deploy dan beres.

Perlu automation yang tinggi dalam melakukan deployment.

Tidak ada komentar:

Posting Komentar