Omówienie autoskalowania na platformie Azure

W tym artykule opisano funkcję automatycznego skalowania w usłudze Azure Monitor i jej zalety.

Autoskalowanie obsługuje wiele typów zasobów. Aby uzyskać więcej informacji na temat obsługiwanych zasobów, zobacz Automatyczne skalowanie obsługiwanych zasobów.

Uwaga

Zestawy dostępności to starsza funkcja skalowania dla maszyn wirtualnych z ograniczoną obsługą. Zalecamy migrację do usługi Azure Virtual Machine Scale Sets w celu szybszego i bardziej niezawodnego skalowania automatycznego.

Co to jest autoskalowanie?

Automatyczne skalowanie to usługa, której można użyć do automatycznego dodawania i usuwania zasobów zgodnie z obciążeniem aplikacji.

Gdy aplikacja ma większe obciążenie, automatyczne skalowanie dodaje zasoby do obsługi zwiększonego obciążenia. Gdy obciążenie jest niskie, skalowanie automatyczne zmniejsza liczbę zasobów, co obniża koszty. Aplikację można skalować na podstawie metryk, takich jak użycie procesora CPU, długość kolejki i dostępna pamięć. Można również skalować na podstawie harmonogramu. Metryki i harmonogramy są konfigurowane w regułach. Reguły obejmują minimalny poziom zasobów, które należy uruchomić aplikację i maksymalny poziom zasobów, które nie zostaną przekroczone.

Na przykład przeprowadź skalowanie aplikacji w poziomie, dodając maszyny wirtualne, gdy średnie użycie procesora CPU na maszynę wirtualną przekracza 70%. Skaluj ją z powrotem, usuwając maszyny wirtualne, gdy użycie procesora CPU spadnie do 40%.

A diagram that shows scaling out by adding virtual machine instances.

Po spełnieniu warunków w regułach jest wyzwalana co najmniej jedna akcja autoskalowania, dodawanie lub usuwanie maszyn wirtualnych. Możesz również wykonywać inne akcje, takie jak wysyłanie wiadomości e-mail, powiadomień lub elementów webhook w celu wyzwalania procesów w innych systemach.

Skalowanie w poziomie a w pionie

Skalowanie automatyczne jest skalowane w poziomie lub w poziomie. Skalowanie w poziomie jest wzrostem lub zmniejszeniem liczby wystąpień zasobów. Na przykład w przypadku zestawu skalowania maszyn wirtualnych skalowanie w poziomie oznacza dodanie większej liczby maszyn wirtualnych. Skalowanie w systemie oznacza usuwanie maszyn wirtualnych. Skalowanie w poziomie jest elastyczne w sytuacji chmury, ponieważ umożliwia uruchamianie dużej liczby maszyn wirtualnych do obsługi obciążenia.

Autoskalowanie nie obsługuje skalowania w pionie. Natomiast skalowanie w górę i w dół lub skalowanie w pionie utrzymuje stałą liczbę wystąpień zasobów, ale zapewnia im większą pojemność pod względem pamięci, szybkości procesora CPU, miejsca na dysku i sieci. Skalowanie w pionie jest ograniczone przez dostępność większego sprzętu, który ostatecznie osiągnie górny limit. Dostępność rozmiaru sprzętu różni się w zależności od regionu platformy Azure. Skalowanie w pionie może również wymagać ponownego uruchomienia maszyny wirtualnej podczas procesu skalowania.

A diagram that shows scaling up by adding CPU and memory to a virtual machine.

Po spełnieniu warunków w regułach jest wyzwalana co najmniej jedna akcja autoskalowania, dodawanie lub usuwanie maszyn wirtualnych. Możesz również wykonywać inne akcje, takie jak wysyłanie wiadomości e-mail, powiadomień lub elementów webhook w celu wyzwalania procesów w innych systemach.

Automatyczne skalowanie predykcyjne

Autoskalowanie predykcyjne używa uczenia maszynowego do zarządzania zestawami skalowania maszyn wirtualnych i skalowania ich przy użyciu cyklicznych wzorców obciążeń. Prognozuje ogólne obciążenie procesora CPU w zestawie skalowania maszyn wirtualnych na podstawie historycznych wzorców użycia procesora CPU. Zestaw skalowania można następnie skalować w poziomie w czasie, aby sprostać przewidywanemu zapotrzebowaniu.

Konfiguracja automatycznego skalowania

Autoskalowanie można skonfigurować za pomocą:

Architektura

Na poniższym diagramie przedstawiono architekturę skalowania automatycznego.

Diagram that shows autoscale flow.

Metryki zasobów

Zasoby generują metryki używane w regułach skalowania automatycznego do wyzwalania zdarzeń skalowania. Zestawy skalowania maszyn wirtualnych używają danych telemetrycznych agentów diagnostyki platformy Azure do generowania metryk. Dane telemetryczne funkcji Web Apps usługi aplikacja systemu Azure i usług Azure Cloud Services pochodzą bezpośrednio z infrastruktury platformy Azure. Niektóre często używane metryki obejmują użycie procesora CPU, użycie pamięci, liczniki wątków, długość kolejki i użycie dysku. Aby uzyskać listę dostępnych metryk, zobacz Autoskaluj typowe metryki.

Metryki niestandardowe

Użyj własnych metryk niestandardowych generowanych przez aplikację. Skonfiguruj aplikację do wysyłania metryk do usługi Application Szczegółowe informacje, aby można było użyć tych metryk do podjęcia decyzji o tym, kiedy należy przeprowadzić skalowanie.

Czas

Konfigurowanie reguł opartych na harmonogramie w celu wyzwalania zdarzeń skalowania. Użyj reguł opartych na harmonogramie, gdy widzisz wzorce czasu obciążenia i chcesz skalować je przed przewidywaną zmianą obciążenia.

Reguły

Reguły definiują warunki potrzebne do wyzwolenia zdarzenia skalowania, kierunku skalowania i ilości do skalowania według. Połącz wiele reguł przy użyciu różnych metryk, takich jak użycie procesora CPU i długość kolejki. Zdefiniuj maksymalnie 10 reguł na profil.

Reguły mogą być następujące:

  • Oparte na metryce: wyzwalacz na podstawie wartości metryki, na przykład gdy użycie procesora CPU przekracza 50%.
  • Na podstawie czasu: wyzwalacz na podstawie harmonogramu, na przykład w każdą sobotę o 8:00.

Skalowanie automatyczne jest skalowane w poziomie w przypadku spełnienia któregokolwiek z reguł. Skalowanie automatyczne jest skalowane tylko w przypadku spełnienia wszystkich reguł. Jeśli chodzi o operatory logiki, operator OR jest używany do skalowania w górę z wieloma regułami. Operator AND jest używany do skalowania w systemie z wieloma regułami.

Akcje i automatyzacja

Reguły mogą wyzwalać co najmniej jedną akcję. Akcje obejmują:

  • Skalowanie: skalowanie zasobów w poziomie lub w poziomie.
  • Wiadomość e-mail: wyślij wiadomość e-mail do administratorów subskrypcji, współadministratorów i/lub dowolnego innego adresu e-mail.
  • Elementy webhook: wywoływanie elementów webhook w celu wyzwalania wielu złożonych akcji wewnątrz platformy Azure lub poza nim. Na platformie Azure można wykonywać następujące czynności:

Ustawienia autoskalowania

Ustawienia skalowania automatycznego zawierają konfigurację automatycznego skalowania. Ustawienie obejmuje warunki skalowania, które definiują reguły, limity i harmonogramy oraz powiadomienia. Zdefiniuj co najmniej jeden warunek skalowania w ustawieniach i jedną konfigurację powiadomień.

Autoskaluj używa następującej terminologii i struktury.

INTERFEJS UŻYTKOWNIKA Kod JSON/interfejs wiersza polecenia opis
Warunki skalowania Profile Kolekcja reguł, limitów wystąpień i harmonogramów na podstawie metryki lub czasu. Można zdefiniować jeden lub więcej warunków skalowania lub profilów. Zdefiniuj maksymalnie 20 profilów na ustawienie autoskalowania.
Reguły rules Zestaw warunków na podstawie czasu lub metryk, które wyzwalają akcję skalowania. Można zdefiniować co najmniej jedną regułę dla akcji skalowanych w poziomie i skalowanych w poziomie. Zdefiniuj maksymalnie 10 reguł na profil.
Limity wystąpień capacity Każdy warunek skalowania lub profil definiuje domyślną, maksymalną i minimalną liczbę wystąpień, które mogą być uruchamiane w ramach tego profilu.
Zaplanuj recurrence Wskazuje, kiedy skalowanie automatyczne powinno wprowadzić ten warunek skalowania lub profil w życie. Istnieje wiele warunków skalowania, które umożliwiają obsługę różnych i nakładających się wymagań. Na przykład można mieć różne warunki skalowania dla różnych godzin dnia lub dni tygodnia.
Notify powiadomienie Definiuje powiadomienia wysyłane po wystąpieniu zdarzenia autoskalowania. Automatyczne skalowanie może powiadamiać co najmniej jeden adres e-mail lub wykonywać wywołanie przy użyciu co najmniej jednego elementu webhook. W formacie JSON można skonfigurować wiele elementów webhook, ale tylko jeden w interfejsie użytkownika.

Diagram that shows Azure autoscale setting, profile, and rule structure.

Pełna lista konfigurowalnych pól i opisów jest dostępna w interfejsie API REST autoskalowania.

Aby zapoznać się z przykładami kodu, zobacz:

Obsługiwane usługi skalowania automatycznego

Automatyczne skalowanie obsługuje następujące usługi.

Service Schemat i dokumentacja
Zestawy skalowania maszyn wirtualnych platformy Azure Omówienie skalowania automatycznego za pomocą zestawów skalowania maszyn wirtualnych platformy Azure
Funkcja Web Apps usługi Azure App Service Skalowanie aplikacji internetowych
Usługa Azure API Management Automatyczne skalowanie wystąpienia usługi Azure API Management
Klastry usługi Azure Data Explorer Zarządzanie skalowaniem klastrów usługi Azure Data Explorer w celu dostosowania się do zmieniającego się zapotrzebowania
Azure Stream Analytics Jednostki przesyłania strumieniowego autoskalowania (wersja zapoznawcza)
Azure SignalR Service (warstwa Premium) Automatyczne skalowanie jednostek usługi Azure SignalR
Obszar roboczy usługi Azure Machine Learning Automatyczne skalowanie punktu końcowego online
Azure Spring Apps Konfigurowanie automatycznego skalowania dla aplikacji
Azure Media Services Skalowanie automatyczne w usłudze Media Services
Azure Service Bus Automatyczne aktualizowanie jednostek obsługi komunikatów przestrzeni nazw usługi Azure Service Bus
Azure Logic Apps — środowisko usługi integracji (ISE) Dodawanie pojemności środowiska ISE

Następne kroki

Aby dowiedzieć się więcej na temat autoskalowania, zobacz następujące zasoby: