Lewati ke konten utama

Horizontal Scaling inside the Cloud: Multi Nodes

Dengan platform ini, hosting aplikasi Anda menjadi benar-benar fleksibel. Selain automatic vertical scaling, platform ini juga memungkinkan Anda untuk menambah/mengurangi jumlah server di lingkungan Anda secara manual atau otomatis.

Proses scaling manual cukup sederhana - buka wizard environment topology dan gunakan tombol “+” dan “-” yang sesuai atau ketik jumlah yang diinginkan di panel tengah. Anda juga dapat menggunakan slider yang secara otomatis muncul saat melakukan penyesuaian.

topology wizard horizontal scaling
tip

Anda dapat mengotomatisasi horizontal scaling berdasarkan beban masuk dengan bantuan tunable triggers. Anda dapat menggunakan node awal (master) dari layer sebagai storage server untuk berbagi data dalam seluruh layer. Dalam kasus pengurangan skala (mis. mengurangi jumlah node), container terakhir yang ditambahkan ke layer adalah yang pertama dihapus (kecuali dipilih secara eksplisit).

Selanjutnya, Anda dapat memilih mode scaling yang diperlukan dari daftar drop-down yang sesuai. Untuk detail lebih lanjut, lihat bagian horizontal scaling specifics di bawah ini.

Scaling Modes

Mulai dari versi platform 5.5, mode scaling yang diinginkan dapat dipilih untuk lingkungan baru selama pembuatan, serta disesuaikan untuk yang sudah ada melalui topology wizard:

  • Stateless - membuat semua node baru secara bersamaan dari template image dasar
  • Stateful - secara berurutan menyalin sistem file dari container master ke node baru
scaling modes

Opsi pertama relatif lebih cepat, sementara yang kedua secara otomatis menyalin semua konfigurasi khusus. Dalam pembuatan layer awal, semua node dibuat secara bersamaan untuk mempercepat proses (bahkan untuk mode stateful, karena tidak ada kustomisasi yang diterapkan).

Saat menggunakan mode stateless, perhatikan bahwa fitur berikut tidak ada di node baru dalam layer:

  • deployments - konteks proyek yang ada tidak akan dipindahkan
  • custom SSL - sertifikat SSL dan konfigurasi tidak akan disalin
  • mount points - mounts kustom hanya akan dipindahkan jika volume yang sesuai dikonfigurasi
  • add-ons - add-ons yang diinstal di layer tidak akan tersedia
tip

Transfer file kustom untuk mode stateless dapat dilakukan secara manual atau dikonfigurasi melalui otomatisasi Cloud Scripting (mis. menggunakan event onBefore dan onAfterScaleOut).

Berdasarkan keunikan ini, platform merekomendasikan (dan menerapkan secara default) mode stateful untuk stack load balancer, application server, dan VPS. Jika diperlukan, Anda dapat mengubah mode scaling untuk node kapan saja melalui topology wizard.

Horizontal Scaling Specifics

Jumlah maksimum server tipe yang sama dalam satu layer environment tergantung pada pengaturan penyedia hosting tertentu (biasanya batas ini untuk 16 node). Anda dapat memeriksa nilai pastinya dalam Quotas & Pricing > Account Limits.

Semua server yang baru ditambahkan dibuat di node hardware yang berbeda, memberikan keandalan dan ketersediaan tinggi.

horizontal scaling high-availability

Setiap grup node environment (layer) diberikan nama yang didedikasikan, yang, jika diperlukan, dapat disesuaikan secara manual. Jika ada beberapa instance di dalamnya, nama layer akan dilengkapi dengan label xN (di mana N adalah jumlah node yang sebenarnya).

Memiliki beberapa node tipe yang sama dalam satu layer memungkinkan pengelolaan sinkron mereka. Dengan demikian, semua container dapat secara bersamaan dikonfigurasi, diperiksa untuk log dan statistik, di-restart atau di-redeploy melalui ikon yang sesuai.

scaled nodes management

Untuk mengoperasikan container tertentu secara terpisah, perluas string layer untuk melihat daftar lengkap nodenya. Masing-masing container ini adalah instance terisolasi yang memiliki Node ID unik dan dapat diakses/dikonfigurasi secara terpisah dari yang lain. Node master layer dapat dengan mudah ditemukan karena ikon khusus.

nodes in scaled layer

Untuk memfasilitasi interaksi dengan banyak server dari tipe yang sama, platform juga memungkinkan menandai node tertentu dengan label yang sesuai, misalnya untuk mendefinisikan instance master dan slave dalam cluster DB.

Cukup klik dua kali pada nilai Node ID: xxx default (atau arahkan kursor ke atasnya untuk menampilkan ikon pensil khusus) dan tentukan nama alternatif yang diinginkan.

aliases for scaled nodes

Informasi lebih lanjut tentang fitur labeling ini dapat ditemukan di dokumen Environment Aliases.

Saat menskalakan berbagai jenis stack, pertimbangkan spesifikasi berikut:

  • saat menskalakan instance application server, node load balancer akan secara otomatis ditambahkan ke topology environment
  • jika mengaktifkan opsi high-availability untuk application server, load balancer NGINX yang diperlukan tidak dapat diskalakan secara horizontal (jika beberapa node NGINX tersedia sebelumnya, mereka akan secara otomatis dikurangi menjadi satu instance)
  • saat menskalakan node VPS, masing-masing diberikan alamat public IP terpisah yang dilampirkan
  • Maven adalah satu-satunya node yang tidak dapat diskalakan secara horizontal (karena tidak ada gunanya dalam operasi semacam itu)

Sekarang Anda tahu betapa mudahnya menskalakan instance secara horizontal di platform dan memahami spesifikasinya. Juga, jangan ragu untuk mengonfigurasi automatic nodes scaling untuk dengan mulus mengatasi lonjakan beban tinggi tanpa membayar lebih untuk sumber daya yang tidak terpakai.

Managing Nodes within Layer

Platform menyediakan pengelolaan node yang sederhana, di mana Anda hanya perlu menentukan jumlah container yang diperlukan dalam satu layer. Proses penghapusan dilakukan dalam urutan yang berlawanan dengan penambahan - yaitu container yang paling baru ditambahkan dihapus pertama. Jika Anda perlu menghapus node tertentu, Anda dapat memilih yang diinginkan melalui:

  • bagian Horizontal Scaling di topology wizard - dapat diakses menggunakan tombol Change Environment Topology di sebelah environment yang diperlukan
nodes management wizard
  • formulir Scaling Nodes khusus di dashboard - dapat diakses menggunakan opsi Additionally > Scaling Nodes di sebelah layer atau Additionally > Delete di sebelah node tertentu

    delete node dashboard

Dalam jendela Scaling Nodes, Anda dapat melakukan tindakan berikut:

  1. Tambahkan node baru ke layer, menggunakan tombol + atau Add New Node.
scaling nodes add
tip

Jika opsi high availability diaktifkan untuk layer (tersedia hanya untuk Tomcat dan TomEE application server), node ditambahkan dan dihapus dalam pasangan. Ikon node baru mewakili mode scaling dari layer - container kosong untuk stateless dan penuh untuk stateful.

  1. Hapus instance dengan tombol - dan Delete (saat mengarahkan kursor ke node tertentu).
scaling nodes delete
tip

Node pertama dalam daftar disebut sebagai “master” dari layer (disorot dengan ikon khusus) dan hanya dapat dihapus bersama dengan seluruh layer. Anda dapat Undo Deletion dari node yang ada selama konfigurasi. Namun, setelah menerapkan perubahan, instance akan dihapus secara permanen.

  1. Di bagian bawah frame, terdapat redirect ke bagian Automatic Horizontal Scaling.
auto scaling redirect

Jika ada penyesuaian yang dilakukan dalam formulir, Anda harus mengonfirmasi redirect melalui pop-up (karena perubahan yang tidak disimpan akan dibuang).

  1. Saat menerapkan perubahan, platform secara otomatis memberi tahu Anda tentang semua tindakan yang mungkin berbahaya yang akan dilakukan pada environment Anda (jika ada). Daftarnya mencakup:
  • pemberitahuan restart node
  • pengingat penghapusan layer dan node terpisah
  • dampak pada mount NFS yang ada
confirm changes

Sebelum melanjutkan, pastikan bahwa poin yang terdaftar tidak akan mempengaruhi aplikasi Anda, dan data penting (dari node yang dihapus) telah dicadangkan dengan aman.

Baca Juga