Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
| (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
- SDK .NET 8 lub nowszy
- Docker (do kompilowania obrazu)
- Azure CLI dla deweloperów
Konfigurowanie środowiska
Sklonuj
Azure-Samples/Durable-Task-Schedulerkatalog.git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.gitUwierzytelnij 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
Przejdź do przykładowego
AutoscalingInACAkatalogu.cd /path/to/Durable-Task-Scheduler/samples/scenarios/AutoscalingInACAAprowizuj zasoby i wdróż aplikację:
azd upPo 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
./infrakatalogu przy użyciu poleceniaazd 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.jsonmain.bicep-
appKatalog zasobów uporządkowany według funkcji - Biblioteka referencyjna
core, która zawiera moduły Bicep używane w szablonieazd
- 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.- Tworzy i konfiguruje wszystkie niezbędne zasoby platformy Azure za pośrednictwem udostępnionych plików Bicep w
Potwierdzanie pomyślnego wdrożenia
W portalu Azure sprawdź, czy orkiestracje działają pomyślnie.
Skopiuj nazwę grupy zasobów z danych wyjściowych terminalu.
Zaloguj się do witryny Azure Portal i wyszukaj nazwę tej grupy zasobów.
Na stronie przeglądu grupy zasobów kliknij zasób aplikacji kontenera dla klienta.
Wybierz opcję Monitorowanie>Strumień logu.
Upewnij się, że kontener klienta rejestruje zadania łańcucha funkcji.
Wróć do strony grupy zasobów, aby wybrać
workerkontener.Wybierz opcję Monitorowanie>Strumień logu.
Upewnij się, że kontener procesu roboczego rejestruje zadania łańcucha funkcji.
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.
W witrynie Azure Portal przejdź do aplikacji procesu roboczego.
W menu po lewej stronie kliknij pozycję Poprawki aplikacji>i repliki.
Kliknij kartę Repliki , aby sprawdzić, czy aplikacja jest skalowana w górę.
W menu po lewej stronie kliknij pozycjęSkala>.
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).