Penskalaan Vertikal dan Horizontal

Perbedaan Vertical Scaling dan Horizontal Scaling

Saat mengalami permintaan beban yang meningkat, maka untuk memenuhi perluasan sistem IT kamu, kamu memiliki dua pilihan, yaitu penskalaan horizontal atau vertikal. Ya, mana yang akan kamu pilih vertical scaling atau horizontal scaling.

Kedua strategi tersebut melibatkan penambahan sumber daya baru (RAM, CPU, hard disk, dll.) ke infrastruktur komputasi, tetapi keduanya memiliki manfaat dan tantangan yang berbeda.

Jadi, ketika permintaan beban untuk aplikasi atau situs web kamu meningkat, apakah kamu harus scaling secara horizontal atau vertical?

Mari kita bahas apa itu skalabilitas, dan apa bedanya vertical scaling dan horizontal scaling, yang selanjutnya scaling akan disebut penskalaan.

Apa itu Skalabilitas?

Skalabilitas adalah kemampuan sistem komputer (perangkat keras atau perangkat lunak) untuk terus berfungsi dengan baik ketika terjadi perubahan ukuran atau volume. Sistem yang dapat diskalakan berkembang dengan mulus untuk memenuhi permintaan pelanggan yang meningkat dan beban kerja yang lebih besar tanpa memengaruhi kualitas layanan.

Setiap sistem IT (situs web, aplikasi, basis data, dll.) memiliki batas skalabilitas, suatu titik di mana ia tidak dapat lagi menangani permintaan tambahan tanpa masalah. Kurangnya sumber daya untuk memenuhi kebutuhan lalu lintas atau permintaan pengguna menyebabkan latensi, sementara beberapa kelebihan beban yang ekstrim menyebabkan server crash dan downtime.

Satu-satunya cara untuk mendorong batas skalabilitas sistem adalah dengan menambahkan lebih banyak sumber daya komputasi (yaitu, untuk menskalakan sistem).

Umumnya, Sysadmin menskalakan mesin dengan meningkatkan satu (atau lebih) hal berikut:

  • Disk I/O.
  • Unit pemrosesan pusat (CPU).
  • Memori/penyimpanan.
  • Bandwidth jaringan.

Kamu juga dapat menurunkan skala sistem. Proses ini melibatkan penurunan kapasitas untuk menyesuaikan dengan permintaan supaya lebih kecil, biasanya untuk mengeliminasi pengeluaran yang tidak perlu dan mengurangi biaya IT. Menurunkan skala adalah hal biasa dalam komputasi awan / cloud karena sysadmin berupaya mengendalikan biaya komputasi awan dengan mengoptimalkan pemanfaatan sumber daya.

Penskalaan naik atau turun dapat bersifat permanen atau sementara. Penskalaan sementara adalah opsi yang umumnya dipilih ketika perusahaan mengharapkan dapat menangani ledakan lalu lintas atau aktivitas jangka pendek yang akan berlalu seiring waktu (misalnya, ketika situs web e-commerce bersiap untuk musim liburan).

Ada dua strategi untuk memperluas (scaling) kemampuan sistem:

  • Penskalaan horizontal : menambahkan lebih banyak server ke kumpulan sumber daya dan mendistribusikan beban ke lebih banyak perangkat.
  • Penskalaan vertikal : memutakhirkan mesin saat ini dengan komponen yang lebih banyak atau lebih baik, seperti menambahkan CPU baru atau RAM ekstra ke server.

Mari kita bahas satu per satu detail dari dua pilihan vertical scaling dan horizontal scaling tersebut.

Horizontal Scaling

Penskalaan horizontal (scaling out) adalah penambahan lebih banyak node ke kumpulan sumber daya sistem untuk memenuhi peningkatan permintaan beban kerja sistem IT.

Dalam hal ini kamu tidak meningkatkan spesifikasi mesin yang ada—sebagai gantinya, kamu menambahkan lebih banyak server berukuran sama ke cluster dan membagi beban kerja sistem ke lebih banyak perangkat.

Scaling Out ini memungkinkan sysadmin menggabungkan kekuatan beberapa mesin untuk memenuhi tuntutan beban saat ini. Node tidak harus berada di pusat data (data center) yang sama, bahkan tidak harus berada di wilayah yang sama.

Keuntungan Penskalaan Horizontal

  • Sistem yang berskala tidak memiliki batas skalabilitas.
  • Satu-satunya batasan seberapa banyak kamu menskalakan secara horizontal adalah anggaran dan ruang pusat data.
  • Mendistribusikan data dan operasi antar node sehingga meningkatkan toleransi kesalahan.
  • Jika salah satu server mati, sistem lainnya akan membuat layanan tetap online dan menjaga ketersediaan data (availability).
  • Sistem tidak offline selama proses penskalaan.
  • Sistem yang skalanya ditingkatkan juga memungkinkan kamu untuk mengurangi kapasitas dengan mudah, sehingga kamu tidak harus selalu membayar biaya seperti saat permintaan dan beban kerja paling tinggi.
  • Tim ahli tahu cara menyiapkan sistem yang dapat diskalakan secara otomatis (dengan dua cara).
  • Sysadmin dapat mendistribusikan cadangan data di beberapa node.

Kerugian Penskalaan Horizontal

  • Anda harus menambahkan software untuk load balancing dan memastikan node melakukan sinkronisasi secara efektif.
  • Penyiapan dan pengaturan penskalaan horizontal menjadi tantangan bagi tim yang kurang berpengalaman.
  • Manajemen server sehari-hari menjadi lebih kompleks, apalagi jika semakin banyak node yang kamu tambahkan ke sistem.
  • Konsistensi data menjadi perhatian karena komunikasi lintas server.
  • Komunikasi node-to-node memperlambat kinerja di cluster yang kurang optimal.
  • Server masih menemui batasan perangkat keras jika mesin terlalu kecil.
  • Setiap server baru membutuhkan lebih banyak ruang, pendinginan, dan daya, sehingga peningkatan biaya besar dan menjadi tidak terkendali.
  • Lebih banyak node menciptakan permukaan serangan yang lebih besar dan membutuhkan perencanaan mitigasi insiden yang lebih kompleks.

Vertical Scaling

Penskalaan vertikal (scaling up) adalah penambahan lebih banyak perangkat keras ke mesin yang sudah ada sehingga kamu menjalankan beban kerja yang sama dengan spesifikasi mesin yang lebih baik. Misalnya, jika server memerlukan lebih banyak daya pemrosesan, menskalakan perangkat secara vertikal berarti meningkatkan CPU-nya, jika server memerlukan lebih banyak kapasitas maka menambahka hard disk-nya.

Contoh lain dari penskalaan vertikal meliputi:

  • Menambahkan lebih banyak RAM ke mesin.
  • Memutakhirkan hard disk drive ke SSD dengan lebih banyak penyimpanan.
  • Meningkatkan kecepatan jaringan.
  • Dalam beberapa kasus, penskalaan vertikal berarti mengganti mesin seluruhnya untuk mengatasi peningkatan permintaan dan beban.

Saat ini, penskalaan vertikal adalah pilihan umum untuk perusahaan kecil hingga menengah yang melihat perbedaan nyata dalam kinerja atau UX dari mesin yang ditingkatkan.

Keuntungan Penskalaan Vertikal

  • Waktu respons cepat karena tidak ada node tersinkronisasi yang berkomunikasi satu sama lain.
  • Meningkatkan biaya komponen tertentu lebih murah daripada membeli server baru.
  • Kamu membutuhkan lebih sedikit ruang di ruang server untuk menskalakan secara vertikal daripada horizontal (pendinginan dan tagihan listrik juga lebih rendah).
  • Semuanya berjalan pada satu node, yang menghasilkan konsistensi dan integritas data yang lebih baik.
  • Mudah diimplementasikan karena tidak perlu load balancing atau virtualisasi.
  • Kamu tidak menambahkan kerumitan ekstra pada manajemen IT sehari-hari.

Kerugian Penskalaan Vertikal

  • Ada batasan seberapa besar skala yang dapat diskalakan oleh satu mesin karena setiap perangkat memiliki ambang batas untuk RAM, penyimpanan, dan daya pemrosesan.
  • Kemungkinan downtime layanan lebih tinggi karena kamu mengandalkan satu mesin yang bertindak sebagai satu titik kegagalan.
  • Kamu harus membuat mesin offline untuk melakukan peningkatan / scale up.
  • Selalu ada persentase sumber daya komputasi yang tidak kamu gunakan secara aktif.
  • Peningkatan risiko kehilangan data permanen karena menghosting semuanya di satu server.

Kesimpulan

Horizontal scaling atau pun vertical scaling memiliki kelebihan dan kekurangan masing-masing. Mengetahui kebutuhan kamu saat ini dan risiko di masa yang akan datang akan membantu kamu dalam menentukan penskalaan yang mana yang akan kamu pilih untuk sistem IT kamu.

Berikut ilustrasi perbedaan penskalaan horizontal dan vertikal:

Horizontal and Vertical Scaling