Memanfaatkan elastisitas

Last reviewed 2024-12-06 UTC

Prinsip dalam pilar pengoptimalan performa Google Cloud Framework yang Dirancang dengan Baik ini memberikan rekomendasi untuk membantu Anda menerapkan elastisitas, yaitu kemampuan menyesuaikan resource secara dinamis berdasarkan perubahan persyaratan workload.

Elastisitas memungkinkan berbagai komponen sistem diskalakan secara independen. Penskalaan yang ditargetkan ini dapat membantu meningkatkan performa dan efisiensi biaya dengan mengalokasikan resource secara tepat di tempat yang diperlukan, tanpa menyediakan terlalu banyak atau terlalu sedikit resource.

Ringkasan prinsip

Persyaratan performa sistem secara langsung memengaruhi kapan dan bagaimana sistem melakukan penskalaan vertikal atau penskalaan horizontal. Anda perlu mengevaluasi kapasitas sistem dan menentukan beban yang diharapkan dapat ditangani sistem pada dasar pengukuran. Kemudian, Anda perlu menentukan cara sistem merespons peningkatan dan penurunan beban.

Saat beban meningkat, sistem harus menskalakan secara horizontal, menskalakan secara vertikal, atau keduanya. Untuk penskalaan horizontal, tambahkan node replika untuk memastikan bahwa sistem memiliki kapasitas keseluruhan yang memadai untuk memenuhi peningkatan permintaan. Untuk penskalaan vertikal, ganti komponen aplikasi yang ada dengan komponen yang memiliki kapasitas, memori, dan penyimpanan yang lebih besar.

Saat beban berkurang, sistem harus menurunkan skala (secara horizontal, vertikal, atau keduanya).

Tentukan kondisi saat sistem melakukan penskalaan atau penurunan skala. Rencanakan untuk menskalakan sistem secara manual untuk periode traffic tinggi yang diketahui. Gunakan alat seperti penskalaan otomatis, yang merespons peningkatan atau penurunan beban.

Rekomendasi

Untuk memanfaatkan elastisitas, pertimbangkan rekomendasi di bagian berikut.

Merencanakan periode beban puncak

Anda perlu merencanakan jalur penskalaan yang efisien untuk peristiwa yang diketahui, seperti periode yang diperkirakan akan mengalami peningkatan permintaan pelanggan.

Pertimbangkan untuk meningkatkan skala sistem Anda sebelum periode traffic tinggi yang diketahui. Misalnya, jika Anda adalah organisasi retail, Anda memperkirakan permintaan akan meningkat selama penjualan musiman. Sebaiknya Anda menskalakan sistem secara manual sebelum penjualan tersebut untuk memastikan sistem Anda dapat segera menangani peningkatan beban atau segera menyesuaikan batas yang ada. Jika tidak, sistem mungkin memerlukan waktu beberapa menit untuk menambahkan resource sebagai respons terhadap perubahan real-time. Kapasitas aplikasi Anda mungkin tidak meningkat cukup cepat dan menyebabkan beberapa pengguna mengalami penundaan.

Untuk peristiwa yang tidak diketahui atau tidak terduga, seperti lonjakan permintaan atau traffic secara tiba-tiba, Anda dapat menggunakan fitur penskalaan otomatis untuk memicu penskalaan elastis berdasarkan metrik. Metrik ini dapat mencakup pemakaian CPU, kapasitas penyaluran load balancer, latensi, dan bahkan metrik kustom yang Anda tentukan di Cloud Monitoring.

Misalnya, pertimbangkan aplikasi yang berjalan di grup instance terkelola (MIG) Compute Engine. Aplikasi ini memiliki persyaratan bahwa setiap instance harus beroperasi secara optimal hingga pemakaian CPU rata-rata mencapai 75%. Dalam contoh ini, Anda dapat menentukan kebijakan penskalaan otomatis yang membuat lebih banyak instance saat pemakaian CPU mencapai nilai minimum. Instance yang baru dibuat ini membantu menyerap beban, yang membantu memastikan bahwa penggunaan CPU rata-rata tetap pada tingkat yang optimal hingga jumlah maksimum instance yang telah Anda konfigurasi untuk MIG tercapai. Saat permintaan menurun, kebijakan penskalaan otomatis akan menghapus instance yang tidak lagi diperlukan.

Rencanakan pemesanan slot resource di BigQuery atau sesuaikan batas untuk konfigurasi penskalaan otomatis di Spanner menggunakan penskala otomatis terkelola.

Menggunakan penskalaan prediktif

Jika komponen sistem Anda mencakup Compute Engine, Anda harus mengevaluasi apakah penskalaan otomatis prediktif cocok untuk workload Anda. Penskalaan otomatis prediktif memperkirakan beban mendatang berdasarkan tren historis metrik Anda—misalnya, pemanfaatan CPU. Perkiraan dihitung ulang setiap beberapa menit, sehingga autoscaler menyesuaikan perkiraannya dengan cepat ke perubahan muatan terbaru. Tanpa penskalaan otomatis prediktif, autoscaler hanya dapat menskalakan grup secara reaktif, berdasarkan perubahan beban real-time yang diamati. Penskalaan otomatis prediktif berfungsi dengan data real-time dan data historis untuk merespons beban saat ini dan yang diperkirakan.

Menerapkan arsitektur serverless

Pertimbangkan untuk menerapkan arsitektur serverless dengan layanan serverless yang secara inheren elastis, seperti berikut:

Tidak seperti penskalaan otomatis di layanan lain yang memerlukan aturan penyesuaian (misalnya, Compute Engine), penskalaan otomatis serverless bersifat instan dan dapat memperkecil skala ke nol resource.

Menggunakan mode Autopilot untuk Kubernetes

Untuk aplikasi kompleks yang memerlukan kontrol lebih besar atas Kubernetes, pertimbangkan mode Autopilot di Google Kubernetes Engine (GKE). Mode Autopilot menyediakan otomatisasi dan skalabilitas secara default. GKE secara otomatis menskalakan node dan resource berdasarkan traffic. GKE mengelola node, membuat node baru untuk aplikasi Anda, dan mengonfigurasi upgrade dan perbaikan otomatis.