Automatyczne skalowanie w usłudze aplikacja systemu Azure
Uwaga
Automatyczne skalowanie jest dostępne dla wszystkich typów aplikacji: Windows i Linux (wdrażanie jako kod i kontener). Automatyczne skalowanie nie jest obsługiwane w przypadku ruchu w miejscu wdrożenia.
Automatyczne skalowanie to nowa opcja skalowania w poziomie, która automatycznie obsługuje decyzje dotyczące skalowania dla aplikacji internetowych i planów usługi App Service. Różni się ona od istniejącego automatycznego skalowania platformy Azure, co umożliwia definiowanie reguł skalowania na podstawie harmonogramów i zasobów. Dzięki automatycznemu skalowaniu można dostosować ustawienia skalowania, aby poprawić wydajność aplikacji i uniknąć problemów z zimnym uruchamianiem. Wystąpienia platformy przedwcześniają działanie jako bufor podczas skalowania w górę, zapewniając płynne przejścia wydajności. Opłaty są naliczane za sekundę za każde wystąpienie, w tym wystąpienia z góry.
Porównanie opcji skalowania w poziomie i skalowania dostępnych w usłudze App Service:
Ręczne | Skalowanie automatyczne | Automatyczne skalowanie | |
---|---|---|---|
Dostępne warstwy cenowe | Podstawowe i w górę | Standardowa i w górę | Warstwy cenowe Premium V2 (P1V2, P2V2, P3V2) i Premium V3 (P0V3, P1V3, P2V3, P3V3, P1MV3, P2MV3, P3MV3, P4MV3, P5MV3) |
Skalowanie oparte na regułach | Nie. | Tak | Nie, platforma zarządza skalowaniem w poziomie i w oparciu o ruch HTTP. |
Skalowanie oparte na harmonogramie | Nie. | Tak | Nie. |
Zawsze gotowe wystąpienia | Nie, aplikacja internetowa jest uruchamiana na liczbie ręcznie skalowanych wystąpień. | Nie, aplikacja internetowa działa na innych wystąpieniach dostępnych podczas operacji skalowania w poziomie na podstawie progu zdefiniowanego dla reguł autoskalowania. | Tak (minimum 1) |
Wystąpienia przedwarmowane | Nie | Nie. | Tak (wartość domyślna 1) |
Maksymalna liczba aplikacji | Nie | Nie. | Tak |
Jak działa automatyczne skalowanie
Automatyczne skalowanie planu usługi App Service można włączyć i skonfigurować szereg wystąpień dla każdej z aplikacji internetowych. Gdy aplikacja internetowa zacznie odbierać ruch HTTP, usługa App Service monitoruje obciążenie i dodaje wystąpienia. Zasoby mogą być współużytkowane, gdy wiele aplikacji internetowych w ramach planu usługi App Service jest wymaganych do jednoczesnego skalowania w poziomie.
Oto kilka scenariuszy, w których należy automatycznie skalować w poziomie:
- Nie chcesz konfigurować reguł autoskalowania na podstawie metryk zasobów.
- Chcesz, aby aplikacje internetowe w ramach tego samego planu usługi App Service skalowały się inaczej i niezależnie od siebie.
- Aplikacja internetowa jest połączona z bazami danych lub starszym systemem, który może nie być skalowany tak szybko, jak aplikacja internetowa. Skalowanie automatycznie umożliwia ustawienie maksymalnej liczby wystąpień, na które może być skalowany plan usługi App Service. To ustawienie pomaga aplikacji internetowej nie przeciążać zaplecza.
Włączanie automatycznego skalowania
Maksymalna liczba wystąpień, do których plan usługi App Service może wzrosnąć na podstawie przychodzących żądań HTTP. W przypadku planów Premium v2 i v3 można ustawić maksymalnie 30 wystąpień. Maksymalny wzrost musi być równy lub większy niż liczba procesów roboczych określonych dla planu usługi App Service.
Aby włączyć automatyczne skalowanie, przejdź do menu po lewej stronie aplikacji internetowej i wybierz pozycję scale-out (Plan usługi App Service). Wybierz pozycję Automatyczne, zaktualizuj wartość Maksymalne wzrosty i wybierz przycisk Zapisz.
Ustawianie minimalnej liczby wystąpień aplikacji internetowej
Zawsze gotowe wystąpienia to ustawienie na poziomie aplikacji umożliwiające określenie minimalnej liczby wystąpień. Jeśli obciążenie przekracza to, co zawsze gotowe wystąpienia mogą obsłużyć, dodawane są dodatkowe wystąpienia (do określonego maksymalnego wzrostu dla planu usługi App Service).
Aby ustawić minimalną liczbę wystąpień aplikacji internetowej, przejdź do menu po lewej stronie aplikacji internetowej i wybierz pozycję scale-out (Plan usługi App Service). Zaktualizuj wartość Zawsze gotowe wystąpienia i wybierz przycisk Zapisz.
Ustawianie maksymalnej liczby wystąpień aplikacji internetowej
Maksymalny limit skalowania określa maksymalną liczbę wystąpień, do których aplikacja internetowa może być skalowana. Maksymalny limit skalowania pomaga, gdy składnik podrzędny, taki jak baza danych, ma ograniczoną przepływność. Maksymalna wartość dla aplikacji może wynosić od 1 do maksymalnego wzrostu.
Aby ustawić maksymalną liczbę wystąpień aplikacji internetowej, przejdź do menu po lewej stronie aplikacji internetowej i wybierz pozycję Scale-out (Plan usługi App Service). Wybierz pozycję Wymuś limit skalowania w poziomie, zaktualizuj limit maksymalnej skali, a następnie wybierz przycisk Zapisz.
Aktualizowanie wstępnie zainstalowanych wystąpień
Ustawienie wystąpienia przedwzroczonego zapewnia rozgrzane wystąpienia jako bufor podczas skalowania HTTP i zdarzeń aktywacji. Wystąpienia przedwarmowane będą buforowane do momentu osiągnięcia maksymalnego limitu skalowania w poziomie. Domyślna liczba wstępnie utworzonych wystąpień to 1, a w większości scenariuszy ta wartość powinna pozostać na poziomie 1.
Nie można zmienić ustawienia wystąpienia przedwzroczonego w portalu. Zamiast tego należy użyć interfejsu wiersza polecenia platformy Azure.
Wyłączanie automatycznego skalowania
Aby wyłączyć automatyczne skalowanie, przejdź do menu po lewej stronie aplikacji internetowej i wybierz pozycję Scale-out (Plan usługi App Service). Wybierz pozycję Ręczne i wybierz przycisk Zapisz.
Czy automatyczne skalowanie obsługuje aplikacje funkcji platformy Azure?
Uwaga
Automatyczne skalowanie jest wyłączone, gdy aplikacje internetowe usługi App Service i aplikacje funkcji platformy Azure znajdują się w tym samym planie usługi App Service.
Nie, możesz mieć tylko aplikacje internetowe usługi aplikacja systemu Azure Service w planie usługi App Service, w którym chcesz włączyć automatyczne skalowanie. W przypadku usługi Functions zaleca się zamiast tego użycie planu usługi Azure Functions w warstwie Premium.
Jak automatyczne skalowanie działa w tle?
Aplikacje ustawione na automatyczne skalowanie są stale monitorowane, a oceny kondycji procesów roboczych są wykonywane co najmniej raz na kilka sekund. Jeśli system wykryje zwiększone obciążenie aplikacji, kontrole kondycji stają się częstsze. W przypadku pogorszenia kondycji procesu roboczego i zwalniania żądań są wymagane dodatkowe wystąpienia. Szybkość dodawania wystąpień zależy od wzorca obciążenia i czasu uruchamiania poszczególnych aplikacji. Aplikacje z krótkim czasem uruchamiania i sporadycznymi wzrostami obciążenia mogą widzieć jedną maszynę wirtualną dodaną co kilka sekund do minuty.
Po ustąpieniu obciążenia platforma inicjuje przegląd potencjalnego skalowania. Ten proces zwykle rozpoczyna się około 5–10 minut po zatrzymaniu wzrostu obciążenia. Podczas skalowania w poziomie wystąpienia są usuwane z maksymalną szybkością co kilka sekund do minuty.
Ponadto jeśli wiele aplikacji internetowych jest wdrażanych w ramach tego samego planu usługi App Service, platforma stara się przydzielić zasoby między dostępne wystąpienia na podstawie obciążenia poszczególnych aplikacji internetowych.
Jak mogę są naliczane opłaty za wystąpienia z góry?
Aby zrozumieć, jak są naliczane opłaty za wystąpienia przedwzroczone, rozważmy ten scenariusz: Załóżmy, że aplikacja internetowa ma pięć wystąpień, które są zawsze gotowe, wraz z jednym wstępnie ustawionym wystąpieniem jako domyślnym.
Gdy aplikacja internetowa jest bezczynna i nie odbiera żadnych żądań HTTP, jest uruchamiana z pięcioma zawsze gotowymi wystąpieniami. W tym czasie nie są naliczane opłaty za wystąpienie przedwzroczone, ponieważ wystąpienia zawsze gotowe nie są używane, a tym samym nie są przydzielane żadne wystąpienia przedwarmowane.
Jednak po rozpoczęciu odbierania żądań HTTP przez aplikację internetową, a pięć zawsze gotowych wystąpień staje się aktywne, przydzielone jest wcześniej wystąpienie i rozpoczyna się rozliczanie.
Jeśli szybkość żądań HTTP stale rośnie, a usługa App Service zdecyduje się skalować poza pierwsze pięć wystąpień, rozpocznie korzystanie z wystąpienia przedwzroczonego. Oznacza to, że gdy istnieje sześć aktywnych wystąpień, siódme wystąpienie jest natychmiast aprowizowane w celu wypełnienia buforu przedwarmowanego.
Ten proces skalowania i przedwzroczy jest kontynuowany do momentu osiągnięcia maksymalnej liczby wystąpień dla aplikacji. Należy pamiętać, że żadne wystąpienia nie są wstępnie uruchamiane ani aktywowane poza maksymalną liczbą wystąpień.
Dlaczego dzienniki AppServiceHTTPLogs mają wpisy dziennika podobne do "/admin/host/ping" ze stanem 404?
Automatyczne skalowanie usługi App Service okresowo sprawdza /admin/host/ping
punkt końcowy wraz z innymi mechanizmami sprawdzania kondycji charakterystycznymi dla platformy. Te kontrole są specjalnie zaimplementowane. Czasami ze względu na istniejące konfiguracje platformy błędy 404 mogą być zwracane przez te polecenia ping. Należy jednak pamiętać, że te błędy 404 nie powinny mieć wpływu na dostępność aplikacji ani wydajność skalowania.
Jeśli aplikacja internetowa zwróci stan 5xx, te polecenia ping punktu końcowego mogą spowodować sporadyczne ponowne uruchomienie, choć jest to rzadkie. Obecnie wdrażamy ulepszenia, aby rozwiązać te sporadyczne ponowne uruchomienia. Do tego czasu upewnij się, że aplikacja internetowa nie zwraca stanu 5xx w tym punkcie końcowym. Należy pamiętać, że nie można dostosować tych punktów końcowych polecenia ping.
Jak mogę śledzić liczbę wystąpień skalowanych w poziomie podczas zdarzenia automatycznego skalowania?
Metryka AutomaticScalingInstanceCount będzie zgłaszać liczbę maszyn wirtualnych, na których uruchomiono aplikację, łącznie z wystąpieniem wstępnie wdrożonym. Ta metryka może również służyć do śledzenia maksymalnej liczby wystąpień, które aplikacja internetowa skalowała w poziomie podczas zdarzenia automatycznego skalowania. Ta metryka jest dostępna tylko dla aplikacji z włączonym automatycznym skalowaniem.
Jak koligacja ARR wpływa na automatyczne skalowanie?
usługa aplikacja systemu Azure używa plików cookie routingu żądań aplikacji nazywanych koligacją ARR. Pliki cookie koligacji ARR ograniczają skalowanie, ponieważ wysyłają żądania tylko do serwerów skojarzonych z plikiem cookie, a nie do dowolnego dostępnego wystąpienia. W przypadku aplikacji, które przechowują stan, lepiej jest skalować w górę (zwiększyć ilość zasobów w jednym wystąpieniu). W przypadku aplikacji bezstanowych skalowanie w górę (dodawanie większej liczby wystąpień) zapewnia większą elastyczność i skalowalność. Pliki cookie koligacji ARR są domyślnie włączone w usłudze App Service. W zależności od potrzeb aplikacji można wyłączyć pliki cookie koligacji ARR podczas korzystania z automatycznego skalowania.
Aby wyłączyć pliki cookie koligacji ARR: wybierz aplikację usługi App Service, a następnie w obszarze Ustawienia wybierz pozycję Konfiguracja. Następnie wybierz kartę Ustawienia ogólne. W obszarze Koligacja ARR wybierz pozycję Wyłączone, a następnie wybierz przycisk Zapisz.