Udostępnij przez


Konfigurowanie skalowania automatycznego dla aplikacji Durable Task SDK hostowanej w usłudze Azure Container Apps

Skalowanie automatyczne można zaimplementować w aplikacjach kontenerów korzystających z harmonogramu zadań Durable Task Scheduler. Skalowanie automatyczne zapewnia niezawodność i skalowalność długotrwałych przepływów pracy, dostosowując się do zmieniających się wymagań bez ręcznej interwencji.

Steruj skalowaniem automatycznym, ustawiając zakres replik aplikacji wdrożonych w odpowiedzi na wyzwalaną orkiestrację, działanie lub jednostkę. Scaler dostosowuje dynamicznie liczbę replik aplikacji kontenerowych w tym zakresie, co umożliwia twojemu rozwiązaniu obsługę skoków obciążenia i zapobieganie wyczerpaniu zasobów.

Uwaga / Notatka

Skalowanie automatyczne jest obsługiwane w przypadku aplikacji utworzonych przy użyciu zestawów SDK rozszerzenia Durable Task i hostowanych w usłudze Azure Container Apps.

Konfigurowanie skalowania automatycznego

Konfigurację autoskalatora można ustawić za pośrednictwem witryny Azure Portal, szablonu Bicep i interfejsu wiersza polecenia platformy Azure.

Zrzut ekranu konfiguracji minimalnej i maksymalnej liczby replik na portalu Azure.

Zrzut ekranu przedstawiający konfigurację związaną z harmonogramem zadań Durable Task dla narzędzia scaler w Azure Portal.

(No changes needed) Opis Przykład
Minimalna liczba replik Minimalna dopuszczalna liczba replik dla rewizji kontenera w dowolnym momencie. 1
Maksymalna liczba replik Maksymalna liczba replik dozwolona dla wersji kontenera w dowolnym momencie. 10
punkt końcowy Punkt końcowy harmonogramu zadań Durable, z którym łączy się moduł skalujący. https://dts-ID.centralus.durabletask.io
maksymalnaLiczbaRównoczesnychZadańRoboczych Maksymalna liczba współbieżnych elementów roboczych wysyłanych jako zdarzenie do systemu obliczeniowego, takich jak nakazanie jego uruchomienia orkiestracji. 1
taskhubName Nazwa centrum zadań połączonego z harmonogramem. taskhub-ID
typElementuRoboczego Typ wysyłanego elementu roboczego. Opcje obejmują Orkiestrację, Aktywność lub Jednostkę. Orkiestracja
Tożsamość zarządzana Przypisana przez użytkownika lub przypisana przez system tożsamość zarządzana połączona z zasobem harmonogramu i centrum zadań. Upewnij się, że pole wyboru Uwierzytelnij przy użyciu tożsamości zarządzanej jest zaznaczone. someone@example.com

Eksperymentowanie z przykładem

W przykładzie Skalowanie automatyczne w usłudze Azure Container Apps użyjesz interfejsu wiersza polecenia dla deweloperów platformy Azure, aby zaimplementować skalowanie automatyczne dla aplikacji kontenera utworzonej przy użyciu zestawu .NET Durable Task SDK i hostowanego w usłudze Azure Container Apps. W przykładzie pokazano orkiestrację przy użyciu wzorca łańcuchowania funkcji.

Uwaga / Notatka

Mimo że w tym przykładzie jest używany zestaw SDK platformy .NET durable Task, skalowanie automatyczne jest niezależne od języka.

Wymagania wstępne

Konfigurowanie środowiska

  1. Sklonuj Azure-Samples/Durable-Task-Scheduler katalog.

    git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.git
    
  2. Uwierzytelnij się w Azure za pomocą Azure Developer CLI.

    azd auth login
    

Wdrażanie rozwiązania przy użyciu interfejsu wiersza polecenia dla deweloperów platformy Azure

  1. Przejdź do przykładowego AutoscalingInACA katalogu.

    cd /path/to/Durable-Task-Scheduler/samples/scenarios/AutoscalingInACA
    
  2. Aprowizuj zasoby i wdróż aplikację:

    azd up
    
  3. Po wyświetleniu monitu w terminalu podaj następujące parametry.

    Parametr Opis
    Nazwa środowiska Prefiks grupy zasobów utworzony do przechowywania wszystkich zasobów platformy Azure.
    Lokalizacja platformy Azure Lokalizacja Azure dla Twoich zasobów.
    Subskrypcja platformy Azure Subskrypcja platformy Azure dla twoich zasobów.

    Ukończenie tego procesu może zająć trochę czasu. Po zakończeniu działania polecenia dane wyjściowe CLI wyświetlają dwa linki do portalu Azure, które służą do monitorowania postępu wdrażania. Dane wyjściowe pokazują również, jak azd up:

    • Tworzy i konfiguruje wszystkie niezbędne zasoby platformy Azure za pośrednictwem udostępnionych plików Bicep w ./infra katalogu przy użyciu polecenia azd provision. Po aprowizacji za pomocą interfejsu wiersza polecenia dla deweloperów platformy Azure możesz uzyskać dostęp do tych zasobów za pośrednictwem witryny Azure Portal. Pliki do aprowizacji zasobów platformy Azure obejmują:
      • main.parameters.json
      • main.bicep
      • app Katalog zasobów uporządkowany według funkcji
      • Biblioteka referencyjna core, która zawiera moduły Bicep używane w szablonie azd
    • Wdraża kod przy użyciu polecenia azd deploy

    Oczekiwane dane wyjściowe

    Packaging services (azd package)
    
    (✓) Done: Packaging service client
    - Image Hash: {IMAGE_HASH}
    - Target Image: {TARGET_IMAGE}
    
    
    (✓) Done: Packaging service worker
    - Image Hash: {IMAGE_HASH}
    - Target Image: {TARGET_IMAGE}
    
    
    Provisioning Azure resources (azd provision)
    Provisioning Azure resources can take some time.
    
    Subscription: SUBSCRIPTION_NAME (SUBSCRIPTION_ID)
    Location: West US 2
    
     You can view detailed progress in the Azure Portal:
     https://portal.azure.com/#view/HubsExtension/DeploymentDetailsBlade/~/overview/id/%2Fsubscriptions%SUBSCRIPTION_ID%2Fproviders%2FMicrosoft.Resources%2Fdeployments%2FCONTAINER_APP_ENVIRONMENT
    
     (✓) Done: Resource group: GENERATED_RESOURCE_GROUP (1.385s)
     (✓) Done: Virtual Network: VNET_ID (862ms)
     (✓) Done: Container Apps Environment: GENERATED_CONTAINER_APP_ENVIRONMENT (54.125s)
     (✓) Done: Container Registry: GENERATED_REGISTRY (1m27.747s)
     (✓) Done: Container App: SAMPLE_CLIENT_APP (21.39s)
     (✓) Done: Container App: SAMPLE_WORKER_APP (24.136s)   
    
    Deploying services (azd deploy)
    
     (✓) Done: Deploying service client
     - Endpoint: https://SAMPLE_CLIENT_APP.westus2.azurecontainerapps.io/
    
     (✓) Done: Deploying service worker
     - Endpoint: https://SAMPLE_WORKER_APP.westus2.azurecontainerapps.io/
    
    
    SUCCESS: Your up workflow to provision and deploy to Azure completed in 10 minutes 34 seconds.   
    

Potwierdzanie pomyślnego wdrożenia

W portalu Azure sprawdź, czy orkiestracje działają pomyślnie.

  1. Skopiuj nazwę grupy zasobów z danych wyjściowych terminalu.

  2. Zaloguj się do witryny Azure Portal i wyszukaj nazwę tej grupy zasobów.

  3. Na stronie przeglądu grupy zasobów kliknij zasób aplikacji kontenera dla klienta.

  4. Wybierz opcję Monitorowanie>Strumień logu.

  5. Upewnij się, że kontener klienta rejestruje zadania łańcucha funkcji.

    Zrzut ekranu przedstawiający strumień dziennika kontenera klienta w witrynie Azure Portal.

  6. Wróć do strony grupy zasobów, aby wybrać worker kontener.

  7. Wybierz opcję Monitorowanie>Strumień logu.

  8. Upewnij się, że kontener procesu roboczego rejestruje zadania łańcucha funkcji.

    Zrzut ekranu przedstawiający strumień logów kontenera roboczego w portalu Azure.

Omówienie niestandardowego modułu skalowania

Ten przykład zawiera azure.yaml plik konfiguracji. Po uruchomieniu azd up wdrożono całe przykładowe rozwiązanie na platformie Azure, w tym niestandardowy moduł skalowania dla aplikacji kontenerowych, który automatycznie się skaluje na podstawie obciążenia narzędzia Durable Task Scheduler.

Niestandardowy moduł skalowania:

  • Monitoruje liczbę oczkujących orkiestracji w centrum operacji.
  • Skaluje liczbę replik procesów roboczych wraz ze zwiększonym obciążeniem.
  • Skaluje się z powrotem w dół, gdy obciążenie się zmniejsza.
  • Zapewnia efektywne wykorzystanie zasobów przez dopasowanie pojemności do zapotrzebowania.

Upewnij się, że scaler jest skonfigurowany

Sprawdź, czy skalowanie automatyczne działa prawidłowo w wdrożonym rozwiązaniu.

  1. W witrynie Azure Portal przejdź do aplikacji procesu roboczego.

  2. W menu po lewej stronie kliknij pozycję Poprawki aplikacji>i repliki.

  3. Kliknij kartę Repliki , aby sprawdzić, czy aplikacja jest skalowana w górę.

  4. W menu po lewej stronie kliknij pozycjęSkala>.

  5. Kliknij nazwę skalowania, aby wyświetlić ustawienia narzędzia scaler.

Dalsze kroki

Obecnie automatyczne skalowanie aplikacji kontenera przy użyciu rozszerzenia Durable Functions dla rozszerzenia Durable Task Scheduler nie jest dostępne. W międzyczasie spróbuj automatycznie skalować aplikacje kontenerów przy użyciu zaplecza microsoft SQL (MSSQL).