Scalability: Scale-Up vs Scale-Out
Sebelum memulai pembahasan mengenai Scale Up dan Scale Out, terlebih dahulu kita harus mengetahui apa yang dimaksud dengan Scalability dari sistem. Scalability atau Skalabilitas merupakan kemampuan dari sistem untuk dapat menangani segala penambahan atau pertumbuhan beban kerja, baik dari meningkatkan volume data, jumlah pengguna, maupun menjalankan concurrency tanpa memberikan dampak pada kinerja siste,
Scalability terbagi menjadi dua jenis, yaitu Scale-Up dan Scale-Out. Apa yang menjadi perbedaan dari dua jenis Scalability tersebut? Apa keunggulannya? dan Kapan harus melakukan Scale-Up atau Scale-Out? Berikut ini adalah pembahan mengenai Scale-Up dan Scale-Out.
1. Scale-Up
Yang pertama adalah Scale-Up, yaitu merupakan jenis dari Scalability yang tidak menambah jumlah host (dalam kasus ini adalah server), namun hal yang ditambahkan adalah kemampuan dari host tersebut.
Penambahan kemampuan tersebut dapat berupa penambahan CPU Clock atau upgrade processor, menambah jumlah Memory, dan menambah jumlah Storage.
Tidak hanya pada sisi Hardware, Scale-Up juga dapat dilakukan dari sisi lain, seperti Tuning pada Logic Database dan Logic pada Aplikasi, serta melakukan optimasi pada Business Process dan membuka concurrency yang lebih banyak pada sistem.
2. Scale-Out
Berbeda dengan Scale-Up, Scale-Out merupakan jenis dari Scalability yang menggunakan penambahan jumlah dari perangkat host.
Beberapa hal yang dapat dilakukan untuk melakukan Scale-Out adalah dengan menambah jumlah Server yang digunakan, melakukan deploy aplikasi dan database instance di lebih dari satu server, serta melakukan implementasi Load Balancing.
Contoh dari Scale-Out ini bisa digambarkan dengan penambahan jumlah karyawan pada suatu café. Semakin banyak karyawan yang tersedia, maka semakin cepat dan banyak juga pelanggan yang dapat terlayani.
Kelebihan dan Kekurangan dari Scale-Up dan Scale-Out
Setiap metode atau hal yang ada di dunia ini pasti memiliki kelebihan atau kekurangannya masing-masing, tak terlebih pada masalah Scale-Up dan Scale-Out. Berikut ini adalah kelebihan dan kekurangan dari masing-masing jenis Scalability dari Empat faktor, yaitu Biaya, Pengelolaan, Kapasitas, dan Teknologi.
- Biaya
Faktor yang pertama adalah faktor biaya. Dari penjelasan mengenai Scale-Up dan Scale-Out, maka seharusnya kita sudah mendapati gambaran mengenai biaya dari masing-masing jenis Scalability. Ya, Scale-Out membutuhkan biaya yang lebih dibandingkan dengan Scale-Up.
Ilustrasi dari Faktor ini adalah jika kita menginginkan penyimpanan tambahan untuk komputer yang sedang kita gunakan, maka pastinya kita melakukan penambahan kapasitas dari Storage/penyimpanan pada komputer kita. Bayangkan jika kita melakukan Scale-Out, yaitu membeli komputer baru untuk menyimpan data yang baru. Pastinya akan lebih mahal bukan?
2. Pengelolaan
Faktor selanjutnya adalah Pengelolaan. Untuk pengelolaan sendiri, dapat dikatakan bahwa Scale-Up lebih mudah untuk dikelola dibandingkan dengan Scale-Out. Hal ini dikarenakan banyaknya jumlah perangkan yang digunakan akan berbanding lurus dengan usaha atau kegiatan perawatannya.
Ilustrasi dari faktor ini adalah jika kita memiliki satu hewan peliharaan dan lima hewan peliharaan, maka sudah pasti akan lebih mudah menguruh satu hewan peliharaan dibandingkan dengan yang memiliki lima hewan peliharaan.
3. Kapasitas
Faktor yang ketiga adalah kapasitas. Kapasitas yang dimaksud bukan hanya masalah kapasitas penyimpanan saja, namun juga termasuk kapasitas penggunaannya hingga beberapa tahun kedepan. Scale-Out dapat dipastikan lebih baik daripada Scale-Up pada faktor ini dikarenakan jumlah dari processor, memory, hingga storage dari beberapa host yang mungkin lebih banyak dan lebih baik daripada satu host saja.
Ilustrasi dari faktor ini adalah seperti permasalahan dari Cafe sebelumnya. Jika suatu cafe A memiliki satu pelayan dan cafe B memiliki banyak pelayan. Sudah pasti pelayanan dari Cafe B lebih cepat dibanding Cafe A. Selain itu, tenaga dari pelayan di Cafe A juga pasti lebih cepat terkuras dibanding dengan pelayan di Cafe B.
4. Teknologi
Faktor terakhir adalah Teknologi. Faktor ini sebenarnya agak sedikit rumit untuk dijelaskan. Karena bisa saja Scale-Up yang dilakukan menggunakan teknologi yang lebih baik dari Scale-Out. Namun, hal sudah dapat dipastikan adalah Scale-Out dapat menggunakan teknologi yang lebih baru tanpa harus melepaskan teknologi lamanya, sedangkan pada Scale-Up teknologi yang lama sudah tidak dapat digunakan lagi.
Ilustrasi dari faktor ini adalah pembelian mobil. Saat membeli mobil baru, kita pastinya mendapatkan teknologi yang terbaru dari mobil tersebut. Namun, jika kita hanya ingin melakukan upgrade pada mobil lama kita. Teknologi yang digunakan tidak menjadi lebih baru, namun hanya beberapa bagian saja yang memiliki komponen baru.
Kapan Harus Melakukan Scale-Up atau Scale-Out?
Dari pembahan mengenai Scale-Up dan Scale-Out, maka pasti muncul pertanyaan. Kapan harus melakukan Scale-Up dan kapan harus melakukan Scale Out?
Kita dapat menggunakan Scale-Up jika:
- Sistem tidak menangani Data yang terlalu besar.
- Beban kerja sistem yang terus meningkat.
- Sistem harus menyimpan data pada satu tempat.
- Beberapa komponen dari sistem masih mampu untuk menangani beban yang diberikan kepada siste.
Kita dapat menggunakan Scale-Out jika:
- Jika Scale-Up telah dilakukan namun hasilkan didapat tidak sesuai dengan harapan.
- Komponen dari sistem sudah tidak mampu menangani beban kerja yang diberikan.
- Membutuhkan pendistribusian beban kerja atau beban penyimpanan pada beberapa node.
- Ingin mempersiapkan sistem agar dapat tetap digunakan dalam waktu yang cukup lama.
Kesimpulan
Kesimpulan dari pembahasan mengenai Scale-Up dan Scale-Out adalah Scale-Up merupakan metode yang cocok untuk digunakan jika sistem yang kita gunakan saat ini masih dapat menangani beban kerja yang diberikan, Sedangkan Scale-Out dapat dilakukan jika sistem yang ada sudah tidak mampu menangani beban kerja yang diberikan.
Penggunaan dari Scale-Up dan Scale-Out sendiri dapat disesuaikan dengan Seberapa besar transaksi atau dataset yang ada pada sistem? Bagaimana jenis kebutuhan pengembangan sistem yang ingin Anda lakukan? Apakah untuk jangka panjang atau jangka pendek?
Daftar Pustaka
https://www.missioncloud.com/blog/horizontal-vs-vertical-scaling-which-is-right-for-your-app