June 24 , 2020

Desain Arsitektur Dalam Dunia Cloud: Utilisasi Performa Lebih Efisien - Bagian 1

Blog blog
Part 1: Scale-Up & Scale-Out Dalam menjalankan layanan aplikasi, seringkali kita mengalami kesulitan untuk benar – benar melakukan prediksi seberapa besar sistem yang dimiliki dapat menampung / meng-handle load dari aplikasi tersebut. Contoh nyata seringkali terjadi pada aplikasi public-facing di mana aplikasi yang berjalan dapat memiliki pengguna yang terus menerus bertambah, sehingga berdampak langsung pada utilisasi sistem di mana sebuah aplikasi berjalan. Contoh lain seperti aplikasi internal yang jumlah penggunanya bertambah banyak seiring dengan bisnis yang terus berkembang. Walaupun kadang dapat diprediksi, sering kali yang terjadi adalah over-provisioning terhadap sistem itu sendiri, dan pada suatu waktu tetap dapat mengalami overload ketika jumlah pengguna tiba – tiba melonjak drastis. Dalam hal ini, fleksibilitas scaling di dalam cloud dapat digunakan untuk membantu mengatasi masalah tersebut. Apa Itu Scaling? Dengan skenario di atas, dapat disimpulkan bahwa resources (CPU, memory, storage, network, dll.) dari sebuah sistem dipengaruhi langsung oleh jumlah pengguna yang mengakses sebuah aplikasi. Artinya, apabila pengguna yang mengakses dapat dikatakan sedikit, maka resource sistem yang digunakan juga kecil. Demikian sebaliknya, apabila pengguna yang mengakses berjumlah banyak, maka resource system juga harus dibuat besar. Ini berarti, scaling sendiri adalah proses manajemen resource untuk menyokong kebutuhan performa dari sebuah aplikasi. Secara teori, apabila popularitas dari sebuah aplikasi adalah konstan, maka sangat mudah untuk melakukan prediksi resource yang tepat untuk menjalankan aplikasi tersebut. Namun pada kenyataannya, popularitas tentu akan dinamis seiring dengan perkembangan sebuah bisnis. Realita tersebut berdampak pada sulitnya melakukan prediksi terhadap resource yang benar – benar dibutuhkan seiring dengan berjalannya waktu. Scaling adalah salah satu keuntungan utama dalam penggunaan cloud. Pada umumnya cloud memiliki kemampuan on-demand provisioning untuk resource – resource yang tersedia sehingga pemenuhan demand dari sebuah aplikasi dapat dilakukan secara cepat. Beberapa fitur di dalam cloud juga mendukung fitur scaling otomatis (auto-scaling). Jenis - Jenis Scaling
  • Scale-Up / Scale-Down. Scale-Up atau Scale-Down adalah proses scaling vertical, di mana perubahan terhadap jumlah resource yang digunakan terbatas hanya pada sebuah layanan saja. Contoh seperti Virtual Machine (VM), di mana scale-up adalah meningkatkan jumlah vCPU dan memory yang digunakan, sedangkan scale-down menurunkan jumlah vCPU dan memory yang digunakan. Contoh lain seperti layanan database-as-a-service, di mana proses scaling berarti menambah / menurunkan Request Unit (RU) dari layanan database itu sendiri. Berikut ilustrasi untuk contoh VM: Proses scaling vertical ini akan memiliki impact yang berbeda – beda, tergantung dari jenis layanan cloud yang digunakan. Untuk VM, misalnya, proses scaling vertical akan menyebabkan VM mengalami restart, sehingga ada downtime dari sisi aplikasi hingga VM tersebut menyala dan berjalan kembali. Perencanaan yang matang dalam aktivitas scaling vertical ini dapat menekan / mengurangi resiko bisnis yang tidak diinginkan.
  • Scale-Out / Scale-In Scale-out atau Scale-in adalah proses scaling horizontal, di mana penambahan / pengurangan instance terpisah dilakukan. Dengan scaling horizontal, maka load terhadap aplikasi akan didistribusikan ke semua instance yang berjalan secara parallel. Sebagai contoh, VM adalah salah satu layanan yang dapat dikonfigurasi scaling horizontal, di mana dalam satu waktu, dapat terjadi tiga VM menjalankan dan menerima akses dari user secara bersamaan dengan bantuan Load Balancer. Berikut ilustrasi untuk scaling horizontal: Untuk menunjang kemudahan scaling horizontal, cloud memiliki fitur untuk melakukan proses scaling secara otomatis (Autoscale). Dengan Autoscale, maka proses scaling horizontal tidak perlu lagi dilakukan secara manual. Autoscale dapat dikonfigurasi dengan rule tertentu, di mana rule tersebut berisi kondisi spesifik yang dapat ditentukan untuk mengatur kapan scaling horizontal dapat terjadi. Apabila rule yang dikonfigurasi terpenuhi, maka scaling horizontal dapat dilakukan oleh cloud.
Pertimbangan Pada Scaling Horizontal:
  • Waktu yang dibutuhkan aplikasi untuk berjalan penuh dapat memiliki impact terhadap ekspektasi kecepatan scaling-nya.
  • Apabila scaling horizontal terjadi berada di layer depan / frontend, maka aplikasi tersebut harus memiliki mekanisme untuk memanggil state (user login, shopping cart, dsb.) yang berjalan. Agar sebuah aplikasi tetap dapat kompatibel dengan scaling horizontal, data – data yang memiliki perubahan dinamis sebaiknya tidak ditaruh di instance yang sama dengan instance tempat aplikasi berjalan. Sebagai contoh, data seperti session pengguna dapat dipindahkan ke redis cache atau SQL database.
Stay tuned untuk bagian berikutnya mengenai optimisasi performa jaringan dalam penggunaan cloud! Ingin tau secara lebih detail atau langsung berdiskusi dengan expert ViBiCloud? Hubungi kami di: email: info@vibicloud.com Whatsapp: Klik Disini
Read More Article's

Hospitals must ensure that patient records, diagnostic images, and administrative files are stored securely, remain easily accessible, and comply with strict data retention regulations.

Read More Article's

Memahami OCR dan IDP sangatlah penting, karena salah mengambil teknologi pada akhirnya akan menghambat pada tujuan perusahaan.

Keep in Touch

Fill Form & Download Our Company Profile (UPDATE)

We are here to assist you with your cooperation in the 24/7 day. We are ready to respond to you by following the information. Please contact us for more information! (UPDATE)

Fill This Form