Rychlý start: Nastavení automatického škálování pro aplikace ve standardním využití Azure Spring Apps a vyhrazeném plánu

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.

Tento článek se vztahuje na: ✔️ Využití standardu a vyhrazené (Preview) ❌ Basic/Standard ❌ Enterprise

Tento článek popisuje, jak nastavit pravidla automatického škálování pro vaše aplikace ve spotřebě Azure Spring Apps Standard a vyhrazeném plánu. Plán používá prostředí Azure Container Apps k hostování aplikací Spring a poskytuje následující správu a podporu:

  • Spravuje automatické horizontální škálování prostřednictvím sady deklarativních pravidel škálování.
  • Podporuje všechna pravidla škálování, která azure Container Apps podporuje.

Další informace najdete v dokumentaci ke službě Azure Container Apps.

Požadavky

Definice škálování

Škálování je definováno kombinací limitů a pravidel.

  • Omezení jsou minimální a maximální počet instancí, které vaše spring povoluje.

    Limit škálování Default value Min. hodnota Max. hodnota
    Minimální počet instancí na nasazení 0 0 30
    Maximální počet instancí na nasazení 10 0 30

    Ve výchozím nastavení je minimální počet instancí vaší aplikace Spring nastaven na 1, aby se zajistilo, že vaše nasazení je vždy spuštěné. Pokud chcete škálovat na nulu, můžete nastavit minimální počet instancí na nulu.

  • Pravidla jsou kritéria, podle kterého se automatické škálování řídí přidáním nebo odebráním instancí. Pravidla škálování zahrnují pravidla HTTP, TCP a Custom, jak je popsáno v části Pravidla škálování sady pravidel škálování v Azure Container Apps.

    Pokud definujete více než jedno pravidlo škálování, začne automatické škálování při splnění první podmínky libovolného pravidla.

  • Interval dotazování a období cooldownu jsou dva časové intervaly, ke kterým dochází během automatického škálování.

    • Interval dotazování definuje časové rozpětí mezi jednotlivými akcemi dotazování dat v reálném čase definovanými vašimi pravidly. Interval dotazování je standardně nastavený na 30 sekund.
    • Období snížení úrovně platí jenom v případě, že se škálování na nulu – například počkejte pět minut po posledním automatickém škálování, které zkontrolovalo frontu zpráv a bylo prázdné.

Nastavení automatického škálování

Nastavení automatického škálování pro aplikaci můžete nastavit pomocí webu Azure Portal nebo Azure CLI.

Pomocí následujících kroků definujte nastavení a pravidla automatického škálování.

  1. Přihlaste se k portálu Azure.
  2. V části Služby Azure vyberte Azure Spring Apps.
  3. Ve sloupci Název vyberte instanci Azure Spring Apps, kterou chcete automaticky škálovat.
  4. Na stránce přehledu vaší instance Azure Spring Apps vyberte Aplikace v navigačním podokně.
  5. Vyberte aplikaci, kterou chcete automaticky škálovat.
  6. Na stránce přehledu vybrané aplikace vyberte v navigačním podokně horizontální navýšení kapacity.
  7. Na stránce Horizontální navýšení kapacity (Preview) vyberte nasazení, které chcete automaticky škálovat.
  8. Nastavte limity instancí vašeho nasazení.
  9. Pokud chcete přidat pravidla škálování, vyberte Přidat .

Snímek obrazovky s verzí Preview webu Azure Portal zobrazující stránku horizontálního navýšení kapacity aplikace v instanci Azure Spring Apps

Vlastní pravidla škálování

Informace o definování vlastních pravidel najdete v tématu Keda scalers. Následující části ukazují dva příklady nastavení pravidel škálování na MySQL a Cron.

Nastavení pravidel automatického škálování v databázi MySQL

Následující příkazy rozhraní příkazového řádku ukazují, jak automaticky škálovat aplikaci Spring na základě nástroje Keda MySQL Scaler. Nejprve vytvořte tajný kód pro uložení připojovací řetězec SQL. Tento tajný klíč se používá pro ověřování pravidel škálování. Potom nastavte pravidlo, které aplikaci škáluje na základě počtu řádků tabulky.

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

Vytvoření pravidla založeného na linuxovém cronu

Následující příkazy ukazují, jak nastavit pravidlo založené na Keda Cron Scaler. Repliky se během cron časového intervalu škálují na požadované číslo.

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

Události škálování

Události škálování najdete v systémových protokolech podkladové aplikace kontejneru a pomocí příkazu EventSource KEDAmůžete filtrovat, jak je znázorněno v následujícím příkladu:

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

Vyčištění prostředků

Pokud už je nepotřebujete, nezapomeňte odstranit prostředky, které jste vytvořili v tomto článku. Pokud chcete prostředky odstranit, stačí odstranit skupinu prostředků, která je obsahuje. Skupinu prostředků můžete odstranit pomocí webu Azure Portal. Pokud chcete skupinu prostředků odstranit také pomocí Azure CLI, použijte následující příkazy:

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

Další kroky