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%.
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.
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ą:
- Witryna Azure Portal
- Program PowerShell
- Międzyplatformowy interfejs wiersza polecenia (CLI)
- Interfejs API REST usługi Azure Monitor
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ę, aby wysyłała metryki do usługi Application Insights , aby można było używać tych metryk do decydowania o tym, kiedy należy skalować.
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:
- Uruchom element Runbook usługi Azure Automation.
- Wywoływanie funkcji platformy Azure.
- Wyzwalanie aplikacji logiki platformy Azure.
Ustawienia autoskalowania
Ustawienia skalowania automatycznego obejmują 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 autoskaluje 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. |
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:
- Samouczek: automatyczne skalowanie zestawu skalowania maszyn wirtualnych przy użyciu interfejsu wiersza polecenia platformy Azure
- Samouczek: automatyczne skalowanie zestawu skalowania maszyn wirtualnych przy użyciu szablonu platformy Azure
Obsługiwane usługi skalowania automatycznego
Automatyczne skalowanie obsługuje następujące usługi.
Następne kroki
Aby dowiedzieć się więcej na temat autoskalowania, zobacz następujące zasoby:
- Typowe metryki skalowania automatycznego w usłudze Azure Monitor
- Wysyłanie powiadomień o alertach wiadomości e-mail i elementu webhook za pomocą akcji automatycznego skalowania
- Samouczek: automatyczne skalowanie zestawu skalowania maszyn wirtualnych przy użyciu interfejsu wiersza polecenia platformy Azure
- Samouczek: automatyczne skalowanie zestawu skalowania maszyn wirtualnych za pomocą programu Azure PowerShell
- Dokumentacja interfejsu wiersza polecenia automatycznego skalowania
- Definicja zasobu w szablonie usługi ARM
- Dokumentacja modułu Az.Monitor programu PowerShell
- Dokumentacja interfejsu API REST: ustawienia skalowania automatycznego