Perencanaan kapasitas atau scaling merupakan salah satu tantangan teknis dalam memastikan resource yang tepat untuk menangani traffic yang akan masuk, baik yang dapat diprediksi maupun tidak. Saat terdapat sejumlah traffic yang masuk diluar dari ekspektasi yang menyebabkan terjadinya lonjakan resource, maka fitur Vertical Scaling hadir untuk membantu kamu mengatur hal tersebut. Jika membutuhkan lebih dari itu seperti high availability, tersedia juga fitur Horizontal Scaling yang bisa kamu manfaatkan. Simak perbedaan antara horizontal dan vertical scaling di penjelasan berikut !
Horizontal Scaling (Scale Out)
adalah suatu teknik untuk meningkatkan kapasitas sebuah sistem dengan menambahkan lebih banyak instance (node) ke dalam sistem, sehingga meningkatkan jumlah sumber daya yang tersedia secara keseluruhan. Dalam hal ini, setiap node dalam sistem biasanya memiliki spesifikasi yang sama dan bekerja secara independen, serta dapat diganti jika terjadi kegagalan. Horizontal scaling dapat dilakukan dengan menambahkan lebih banyak mesin ke dalam sebuah cluster atau meningkatkan jumlah instance pada cloud.
Dalam konteks aplikasi web, horizontal scaling dapat dilakukan dengan menambahkan lebih banyak server web ke dalam pool server yang ada, sehingga dapat meningkatkan throughput dan ketersediaan aplikasi web. Dalam sistem database, horizontal scaling dapat dilakukan dengan mengelompokkan database ke dalam cluster yang terdiri dari beberapa server database, sehingga dapat meningkatkan kapasitas database dan mempercepat kueri. Keuntungan dari horizontal scaling adalah kemampuan untuk meningkatkan kapasitas sistem dengan relatif mudah dan tanpa membatasi kemampuan node secara individu.
Kelebihan dan Kekurangan
Horizontal scaling memiliki beberapa kelebihan dan kekurangan, di antaranya:
Kelebihan :
- Skalabilitas yang baik:
Horizontal scaling dapat dengan mudah menambahkan lebih banyak sumber daya ke dalam sistem untuk memenuhi kebutuhan yang semakin meningkat, sehingga sistem dapat dengan mudah disesuaikan dengan pertumbuhan bisnis. - Ketersediaan yang lebih baik:
Dengan horizontal scaling, jika terjadi kegagalan pada salah satu instance, instance lain dalam cluster masih dapat melayani permintaan pengguna. - Biaya yang terukur:
Dalam banyak kasus, horizontal scaling dapat dilakukan dengan menambahkan lebih banyak instance ke dalam sistem, sehingga biaya tambahan dapat diperkirakan dengan lebih akurat. - Kemudahan perawatan:
Horizontal scaling memungkinkan untuk mempertahankan dan memperbaiki sistem dengan mudah karena instance yang gagal dapat diganti tanpa mempengaruhi instance lain dalam cluster.
Kekurangan Horizontal Scaling:
- Koordinasi yang rumit:
Horizontal scaling dapat memerlukan koordinasi yang rumit antara instance yang berbeda, terutama dalam sistem yang terdistribusi. Hal ini dapat menghasilkan latensi yang tinggi dan memerlukan pemrograman yang lebih kompleks. - Pembagian beban yang tidak merata:
Dalam beberapa kasus, horizontal scaling dapat menghasilkan pembagian beban yang tidak merata antara instance dalam cluster, yang dapat mengakibatkan beberapa instance terbebani terlalu berat. - Konfigurasi yang lebih sulit:
Dalam beberapa kasus, konfigurasi dan manajemen instance dalam cluster dapat menjadi lebih sulit dan memakan waktu daripada mengelola satu instance yang lebih besar. - Masalah keamanan:
Dalam beberapa kasus, horizontal scaling dapat meningkatkan risiko keamanan, karena ada lebih banyak instance yang perlu dipantau dan dilindungi dari serangan.
Vertical Scaling (Scale Up)
adalah suatu teknik untuk meningkatkan kapasitas suatu instance (node) yang sudah ada dengan menambahkan lebih banyak sumber daya pada instance tersebut. Dalam hal ini, Anda meningkatkan kapasitas mesin yang sudah ada dengan menambahkan CPU, memori, dan penyimpanan. Pada umumnya, vertical scaling biasanya hanya dapat dilakukan pada server fisik karena keterbatasan sumber daya dalam sistem, dan umumnya lebih mahal daripada horizontal scaling.
Dalam konteks aplikasi web, vertical scaling dapat dilakukan dengan menambahkan lebih banyak CPU, RAM, dan penyimpanan pada server web yang ada, sehingga dapat meningkatkan throughput dan ketersediaan aplikasi web. Dalam sistem database, vertical scaling dapat dilakukan dengan menambahkan lebih banyak sumber daya pada server database yang ada, sehingga dapat meningkatkan kapasitas database dan mempercepat kueri.
Kelebihan dan Kekurangan
Vertical scaling (scaling up) memiliki beberapa kelebihan dan kekurangan, di antaranya:
Kelebihan Vertical Scaling:
- Kinerja yang lebih baik:
Dengan menambahkan sumber daya pada instance yang ada, Anda dapat meningkatkan kinerja sistem secara signifikan, sehingga dapat menangani lebih banyak permintaan pengguna. - Manajemen yang lebih mudah:
Vertical scaling memungkinkan untuk mempertahankan dan mengelola sistem dengan mudah karena hanya ada satu instance yang perlu dipertimbangkan. - Biaya yang lebih terukur:
Dalam beberapa kasus, vertical scaling dapat dilakukan dengan menambahkan sumber daya ke dalam mesin yang sudah ada, sehingga biaya tambahan dapat diperkirakan dengan lebih akurat. - Dukungan untuk aplikasi tertentu:
Beberapa aplikasi mungkin lebih cocok untuk dijalankan pada mesin yang lebih besar daripada pada cluster instance yang lebih kecil.
Kekurangan Vertical Scaling:
- Keterbatasan sumber daya:
Vertical scaling memiliki keterbatasan sumber daya tertentu, sehingga tidak dapat terus meningkatkan kapasitas instance tanpa batas. - Risiko downtime:
Menambahkan sumber daya pada instance yang sudah ada dapat menyebabkan downtime pada sistem, terutama jika penambahan tersebut memerlukan perubahan hardware pada server. - Biaya yang lebih mahal:
Vertical scaling biasanya lebih mahal daripada horizontal scaling karena sumber daya yang dibutuhkan lebih mahal. - Tidak sefleksibel horizontal scaling:
Dalam beberapa kasus, vertical scaling mungkin tidak cukup fleksibel untuk menangani kebutuhan bisnis yang terus berubah.
Perbedaan Horizontal dan Vertical Scaling
Horizontal scaling dan vertical scaling adalah dua teknik yang digunakan untuk meningkatkan kapasitas sebuah sistem.
Horizontal scaling (scaling out) melibatkan menambahkan lebih banyak instance (node) ke dalam sistem, sehingga meningkatkan jumlah sumber daya yang tersedia secara keseluruhan. Dalam hal ini, setiap node dalam sistem biasanya memiliki spesifikasi yang sama dan bekerja secara independen, serta dapat diganti jika terjadi kegagalan. Dengan kata lain, horizontal scaling dapat dilakukan dengan menambahkan lebih banyak mesin ke dalam sebuah cluster atau meningkatkan jumlah instance pada cloud.
Di sisi lain, vertical scaling (scaling up) melibatkan menambahkan lebih banyak sumber daya pada suatu instance (node) yang ada. Dalam hal ini, Anda meningkatkan kapasitas mesin yang sudah ada dengan menambahkan CPU, memori, dan penyimpanan. Pada umumnya, vertical scaling biasanya hanya dapat dilakukan pada server fisik karena keterbatasan sumber daya dalam sistem, dan umumnya lebih mahal daripada horizontal scaling.
Secara singkat, perbedaan antara horizontal scaling dan vertical scaling adalah bahwa horizontal scaling melibatkan menambahkan lebih banyak instance ke dalam sistem, sedangkan vertical scaling melibatkan meningkatkan kapasitas suatu instance yang sudah ada.
untuk kamu yang memerlukan layanan cloud untuk bisnis maupun pribadi kami bisa lo order di cloudaja https://www.cloudaja.id/cloud-vps-indonesia atau jika kamu punya website kamu juga bisa order di https://www.natanetwork.com/nvme-hosting-indonesia