Mulai cepat: Menyiapkan skala otomatis untuk aplikasi dalam konsumsi Azure Spring Apps Standard dan paket khusus

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Artikel ini berlaku untuk: ✔️ Konsumsi standar dan khusus (Pratinjau) ❌ Basic/Standard ❌ Enterprise

Artikel ini menjelaskan cara menyiapkan aturan skala otomatis untuk aplikasi Anda di konsumsi Azure Spring Apps Standard dan paket khusus. Paket ini menggunakan lingkungan Azure Container Apps untuk menghosting aplikasi Spring Anda, dan menyediakan manajemen dan dukungan berikut:

  • Mengelola penskalaan horizontal otomatis melalui serangkaian aturan penskalaan deklaratif.
  • Mendukung semua aturan penskalakan yang didukung Azure Container Apps.

Untuk informasi selengkapnya, lihat dokumentasi Azure Container Apps.

Prasyarat

Definisi skala

Penskalaan ditentukan oleh kombinasi batas dan aturan.

  • Batas adalah jumlah instans minimum dan maksimum yang diizinkan Spring Anda.

    Batas skala Nilai default Nilai min Nilai maks
    Jumlah minimum instans per penyebaran 1 0 30
    Jumlah maksimum instans per penyebaran 10 1 30

    Secara default, jumlah instans minimum aplikasi Spring Anda diatur ke 1 untuk memastikan bahwa penyebaran Anda selalu berjalan. Jika Anda ingin menskalakan ke nol, Anda dapat mengatur jumlah instans minimum ke nol.

  • Aturan adalah kriteria yang dikaitkan dengan penskalakan otomatis untuk menambahkan atau menghapus instans. Aturan skala termasuk aturan HTTP, TCP, dan Kustom seperti yang dijelaskan di bagian Aturan skala dari Atur aturan penskalaan di Azure Container Apps.

    Jika Anda menentukan lebih dari satu aturan skala, penskalaan otomatis dimulai saat kondisi pertama aturan apa pun terpenuhi.

  • Interval polling dan periode pendinginan adalah dua rentang waktu yang terjadi selama autoscaling.

    • Interval polling menentukan rentang waktu antara setiap tindakan polling data real time seperti yang didefinisikan oleh aturan Anda. Interval polling diatur ke 30 detik secara default.
    • Periode cooldown hanya berlaku saat penskalaan ke nol - misalnya, untuk menunggu lima menit setelah terakhir kali penskalaan otomatis memeriksa antrean pesan dan kosong.

Menyiapkan pengaturan skala otomatis

Anda dapat menyiapkan pengaturan skala otomatis untuk aplikasi Anda dengan menggunakan portal Azure atau Azure CLI.

Gunakan langkah-langkah berikut untuk menentukan pengaturan dan aturan skala otomatis.

  1. Masuk ke portal Azure.
  2. Pilih Azure Spring Apps di bawah layanan Azure.
  3. Di kolom Nama, pilih instans Azure Spring Apps yang ingin Anda skalakan secara otomatis.
  4. Pada halaman gambaran umum untuk instans Azure Spring Apps Anda, pilih Aplikasi di panel navigasi.
  5. Pilih aplikasi yang ingin Anda skalakan secara otomatis.
  6. Pada halaman gambaran umum untuk aplikasi yang dipilih, pilih Peluasan skala di panel navigasi.
  7. Pada halaman Peluasan skala (Pratinjau) , pilih penyebaran yang ingin Anda skalakan secara otomatis.
  8. Siapkan batas instans penyebaran Anda.
  9. Pilih Tambahkan untuk menambahkan aturan skala Anda.

Screenshot of the Azure portal preview version showing the Scale out page for an app in an Azure Spring Apps instance.

Aturan penskalakan kustom

Untuk informasi tentang menentukan aturan kustom, lihat Penskala Keda. Bagian berikut menunjukkan dua contoh aturan skala pengaturan pada MySQL dan Cron.

Menyiapkan aturan penskalaan otomatis pada database MySQL

Perintah CLI berikut menunjukkan kepada Anda cara menskalakan otomatis aplikasi Spring Anda berdasarkan Keda MySQL Scaler. Pertama, buat rahasia untuk menyimpan string koneksi SQL Anda. Rahasia ini digunakan untuk autentikasi aturan skala Anda. Kemudian, siapkan aturan yang menskalakan aplikasi berdasarkan jumlah baris tabel.

az spring app update \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --secrets mysqlconnectionstring="<username>:<pwd>@tcp(<server name>:3306)/<database name>" 

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type mysql \
    --scale-rule-name <your rule name> \
    --scale-rule-auth "connectionString=mysqlconnectionstring" \
    --scale-rule-metadata queryValue=4 query="SELECT count(*) FROM mytable" \
    --min-replicas 0 \
    --max-replicas 3

Membuat aturan berdasarkan Linux cron

Perintah berikut menunjukkan kepada Anda cara menyiapkan aturan berdasarkan Keda Cron Scaler. Replika diskalakan ke angka yang diinginkan selama interval waktu cron.

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type cron \
    --scale-rule-name testscalerule \
    --scale-rule-metadata timezone="Asia/Shanghai" \
                          start="10 * * * *" \
                          end="15 * * * *" \
                          desiredReplicas="3" \
    --min-replicas 0 \
    --max-replicas 3

Menskalakan peristiwa

Anda dapat menemukan peristiwa penskalaan dari log sistem aplikasi kontainer dasar Anda, dan memfilter EventSource dengan menggunakan KEDA, seperti yang ditunjukkan dalam contoh berikut:

ContainerAppSystemLogs_CL 
| where ContainerAppName_s == 'YourAppName' and EventSource_s == 'KEDA'

Membersihkan sumber daya

Pastikan untuk menghapus sumber daya yang Anda buat di artikel ini saat Anda tidak lagi membutuhkannya. Untuk menghapus sumber daya, cukup hapus grup sumber daya yang berisinya. Anda dapat menghapus grup sumber daya menggunakan portal Azure. Secara bergantian, untuk menghapus grup sumber daya dengan menggunakan Azure CLI, gunakan perintah berikut:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Langkah berikutnya