Penskalaan berdasarkan prediksi


Anda dapat mengonfigurasi penskalaan otomatis untuk grup instance terkelola (MIG) agar secara otomatis menambahkan atau menghapus instance virtual machine (VM) berdasarkan peningkatan atau penurunan beban. Namun, jika aplikasi Anda memerlukan waktu beberapa menit atau lebih untuk melakukan inisialisasi, menambahkan instance sebagai respons terhadap perubahan real-time mungkin tidak akan meningkatkan kapasitas aplikasi Anda dengan cukup cepat. Misalnya, jika ada peningkatan beban yang besar (seperti saat pengguna pertama kali bangun di pagi hari), beberapa pengguna mungkin mengalami penundaan saat aplikasi Anda melakukan inisialisasi pada instance baru.

Anda dapat menggunakan penskalaan otomatis prediktif guna meningkatkan waktu respons untuk aplikasi dengan waktu inisialisasi yang panjang dan yang workload-nya dapat diprediksi dengan siklus harian atau mingguan.

Saat Anda mengaktifkan penskalaan otomatis prediktif, Compute Engine memperkirakan beban mendatang berdasarkan histori MIG Anda dan menyebarkan skala MIG sebelum beban yang diprediksi, sehingga instance baru siap disajikan saat beban tiba. Tanpa penskalaan otomatis prediktif, autoscaler hanya dapat menskalakan grup secara reaktif, berdasarkan perubahan beban yang diamati secara real time. Dengan mengaktifkan penskalaan otomatis prediktif, autoscaler akan berfungsi dengan data real-time serta data historis untuk mencakup beban saat ini dan yang diperkirakan. Untuk mengetahui informasi selengkapnya, baca Cara kerja penskalaan otomatis prediktif dan Memeriksa apakah penskalaan otomatis prediktif cocok untuk workload Anda.

Sebelum memulai

  • Jika Anda ingin menggunakan contoh command line dalam panduan ini, instal Google Cloud CLI atau luncurkan Cloud Shell.
  • Baca dasar-dasar autoscaler.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Harga

Penskalaan otomatis prediktif tidak dikenai biaya. Namun, jika mengaktifkan penskalaan otomatis prediktif untuk mengoptimalkan ketersediaan, Anda akan membayar resource Compute Engine yang digunakan MIG Anda.

Batasan

  • Penskalaan otomatis prediktif hanya berfungsi dengan pemanfaatan CPU sebagai metrik penskalaan. Metrik Cloud Load Balancing atau Cloud Monitoring tidak didukung.
  • Compute Engine memerlukan histori penskalaan otomatis berbasis CPU selama 3 hari sebelum dapat membuat prediksi.
  • Prediksi didasarkan pada pola pemuatan mingguan dan harian. Compute Engine tidak memprediksi peristiwa bulanan, tahunan, atau satu kali, dan tidak memprediksi pola muatan yang kurang dari 10 menit. Anda dapat menggunakan penskalaan berbasis jadwal guna meminta kapasitas untuk pola pemuatan satu kali atau lainnya.

Workload yang sesuai

Penskalaan otomatis prediktif berfungsi optimal jika workload Anda memenuhi kriteria berikut:

  • Aplikasi Anda memerlukan waktu lama untuk diinisialisasi—misalnya, jika Anda mengonfigurasi periode inisialisasi lebih dari 2 menit.
  • Workload Anda bervariasi, dapat diprediksi tergantung siklus harian atau mingguan.

Jika layanan Anda memerlukan waktu lama untuk diinisialisasi, pengguna mungkin mengalami latensi layanan setelah peristiwa penyebaran skala, yaitu ketika VM baru disediakan, tetapi belum disajikan. Penskalaan otomatis prediktif memperhitungkan waktu inisialisasi aplikasi dan menyebarkan skala di awal peningkatan penggunaan yang diprediksi, sehingga membantu memastikan bahwa jumlah instance penyajian yang tersedia cukup untuk pemanfaatan target.

Untuk melihat pratinjau pengaruh penskalaan otomatis prediktif terhadap grup Anda, baca Memeriksa apakah penskalaan otomatis prediktif cocok untuk workload Anda.

Mengaktifkan dan menonaktifkan penskalaan otomatis prediktif

Anda dapat mengaktifkan penskalaan otomatis prediktif saat melakukan penskalaan berdasarkan pemanfaatan CPU. Untuk mengetahui informasi selengkapnya tentang menyiapkan penskalaan otomatis berbasis CPU, baca Menskalakan berdasarkan pemakaian CPU.

Jika MIG Anda tidak memiliki histori autoscaler, perlu waktu 3 hari sebelum algoritma prediktif memengaruhi autoscaler. Selama waktu ini, skala grup hanya didasarkan pada data real-time. Setelah 3 hari, grup mulai melakukan penskalaan menggunakan prediksi. Seiring semakin banyaknya beban historis yang dikumpulkan, penskalaan otomatis prediktif akan lebih memahami pola pemuatan Anda dan perkiraannya akan meningkat. Compute Engine menggunakan histori pemuatan MIG hingga 3 minggu untuk memasukkan model machine learning.

Konsol

  1. Di konsol, buka halaman Grup instance.

    Buka Instance groups

  2. Dari daftar, klik nama MIG yang ada untuk membuka halaman ringkasan grup.

  3. Klik Edit.

  4. Jika tidak ada konfigurasi penskalaan otomatis, di bagian Autoscaling, klik Configure autoscaling.

  5. Di bagian Mode penskalaan otomatis, pilih Aktif: tambahkan dan hapus instance ke grup untuk mengaktifkan penskalaan otomatis.

  6. Tentukan jumlah minimum dan maksimum instance yang Anda inginkan untuk dibuat oleh autoscaler dalam grup ini.

  7. Di bagian Autoscaling metrics, jika metrik CPU utilization belum ada, tambahkan satu:

    1. Klik Add metric.
    2. Di bagian Jenis metrik, pilih penggunaan CPU.
    3. Masukkan Target penggunaan CPU yang diinginkan. Nilai ini diperlakukan sebagai persentase. Misalnya, untuk pemanfaatan CPU 75%, masukkan 75.
    4. Di bagian Predictive autoscaling, pilijh Optimize for availability untuk mengaktifkan penskalaan otomatis prediktif.
      • Atau, jika Anda ingin menonaktifkan algoritma prediktif dan hanya menggunakan autoscaler real-time, pilih Off.
    5. Klik Done.
  8. Di bagian Initialization period, tentukan berapa lama waktu yang diperlukan aplikasi Anda untuk melakukan inisialisasi pada instance baru. Setelan ini memberi tahu autoscaler prediktif untuk menyebarkan skala lebih lanjut sebelum beban yang diantisipasi, sehingga aplikasi diinisialisasi saat beban tiba.

  9. Klik Simpan.

gcloud

Saat menyetel atau mengupdate autoscaler MIG, sertakan flag --cpu-utilization-predictive-method dengan salah satu nilai berikut:

  • optimize-availability: untuk mengaktifkan algoritma prediktif
  • none (default): untuk menonaktifkan algoritma prediktif

Jika penskalaan otomatis berbasis CPU belum diaktifkan untuk grup, Anda harus mengaktifkannya. Anda dapat menggunakan perintah set-autoscaling untuk mengonfigurasi kebijakan penskalaan otomatis grup dari awal. Misalnya, perintah berikut menunjukkan cara mengonfigurasi penskalaan otomatis dengan setelan berikut:

  • Penskalaan otomatis prediktif diaktifkan.
  • Target pemanfaatan CPU sebesar 75%.
  • Jumlah maksimum instance ditetapkan ke 20.
  • Periode inisialisasi (--cool-down-period) ditetapkan ke 5 menit. Setelan ini memberi tahu autoscaler prediktif untuk menyebarkan skala 5 menit sebelum pemuatan yang diantisipasi, sehingga aplikasi diinisialisasi saat beban tiba.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --cpu-utilization-predictive-method optimize-availability \
  --target-cpu-utilization 0.75 \
  --max-num-replicas 20 \
  --cool-down-period 300

Jika penskalaan otomatis berbasis CPU telah diaktifkan untuk grup, gunakan perintah update-autoscaling untuk mengaktifkan algoritma prediktif:

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
  --cpu-utilization-predictive-method=optimize-availability

REST

Saat membuat atau mengupdate autoscaler, sertakan kolom predictiveMethod dalam isi permintaan dengan salah satu nilai berikut:

  • OPTIMIZE_AVAILABILITY: untuk mengaktifkan algoritma prediktif
  • NONE (default): untuk menonaktifkan algoritma prediktif

Jika grup belum memiliki konfigurasi penskalaan otomatis, lakukan hal berikut:

Jika grup sudah memiliki konfigurasi penskalaan otomatis, lakukan hal berikut:

Jika penskalaan otomatis berbasis CPU belum diaktifkan untuk grup, Anda harus mengaktifkannya.

Misalnya, permintaan berikut mem-patch resource autoscaler yang ada untuk mengaktifkan penskalaan otomatis berbasis CPU dengan setelan berikut:

  • Penskalaan otomatis prediktif diaktifkan.
  • Target pemanfaatan CPU sebesar 75%.
  • Jumlah maksimum instance ditetapkan ke 20.
  • Periode inisialisasi (coolDownPeriodSec) ditetapkan ke 5 menit. Setelan ini memberi tahu autoscaler prediktif untuk menyebarkan skala 5 menit sebelum pemuatan yang diantisipasi, sehingga aplikasi diinisialisasi saat beban tiba.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers/

{
  "name": "AUTOSCALER_NAME",
  "target": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME",
  "autoscalingPolicy": {
    "cpuUtilization": {
       "utilizationTarget": 0.75,
       "predictiveMethod": "OPTIMIZE_AVAILABILITY"
     },
    "maxNumReplicas": 20,
    "coolDownPeriodSec": 300
  }
}

Memeriksa apakah autoscaler prediktif diaktifkan

Untuk melihat konfigurasi penskalaan otomatis saat ini pada MIG, baca Mendapatkan properti MIG.

Mengonfigurasi penskalaan otomatis prediktif

Untuk mengetahui informasi lebih lanjut mengenai cara mengonfigurasi pemanfaatan target, jumlah minimum dan maksimum instance, serta periode inisialisasi, baca Menskalakan berdasarkan pemakaian CPU. Saat Anda mengonfigurasi opsi ini, autoscaler prediktif akan berupaya mempertahankan semua instance pada tingkat pemanfaatan target yang Anda tetapkan, dalam batas minimum dan maksimum grup, dengan cara yang sama seperti autoscaler real-time.

Gunakan setelan periode inisialisasi untuk memperhitungkan waktu yang diperlukan aplikasi Anda untuk melakukan inisialisasi. Setelan ini memengaruhi seberapa jauh penskalaan otomatis prediktif memulai instance baru sebelum peningkatan beban yang diprediksi, sehingga aplikasi Anda siap disajikan saat pemuatan tiba.

Memeriksa apakah penskalaan otomatis prediktif cocok untuk workload Anda

Untuk melihat apakah penskalaan otomatis prediktif dapat meningkatkan ketersediaan aplikasi, Anda dapat membandingkan performa konfigurasi penskalaan otomatis berbasis CPU saat ini dengan penskalaan otomatis prediktif. Anda tidak perlu mengaktifkan penskalaan otomatis prediktif untuk membuat perbandingan.

Untuk mengetahui informasi lebih lanjut tentang workload yang cocok untuk penskalaan otomatis prediktif, baca Workload yang sesuai.

Memeriksa kelebihan beban

MIG Anda yang diskalakan otomatis akan mengalami kelebihan beban saat pemakaian CPU rata-rata melebihi target Anda. Untuk memeriksa apakah konfigurasi penskalaan otomatis Anda mengakibatkan VM kelebihan beban selama 7 hari terakhir, dan untuk mengetahui apakah penskalaan otomatis prediktif dapat mengurangi kelebihan beban, selesaikan langkah-langkah berikut:

  1. Di konsol, buka halaman Instance group.

    Buka Instance groups

  2. Klik MIG yang sudah ada yang pengaturan penyesuaian otomatis berbasis CPU-nya telah dikonfigurasi. Halaman ringkasan grup akan terbuka.

  3. Klik Edit.

  4. Di bagian Autoscaling, di Autoscaling metrics, luaskan bagian CPU utilization, lalu klik See if predictive autoscaling can optimize your availability.

  5. Berdasarkan data selama 7 hari terakhir, tabel menunjukkan jumlah VM yang digunakan per hari dan jumlah VM yang kelebihan beban per hari untuk baris berikut:

    • Current autoscaling configuration: menunjukkan performa autoscaler berdasarkan konfigurasi autoscaler selama 7 hari terakhir.
    • With predictive autoscaling set to "Optimize for availability": menunjukkan performa autoscaler jika penskalaan otomatis prediktif diaktifkan selama 7 hari terakhir.

Anda dapat menggunakan "Jumlah VM yang digunakan per hari" sebagai proxy untuk biaya. Misalnya, untuk mengurangi jumlah harian VM yang kelebihan beban, autoscaler prediktif dapat membuat VM lebih awal dan menjalankannya lebih lama, yang akan menimbulkan biaya tambahan.

Memantau dan menyimulasikan penskalaan otomatis prediktif

Anda dapat memvisualisasikan ukuran historis grup menggunakan Cloud Monitoring. Grafik pemantauan menunjukkan bagaimana konfigurasi penskalaan otomatis menskalakan grup Anda dari waktu ke waktu, dan juga menunjukkan bagaimana penskalaan otomatis prediktif, jika diaktifkan, akan menskalakan grup Anda.

Untuk grup yang menonaktifkan penskalaan otomatis prediktif, Anda dapat menggunakan alat ini untuk menyimulasikan penskalaan otomatis prediktif sebelum mengaktifkannya.

  1. Di konsol, buka halaman Instance group.

    Buka Instance groups

  2. Klik MIG yang sudah ada yang pengaturan penyesuaian otomatis berbasis CPU-nya telah dikonfigurasi. Halaman ringkasan grup akan terbuka.

  3. Klik Monitoring untuk melihat chart yang terkait dengan grup.

  4. Di chart pertama, klik judulnya dan pilih Predictive autoscaling. Tampilan ini menunjukkan ukuran grup aktual serta prediksi ukurannya.

  5. Anda dapat memilih rentang waktu berbeda untuk melihat histori selengkapnya atau memperbesar periode saat permintaan meningkat untuk melihat pengaruh penskalaan otomatis prediktif terhadap ukuran grup sebelum beban yang diperkirakan.

Cara kerja penskalaan otomatis prediktif

Autoscaler prediktif memperkirakan metrik penskalaan Anda berdasarkan tren historis metrik. Perkiraan dihitung ulang setiap beberapa menit, yang memungkinkan autoscaler menyesuaikan perkiraannya dengan cepat ke perubahan muatan terbaru. Autoscaler prediktif memerlukan minimal 3 hari histori untuk menentukan pola penggunaan layanan yang representatif sebelum dapat memberikan prediksi. Compute Engine menggunakan histori pemuatan MIG hingga 3 minggu untuk memasukkan model machine learning.

Autoscaler prediktif menghitung jumlah VM yang diperlukan untuk mencapai target pemanfaatan Anda berdasarkan berbagai faktor, termasuk hal berikut:

  • Prediksi nilai metrik penskalaan di masa mendatang
  • Nilai metrik penskalaan saat ini
  • Keyakinan terhadap tren sebelumnya, termasuk variabilitas sebelumnya terhadap metrik penskalaan
  • Periode inisialisasi aplikasi yang dikonfigurasi, juga disebut sebagai periode inisialisasi

Berdasarkan faktor tersebut, autoscaler prediktif akan menyebarkan skala grup Anda sebelum permintaan yang diperkirakan.

Perbandingan penyajian VM dengan dan tanpa penskalaan otomatis prediktif.

Gambar 1. Perbandingan penyajian VM dengan dan tanpa penskalaan otomatis prediktif.

Pada Gambar 1, garis biru menunjukkan permintaan yang terus meningkat untuk VM. Garis hitam menunjukkan respons autoscaler: lebih banyak VM yang ditambahkan. Namun, untuk aplikasi dengan waktu inisialisasi yang lama, garis abu-abu menunjukkan bahwa VM yang ditambahkan memerlukan waktu tambahan sebelum siap disajikan, yang dapat mengakibatkan VM yang melayani tidak mencukupi untuk memenuhi permintaan. Jika penskalaan otomatis prediktif diaktifkan, prediksi peningkatan permintaan dan waktu inisialisasi aplikasi yang lama akan diperhitungkan: autoscaler merespons dengan menambahkan VM lebih awal, sehingga jumlah VM yang disajikan sudah memadai. Anda dapat mengonfigurasi seberapa jauh instance baru akan ditambahkan dengan menyetel periode inisialisasi.

Data penggunaan real-time

Autoscaler prediktif tidak dapat menentukan pola untuk semua perubahan penggunaan mendatang berdasarkan data historis, sehingga fitur ini juga berfungsi lancar dengan data real-time. Misalnya, peristiwa berita tidak terduga dapat berkontribusi pada lonjakan penggunaan yang tidak dapat diprediksi berdasarkan histori saja. Untuk menangani perubahan beban yang tidak dapat diprediksi tersebut, autoscaler prediktif akan merespons sebagai berikut:

  • Prediksinya disesuaikan: Prediksi dihitung ulang secara konstan, dalam hitungan menit, sehingga prediksi disesuaikan untuk menggabungkan data terbaru. Waktu yang tepat untuk penyesuaian terhadap pola baru bergantung pada, antara lain, seberapa berulang pola baru tersebut dan seberapa besar perbedaan antara pola baru dan prediksi sebelumnya.
  • Solusi ini menghasilkan data real-time: Jumlah instance yang direkomendasikan oleh autoscaler, berdasarkan nilai real-time metrik, selalu cukup untuk memenuhi target pemanfaatan grup. Jika nilai sinyal real-time saat ini lebih besar dari prediksi, nilai sinyal saat ini akan lebih diprioritaskan daripada prediksi. Akibatnya, MIG yang mengaktifkan penskalaan otomatis prediktif selalu memiliki lebih banyak ketersediaan daripada MIG yang tidak mengaktifkannya.

Dua diagram menunjukkan bagaimana prediksi beradaptasi dengan penggunaan CPU aktual.

Gambar 2. Dua diagram menunjukkan bagaimana prediksi beradaptasi dengan penggunaan CPU aktual.

Pada gambar 2, garis kuning putus-putus menunjukkan prediksi di t1. Namun, penggunaan CPU aktual, seperti yang ditunjukkan oleh garis biru solid, berbeda dari yang diprediksi. Pada chart sebelah kiri, penggunaan CPU aktual lebih tinggi dari yang diprediksi. Di chart kanan, penggunaan CPU aktual lebih rendah dari yang diprediksi. Garis biru putus-putus menunjukkan prediksi yang disesuaikan.

Lonjakan singkat yang tidak dapat diprediksi

Puncak singkat yang tidak dapat diprediksi akan dibahas secara real time. Autoscaler membuat instance setidaknya sebanyak yang diperlukan untuk menjaga pemanfaatan pada target yang dikonfigurasi, berdasarkan nilai metrik saat ini. Namun, instance ini tidak dibuat sebelumnya, seperti yang ditunjukkan pada gambar berikut.

Lonjakan singkat yang tidak dapat diprediksi menyebabkan autoscaler bereaksi secara real time.

Gambar 3. Lonjakan singkat yang tidak dapat diprediksi menyebabkan autoscaler bereaksi secara real time.

Pada Gambar 3, garis biru solid menunjukkan penggunaan CPU aktual. Lonjakan tak terduga dalam penggunaan CPU tidak dapat diprediksi. Karena autoscaler selalu memantau data real-time, autoscaler akan menambahkan instance untuk mengakomodasi lonjakan. Garis hitam solid menggambarkan penambahan reaktif VM dari autoscaler sebagai respons terhadap lonjakan. Garis abu-abu solid menunjukkan jumlah VM yang aktif. Garis abu-abu tertinggal dari garis hitam karena waktu inisialisasi aplikasi. Dalam skenario ini, grup kelebihan beban untuk sementara.

Penurunan tiba-tiba

Jenis perubahan penggunaan yang tidak dapat diprediksi lainnya adalah penurunan tiba-tiba, misalnya, penurunan yang disebabkan oleh kegagalan di bagian stack aplikasi. Jika hal itu terjadi, jumlah instance awalnya akan mengikuti perkiraan. Namun, seiring berjalannya waktu, perkiraan tersebut menyesuaikan dengan penggunaan yang lebih rendah dari perkiraan, sehingga terjadi penurunan skala. Waktu yang tepat untuk penyesuaian ini bergantung pada banyak faktor, termasuk: seberapa sering pola tersebut terjadi sebelumnya, berapa lama penurunan tersebut berlangsung, dan seberapa dalam penurunan tersebut.

Penurunan tiba-tiba menyebabkan autoscaler prediktif mengubah perkiraannya.

Gambar 4. Penurunan tiba-tiba menyebabkan autoscaler prediktif mengubah perkiraannya.

Pada Gambar 4, garis kuning putus-putus menunjukkan prediksi di t1. Namun, penggunaan CPU aktual, seperti yang ditunjukkan oleh garis biru solid, turun lebih rendah dari yang diprediksi. Garis biru putus-putus menunjukkan prediksi terbaru, yang otomatis disesuaikan setelah mengamati penggunaan yang lebih rendah dari perkiraan. Hal ini menyebabkan autoscaler menghapus instance setelah mengikuti periode stabilisasi standar.

Data historis

Autoscaler prediktif memerlukan minimal 3 hari beban historis untuk memulai perkiraan. Jika Anda memiliki MIG baru yang tidak memiliki data historis, Compute Engine akan menskalakan grup Anda secara reaktif menggunakan data real-time hingga data historis yang memadai tersedia. Setelah 3 hari, karena Compute Engine mengumpulkan data penggunaan tambahan, prediksi akan meningkat.

Jika Anda mengupdate aplikasi dengan membuat MIG baru dan menghapus yang lama —misalnya, blue-green deployment—MIG baru Anda memerlukan data beban historis selama 3 hari sebelum penskalaan otomatis prediktif dapat mulai membuat perkiraan lagi. Jika Anda ingin mempertahankan histori beban di seluruh MIG agar perkiraan dapat segera dimulai saat Anda membuat MIG baru, hubungi kami untuk meminta petunjuk untuk bergabung dengan pratinjau pribadi.

Langkah berikutnya