Bangun Arsitektur Cloud Menggunakan Microservice

 

Arsitektur cloud menjadi hal yang penting saat kamu ingin mengembangkan aplikasi. Jika kamu ingin membangun arsitektur cloud di Google Cloud menggunakan pendekatan microservice, silakan simak artikel ini dengan saksama ya!

Saat mengembangkan aplikasi, tentunya kamu ingin aplikasi tersebut memiliki arsitektur yang andal dan minim kendala agar dapat terus beroperasi. Arsitektur yang kamu bangun diharapkan mampu menangani lonjakan traffic dari pelanggan dan memiliki tingkat kegagalan operasi yang sangat rendah. Bahkan, akan sangat baik jika tidak memiliki downtime (waktu henti) sama sekali. Meskipun jika suatu saat terjadi kegagalan di satu service atau komponen, jangan sampai itu membuat keseluruhan aplikasi terhenti.

Memang tidaklah mudah menciptakan arsitektur yang sempurna. Namun, cara yang bisa membantu kamu dalam mewujudkan hal itu adalah dengan mengimplementasikan arsitektur cloud menggunakan pendekatan microservice.

Apa itu Microservice?

Microservice mengacu pada gaya arsitektural untuk mengembangkan aplikasi yang membagi program/aplikasi besar menjadi sejumlah service (layanan) independen yang lebih kecil. Karena dijalankan secara independen, setiap service dapat di-update, di-deploy, dan di-scale untuk memenuhi permintaan fungsi tertentu dari suatu aplikasi. Terlebih lagi, setiap service mengelola datanya sendiri. Ini kontras dengan aplikasi monolitik yang mengimplementasikan semua fitur dalam satu codebase (basis kode) dan satu database untuk semua data.


Microservice tengah menjadi tren di industri saat ini. Namun, jangan gunakan arsitektur ini hanya karena sedang tren, pastikan kamu memiliki alasan kredibel. 

Alasan utama mengapa banyak perusahaan yang memilih microservice adalah karena gaya arsitektur yang satu ini memungkinkan tim mereka untuk bekerja secara independen dan menyajikan hasil ke production sesuai ritme masing-masing tim. Sehingga, ini mendukung perusahaan untuk mengelola tim dengan baik dan mempercepat proses pengembangan aplikasi.

Begini maksudnya. Jika kamu menggunakan arsitektur monolitik, semua komponen harus di-deploy bersama-sama pada waktu yang telah ditentukan. Bayangkan jika aplikasi dikerjakan oleh beberapa tim, mereka harus saling menunggu hingga semua komponen selesai. Berbeda jika kamu menggunakan arsitektur microservice, di mana setiap komponen dapat di-deploy sendiri-sendiri tanpa perlu menanti komponen yang lain selesai.

Google Cloud menyediakan beberapa layanan komputasi yang memfasilitasi microservice, termasuk App Engine, Cloud Run, Google Kubernetes Engine, dan Cloud Functions. Masing-masing layanan tersebut menawarkan tingkat kontrol yang berbeda. Kamu bisa pelajari masing-masing service tersebut di kelas Menjadi Google Cloud Architect.

Kelebihan dan Kekurangan Microservice

Sekarang, mari kita tengok pro dan kontra dari microservice. Berikut adalah beberapa kelebihan atau keuntungan dari arsitektur microservice.

  • Arsitektur lebih mudah untuk dikembangkan dan dipelihara.
  • Mengurangi risiko terjadinya kegagalan saat men-deploy versi baru dari sebuah aplikasi.
  • Setiap service di-scale secara independen guna mengoptimalkan penggunaan infrastruktur.
  • Mempercepat dan mempermudah proses penambahan fitur baru. 
  • Memungkinkan kamu untuk menggunakan bahasa pemrograman dan framework yang berbeda untuk setiap service.

Kendati begitu, arsitektur microservice juga mempunyai tantangan yang perlu kamu pertimbangkan sebagai berikut.

  • Sulit untuk menentukan batasan yang jelas antara masing-masing service untuk mendukung development (pengembangan) dan deployment (proses deploy) yang independen.
  • Meningkatkan kompleksitas saat berkomunikasi antar-service.
  • Meningkatkan latensi antar-service.
  • Mengamankan traffic antar-service.
  • Melakukan beberapa kali deployment, mengingat aplikasi terdiri dari beberapa service.
  • Memastikan bahwa aplikasi tidak akan rusak saat men-deploy versi baru.

Cara Menerapkan Microservice

Sebelum itu, kamu harus tahu dulu bahwa sebenarnya arsitektur monolitik bukan berarti buruk sama sekali. Ia menjadi langkah awal yang bagus bagi kamu yang baru memulai pengembangan aplikasi agar bisa memahami kompleksitas sistem dan cakupan setiap komponen lebih baik. Namun, seiring makin rumitnya sistem yang kamu bangun, akan makin sulit pula untuk dikelola bila tetap menerapkan pendekatan monolitik.

Pasalnya, itu berarti semua komponen (seperti authentication service, order service, account service, dll) saling terikat dan bergantung satu sama lain. Jika salah satu komponen gagal beroperasi, kemungkinan besar komponen yang lain akan terkendala.

Oleh karena itu, apabila kamu memiliki aplikasi yang menggunakan pendekatan monolitik dan dirasa sudah sangat kompleks sehingga sulit untuk dikelola, sebaiknya modifikasilah arsitekturnya agar menerapkan pendekatan microservice.

Perlu kamu ketahui, menguraikan aplikasi menjadi microservice adalah salah satu tantangan teknis terbesar dari desain aplikasi. Salah satu cara yang akan membantu kamu dalam hal ini adalah dengan mengelompokkan fungsional aplikasi secara logis. 

Berikut adalah langkah-langkah dalam menguraikan aplikasi menjadi microservice.

  • Langkah pertama adalah menguraikan aplikasi berdasarkan fitur atau pengelompokan fungsional untuk meminimalkan ketergantungan. Misalnya, pada aplikasi ritel online, pengelompokan fungsionalnya adalah manajemen produk, ulasan, akun, dan pesanan. Masing-masing pengelompokan tersebut kemudian membentuk service.
  • Lalu, service tersebut diatur berdasarkan lapisan arsitektur (Web, Android, dan iOS user interface) dan masing-masing harus bisa di-deploy dan di-scale secara independen.
  • Setelah itu, service yang berbagi fungsionalitas seperti authentication dan reporting service diisolasi serta di-deploy secara terpisah.

Comments

Popular Posts