Wednesday, February 13, 2019

Apa Itu Microservice?

Apa Itu Microservice
Apa kalian sudah mengenal Microservice?

Kalo kata developer jaman sekarang, kalo nggak kenal sama microservices itu gak gaul, kok gak gaul? kenapa emangnya??

Alasannya sederhana karena lagi ngehit banget microservices ini, selain itu microservices juga dapat membantu developer dalam membuat aplikasi yang high performance, scalable, reliable dan secure.

Sebelum masuk ke ranah Microservices itu sendiri, saya akan membahas software arsitektur jaman DULU dan masih digunakan sampai saat ini , yaps itu adalah Monolitik Arsitektur.

Apa Lagi Itu Monolitik Arsitektur?

Seperti namanya “Mono” yang berarti satu , monolitik arsitektur merupakan 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 tempat kerja aplikasi yang sama.

Sebagai contoh yaitu aplikasi enterprise
Apa Itu Microservice?

Aplikasi Enterprise dibangun dalam tiga bagian: database , client-side, dan server-side. Dimana Server-side akan menangani request HTTP kemudian menjalankan beberapa logika sesuai dengan domain, kemudian mengambil dan memperbarui data dari database, dan mengurim data tersebut ke sisi client-side.

Nah itulah yang disebut dengan Monolitik, dan ada beberapa penyalah gunaan arsitektur ini yaitu MENULIS QUERY LANGSUNG DI CLIENT-SIDE , hayooo ngaku siapa yang pernah atau justru sering hehe

Lalu kekurangan aplikasi monolitik itu apa sih?
  1. Ketika aplikasi menjadi besar (banyak yang akses) peforma akan menurun (kecuali punya banyak duit buat bayar server yang lebih bagus LOL)
  2. Ketika akan merubah teknologi pada aplikasi maka akan merubah secara keselutuhan aplikasi.
  3. Jika terjadi error pada salah satu fungsi maka akan mempengaruhi keselutuhan aplikasi.

Kelebihan
  1. Mudah dibangun
  2. Mudah di uji
  3. Mudah di deploy ke server atau cloud

Jadi, Apa sih Microservice Itu?

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).

Pola arsitektur Microservice secara signifikan mempengaruhi hubungan antara aplikasi dan database. Alih-alih berbagi skema database tunggal dengan services lainnya, masing-masing services memiliki skema database tersendiri. Di satu sisi, pendekatan ini bertentangan dengan gagasan model data enterprise-wide. Selain itu, sering kali menghasilkan duplikasi beberapa data. Namun, memiliki skema database per service sangat penting jika ingin mendapatkan keuntungan dari layanan microservice. Masing-masing service memiliki database sendiri. Selain itu, services dapat menggunakan jenis database dan bahasa pemrograman yang paling sesuai dengan kebutuhannya.


Apa Itu Microservice?

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 Microservice
  1. Aplikasi scalabale, secure dan reliable
  2. Setiap service berdiri sendiri
  3. Maintence-nya lebih mudah
  4. Tidak ada hambatan dalam menggunakan teknologi baru
  5. Setiap tim developer dapat mengembangkan setiap services-nya tanpa ada mengganngu services yang lain

Kekurangan
  1. Ketika satu entity pada database berubah maka setiap entity yang sama di setiap database service harus diubah
  2. Untuk beberapa kasus , sulit untuk menerapkan perubahan services jadi perlu perancangan yang matang.
  3. Deployment yang kompleks, perlu konfigurasi untuk menjalankan setiap services karena memiliki runtime yang berbebda, tidak seperti aplikasi monolitik tinggal upload , deploy dan beres.
  4. Perlu automation yang tinggi dalam melakukan deployment.
  5. Setiap arsitektur memiliki kelebihan dan kekurangan masing - masing, sepeti halnya kita manusia :)


Sekian yang bisa saya bagikan, jika ada pertanyaan, sanggahan atau kesalahan silahkan tulis komentar anda di kolom komentar. Soalnya saya juga sedang belajar :).


Reviewer: FajarYusuf.Com
ItemReviewed: Apa Itu Microservice?

Seseorang yang ingin membagi pengalaman dan ilmu yang berguna untuk para pembaca FajarYusuf.Com :)

TENTANG SITUS

SITUS INI ADALAH SITUS PEMBELAJARAN PEMROGRAMAN DAN JUGA PEMAHAMAN TERHADAP TEKNOLOGI KOMPUTER. KALIAN BISA MENGIKUTI PEMBELAJARAN PEMROGRAMAN DENGAN BERTAHAP PADA MATERI YANG SUDAH SAYA SEDIAKAN, JIKA ADA MATERI YANG MEMBINGUNGKAN SILAKAN LAKUKAN KOMENTAR PADA MATERI YANG ANDA TANYAKAN ATAU KALIAN BISA MENGHUBUNGI SAYA DIHALAMAN KONTAK.