Udostępnij za pośrednictwem


Szybki start: konfigurowanie automatycznego skalowania dla aplikacji w ramach użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu

Uwaga

Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.

Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.

Ten artykuł dotyczy:✅ Użycie standardowe i dedykowane (wersja zapoznawcza) ❎ w warstwie Podstawowa/Standardowa ❎ Enterprise

W tym artykule opisano sposób konfigurowania reguł skalowania automatycznego dla aplikacji w przypadku użycia usługi Azure Spring Apps Standard i dedykowanego planu. Plan używa środowiska usługi Azure Container Apps do hostowania aplikacji Spring i zapewnia następujące funkcje zarządzania i obsługi:

  • Zarządza automatycznym skalowaniem w poziomie za pomocą zestawu reguł deklaratywnego skalowania.
  • Obsługuje wszystkie reguły skalowania obsługiwane przez usługę Azure Container Apps.

Aby uzyskać więcej informacji, zobacz dokumentację usługi Azure Container Apps.

Wymagania wstępne

Definicja skalowania

Skalowanie jest definiowane przez kombinację limitów i reguł.

  • Limity to minimalna i maksymalna liczba wystąpień dozwolonych przez platformę Spring.

    Limit skalowania Domyślna wartość Wartość minimalna Wartość maksymalna
    Minimalna liczba wystąpień na wdrożenie 1 0 30
    Maksymalna liczba wystąpień na wdrożenie 10 1 30

    Domyślnie minimalna liczba wystąpień aplikacji Spring jest ustawiona na 1, aby upewnić się, że wdrożenie jest zawsze uruchomione. Jeśli chcesz skalować do zera, możesz ustawić minimalną liczbę wystąpień na zero.

  • Reguły są kryteriami, które są zgodne z skalowaniem automatycznym w celu dodania lub usunięcia wystąpień. Reguły skalowania obejmują reguły HTTP, TCP i Niestandardowe zgodnie z opisem w sekcji Reguły skalowania w temacie Ustawianie reguł skalowania w usłudze Azure Container Apps.

    Jeśli zdefiniujesz więcej niż jedną regułę skalowania, skalowanie automatyczne rozpoczyna się po spełnieniu pierwszego warunku dowolnej reguły.

  • Interwał sondowania i okres chłodzenia to dwa przedziały czasu, które występują podczas skalowania automatycznego.

    • Interwał sondowania definiuje przedział czasu między każdą akcją sondowania danych czasu rzeczywistego zgodnie z definicją reguł. Interwał sondowania jest domyślnie ustawiony na 30 sekund.
    • Okres ochładzania ma zastosowanie tylko wtedy, gdy skalowanie do zera — na przykład poczekaj pięć minut po ostatnim autoskalowaniu sprawdziło kolejkę komunikatów i było puste.

Konfigurowanie ustawień automatycznego skalowania

Ustawienia skalowania automatycznego dla aplikacji można skonfigurować przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

Wykonaj poniższe kroki, aby zdefiniować ustawienia i reguły autoskalowania.

  1. Zaloguj się w witrynie Azure Portal.
  2. Wybierz pozycję Azure Spring Apps w obszarze Usługi platformy Azure.
  3. W kolumnie Nazwa wybierz wystąpienie usługi Azure Spring Apps, które chcesz skalować automatycznie.
  4. Na stronie przeglądu wystąpienia usługi Azure Spring Apps wybierz pozycję Aplikacje w okienku nawigacji.
  5. Wybierz aplikację, którą chcesz skalować automatycznie.
  6. Na stronie przeglądu wybranej aplikacji wybierz pozycję Skaluj w poziomie w okienku nawigacji.
  7. Na stronie Skalowanie w poziomie (wersja zapoznawcza) wybierz wdrożenie, które chcesz skalować automatycznie.
  8. Skonfiguruj limity wystąpień wdrożenia.
  9. Wybierz pozycję Dodaj , aby dodać reguły skalowania.

Zrzut ekranu przedstawiający wersję zapoznawcza witryny Azure Portal z wyświetloną stroną Skalowanie w poziomie dla aplikacji w wystąpieniu usługi Azure Spring Apps.

Niestandardowe reguły skalowania

Aby uzyskać informacje na temat definiowania reguł niestandardowych, zobacz Moduły skalowania Keda. W poniższych sekcjach przedstawiono dwa przykłady ustawiania reguł skalowania w programach MySQL i Cron.

Konfigurowanie reguł automatycznego skalowania w bazie danych MySQL

Następujące polecenia interfejsu wiersza polecenia pokazują, jak automatycznie skalować aplikację Spring na podstawie narzędzia Keda MySQL Scaler. Najpierw utwórz wpis tajny do przechowywania parametry połączenia SQL. Ten wpis tajny jest używany do uwierzytelniania reguły skalowania. Następnie skonfiguruj regułę, która skaluje aplikację na podstawie liczby wierszy tabeli.

Uwaga

Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania opisany w tej procedurze, taki jak bazy danych, pamięci podręczne, komunikaty lub usługi sztucznej inteligencji, wymaga bardzo wysokiego stopnia zaufania w aplikacji i niesie ze sobą ryzyko, które nie występują w innych przepływach. Użyj tego przepływu tylko wtedy, gdy bardziej bezpieczne opcje, takie jak tożsamości zarządzane dla połączeń bez hasła lub bez kluczy, nie są opłacalne. W przypadku operacji maszyny lokalnej preferuj tożsamości użytkowników dla połączeń bez hasła lub bez klucza.

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

Tworzenie reguły opartej na cronie systemu Linux

Poniższe polecenia pokazują, jak skonfigurować regułę na podstawie narzędzia Keda Cron Scaler. Repliki są skalowane do żądanej liczby w przedziale czasu 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

Skalowanie zdarzeń

Zdarzenia skalowania można znaleźć w dziennikach systemowych podstawowej aplikacji kontenera i filtrować źródło zdarzeń przy użyciu metody KEDA, jak pokazano w poniższym przykładzie:

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

Czyszczenie zasobów

Pamiętaj, aby usunąć zasoby utworzone w tym artykule, gdy nie są już potrzebne. Aby usunąć zasoby, wystarczy usunąć grupę zasobów, która je zawiera. Grupę zasobów można usunąć przy użyciu witryny Azure Portal. Alternatywnie, aby usunąć grupę zasobów przy użyciu interfejsu wiersza polecenia platformy Azure, użyj następujących poleceń:

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

Następne kroki