Horizontal and Vertical scaling, sebuah catatan.
Horizontal dan vertical scaling adalah dua pendekatan yang bisa kita gunakan untuk meningkatkan kapasitas sebuah sistem ketika beban kerjanya meningkat.
Vertical scaling atau scale up adalah meningkatkan kapasitas mesin yang ada. Misalnya, kita bisa menambahkan CPU, RAM, atau storage ke server sehingga bisa menangani beban lebih besar.
Keuntungan utama dari vertical scaling adalah dia relatif sederhana karena kita tidak perlu untuk mendistribusikan sistem ke beberapa server. Akan tetapi, pendekatan ini memiliki keterbatasan. Pada satu titik, kita tidak bisa terus menambahkan CPU atau RAM karena satu mesin punya batas fisik untuk itu. Terlalu bergantung hanya pada satu mesin yang bertenaga juga dapat menciptakan kegagalan satu titik.
Horizontal scaling atau scaling out, mengambil pendekatan yang berbeda. Daripada membuat satu mesin menjadi lebih bertenaga, kita menamahkan mesin baru ke sistem dan mendistribusikan beban di antara mereka.
Sebagai contoh, daripada memiliki satu server untuk menangani semua request dari user, kita bisa menggunakan beberapa server dan membagi request ke server-server tersebut. Ketika trafik meningkat, kita bisa menambahkan server lagi untuk meningkatkan kapasitas sistem total.
Horizontal scaling biasanya memberikan fleksibilitas dan toleransi kegagalan yang lebih baik karena sistem tidak hanya bergantung ke satu mesin. Jika satu server gagal, server yang lain dapat terus menangani beban. Akan tetapi, horizontal scaling juga membuat arsitektur sistem menjadi lebih kompleks karena kita perlu memikirkan bagaimana request didistribusikan, bagaimana data disinkronisasi, bagaimana komunikasi antar server
Jadi, perbedaannya cukup sederhana. Vertical scaling berarti membuat sebuah mesin menjadi lebih powerful, sedangkan horizontal scaling berarti menambah mesin
Dalam praktiknya, pemilihan antara keduanya bergantung dari kebutuhan sistem. Vertikal scaling bisa menjadi solusi sederhana untuk meningkatkan kapasitas dalam jangka pendek, sedangkan horizontal scaling biasanya lebih cocok untuk sistem yang lebih besar