Prinsip ini dalam pilar pengoptimalan performa dari Google Cloud Framework Arsitektur memberikan rekomendasi untuk membantu Anda menerapkan elastisitas, yaitu kemampuan untuk 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 melebihi penyediaan atau kurang menyediakan resource.
Ringkasan prinsip
Persyaratan performa sistem secara langsung memengaruhi kapan dan bagaimana sistem diskalakan secara vertikal atau diskalakan secara horizontal. Anda perlu mengevaluasi kapasitas sistem dan menentukan beban yang diharapkan ditangani sistem pada dasar pengukuran. Kemudian, Anda perlu menentukan bagaimana Anda ingin sistem merespons peningkatan dan penurunan beban.
Saat beban meningkat, sistem harus diskalakan secara horizontal, ditingkatkan skalanya 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 berisi lebih banyak kapasitas, lebih banyak memori, dan lebih banyak penyimpanan.
Saat beban berkurang, sistem harus menskalakan ke bawah (secara horizontal, vertikal, atau keduanya).
Tentukan keadaan saat sistem melakukan penskalaan ke atas atau penskalaan ke bawah. Rencanakan untuk meningkatkan skala sistem secara manual selama 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 peningkatan permintaan pelanggan yang diperkirakan.
Pertimbangkan untuk menskalakan sistem Anda sebelum periode traffic tinggi yang diketahui. Misalnya, jika Anda adalah organisasi retail, Anda mengharapkan permintaan meningkat selama promosi musiman. Sebaiknya Anda menskalakan sistem secara manual sebelum promosi 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 yang didasarkan pada metrik. Metrik ini dapat mencakup penggunaan 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 berperforma secara optimal hingga pemanfaatan CPU rata-rata mencapai 75%. Dalam contoh ini, Anda dapat menentukan kebijakan penskalaan otomatis yang membuat lebih banyak instance saat penggunaan 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 konfigurasikan untuk MIG tercapai. Saat permintaan menurun, kebijakan penskalaan otomatis akan menghapus instance yang tidak lagi diperlukan.
Rencanakan reservasi slot resource di BigQuery atau sesuaikan batas untuk konfigurasi penskalaan otomatis di Spanner menggunakan autoscaler terkelola.
Menggunakan penskalaan prediktif
Jika komponen sistem Anda menyertakan 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, penggunaan CPU. Perkiraan dihitung ulang setiap beberapa menit, sehingga autoscaler menyesuaikan perkiraan 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.
Mengimplementasikan arsitektur serverless
Pertimbangkan untuk menerapkan arsitektur serverless dengan layanan serverless yang secara inheren bersifat 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 yang 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.