Übersicht über die automatische Skalierung in Azure
In diesem Artikel werden das Feature der automatischen Skalierung in Azure Monitor und seine Vorteile beschrieben.
Die automatische Skalierung unterstützt viele Ressourcentypen. Weitere Informationen zu unterstützten Ressourcen finden Sie unter Für automatische Skalierung unterstützte Ressourcen.
Hinweis
Verfügbarkeitsgruppen sind ein älteres Skalierungsfeature für virtuelle Computer mit eingeschränkter Unterstützung. Wir empfehlen die Migration zu Azure-VM-Skalierungsgruppen, um für eine schnellere und zuverlässigere Unterstützung der automatischen Skalierung zu sorgen.
Was ist Autoskalierung?
Die automatische Skalierung ist ein Dienst, mit dem Sie je nach Last Ihrer Anwendung automatisch Ressourcen hinzufügen und entfernen können.
Wenn Ihre Anwendung eine höhere Last erfährt, werden per Autoskalierung Ressourcen hinzugefügt, um diese zu bewältigen. Wenn die Last niedrig ist, reduziert die automatische Skalierung die Anzahl der Ressourcen und senkt so Ihre Kosten. Sie können Ihre Anwendung anhand von Metriken wie CPU-Auslastung, Warteschlangenlänge und verfügbarem Arbeitsspeicher skalieren. Sie können auch basierend auf einem Zeitplan skalieren. Metriken und Zeitpläne werden in Regeln eingerichtet. Die Regeln umfassen eine Mindestebene von Ressourcen, die Sie für die Ausführung Ihrer Anwendung benötigen, und eine maximale Ebene von Ressourcen, die nicht überschritten werden darf.
Sie können Ihre Anwendung beispielsweise aufskalieren, indem Sie VMs hinzufügen, sobald die durchschnittliche CPU-Auslastung pro VM über 70 % liegt. Skalieren Sie sie zurück, indem Sie virtuelle Computer entfernen, wenn die CPU-Auslastung auf 40 % sinkt.
Wenn die Bedingungen in den Regeln erfüllt sind, werden eine oder mehrere Autoskalierungsaktionen ausgelöst, durch die VMs hinzugefügt oder entfernt werden. Darüber hinaus können Sie weitere Aktionen wie das Senden von E-Mails, Benachrichtigungen oder Webhooks durchführen, um Prozesse in anderen Systemen auszulösen.
Horizontale und vertikale Skalierung
Bei der automatischen Skalierung erfolgt eine Hoch- und Herunterskalierung oder horizontale Skalierung. Bei der horizontalen Skalierung wird die Anzahl der Ressourceninstanzen erhöht bzw. verringert. Für eine VM-Skalierungsgruppe bedeutet horizontale Skalierung beispielsweise, dass weitere VMs hinzugefügt werden. Horizontale Herunterskalierung bedeutet, VMs zu entfernen. Die horizontale Skalierung ist in einer Cloud-Umgebung flexibel, da Sie eine große Anzahl von virtuellen Computern ausführen können, um die Last zu bewältigen.
Die automatische Skalierung unterstützt keine vertikale Skalierung. Im Gegensatz dazu bleibt bei der Hoch- und Herunterskalierung oder vertikalen Skalierung die Anzahl der Ressourceninstanzen konstant, aber sie erhalten mehr Kapazität in Bezug auf Arbeitsspeicher, CPU-Geschwindigkeit, Speicherplatz auf dem Datenträger und Netzwerk. Die vertikale Skalierung ist durch die Verfügbarkeit leistungsstärkerer Hardware begrenzt, bis schließlich eine Obergrenze erreicht ist. Die Verfügbarkeit von Hardwareleistung variiert in Azure nach Region. Die vertikale Skalierung kann auch einen Neustart des virtuellen Computers während des Skalierungsprozesses erfordern.
Wenn die Bedingungen in den Regeln erfüllt sind, werden eine oder mehrere Autoskalierungsaktionen ausgelöst, durch die VMs hinzugefügt oder entfernt werden. Darüber hinaus können Sie weitere Aktionen wie das Senden von E-Mails, Benachrichtigungen oder Webhooks durchführen, um Prozesse in anderen Systemen auszulösen.
Vorhersagbare Autoskalierung
Die vorhersagbare automatische Skalierung nutzt maschinelles Lernen, um VM-Skalierungsgruppen mit zyklischen Workload-Mustern zu verwalten und zu skalieren. Sie prognostiziert die CPU-Gesamtlast Ihrer VM-Skalierungsgruppe basierend auf bisherigen CPU-Auslastungsmustern. Die Skalierungsgruppe kann dann rechtzeitig aufskaliert werden, um die vorhergesagte Nachfrage zu erfüllen.
Einrichtung der Autoskalierung
Zum Einrichten der Autoskalierung haben Sie diese Optionen:
Ressourcenmetriken
Ressourcen generieren Metriken, die in Autoskalierungsregeln verwendet werden, um Ereignisse auszulösen. VM-Skalierungsgruppen nutzen Telemetriedaten von Azure-Diagnose-Agents, um Metriken zu generieren. Telemetriedaten für das Web-Apps-Feature von Azure App Service und Azure Cloud Services stammen direkt aus der Azure-Infrastruktur. Einige häufig verwendete Metriken sind CPU-Nutzung, Arbeitsspeicherauslastung, Threadanzahl, Warteschlangenlänge und Datenträgerverwendung. Eine Liste verfügbarer Metriken finden Sie unter Allgemeine Metriken für die automatische Skalierung.
Benutzerdefinierte Metriken
Nutzen Sie Ihre eigenen benutzerdefinierten Metriken, die Ihre Anwendung generiert. Konfigurieren Sie Ihre Anwendung so, dass sie Metriken an Application Insights sendet, damit Sie anhand dieser Metriken entscheiden können, wann Sie skalieren müssen.
Time
Legen Sie zeitplanbasierte Regeln fest, um Skalierungsereignisse auszulösen. Verwenden Sie zeitplanbasierte Regeln, wenn Sie Zeitmuster in Ihrer Datenlast erkennen und skalieren möchten, ehe eine erwartete Änderung der Datenlast eintritt.
Regeln
Regeln bestimmen die für das Auslösen eines Skalierungsereignisses erforderlichen Bedingungen sowie Richtung und Umfang der Skalierung. Kombinieren Sie mehrere Regeln mithilfe verschiedener Metriken, z. B. CPU-Auslastung und Warteschlangenlänge. Definieren Sie bis zu 10 Regeln pro Profil.
Es gibt folgende Regeltypen:
- Metrikbasiert: Werden auf der Grundlage eines Metrikwerts ausgelöst, z. B. wenn die CPU-Auslastung über 50 % liegt.
- Zeitbasiert: Werden auf der Grundlage eines Zeitplans ausgelöst, z. B. jeden Samstag um 8 Uhr.
Die automatische Skalierung führt eine Hochskalierung durch, wenn eine der Regeln erfüllt ist. Die automatische Skalierung führt eine Herunterskalierung durch, wenn alle Regeln erfüllt sind. Bei den logischen Operatoren wird der ODER-Operator verwendet, wenn Sie die Hochskalierung mit mehreren Regeln durchführen. Der UND-Operator wird beim Herunterskalieren mit mehreren Regeln verwendet.
Aktionen und Automation
Mit Regeln können eine oder mehrere Aktionen ausgelöst werden. Dazu gehören die folgenden Aktionen:
- Skalieren: dient zum Herunter- und Hochskalieren von Ressourcen.
- E-Mail: dient zum Senden einer E-Mail an Abonnementadministratoren, Co-Admins bzw. weitere angegebene E-Mail-Adressen.
- Webhooks: dienen zum Aufrufen von Webhooks, mit denen mehrere komplexe Aktionen innerhalb oder außerhalb von Azure ausgelöst werden. In Azure können Sie Folgendes ausführen:
- Starten eines Azure Automation-Runbooks
- Aufrufen einer Azure-Funktion.
- Auslösen einer Azure-Logik-App.
Einstellungen für automatische Skalierung
Zu den Autoskalierungseinstellungen gehören Skalierungsbedingungen, die Regeln, Grenzwerte, Zeitpläne und Benachrichtigungen definieren. Definieren Sie in den Einstellungen eine oder mehrere Skalierungsbedingungen, und richten Sie eine Benachrichtigung ein.
Für die Autoskalierung werden die folgende Terminologie und Struktur verwendet.
Benutzeroberfläche | JSON/CLI | BESCHREIBUNG |
---|---|---|
Skalierungsbedingungen | profiles | Eine Sammlung von Regeln, Instanzgrenzwerten und Zeitplänen, die auf einer Metrik oder Zeit basieren. Sie können eine oder mehrere Skalierungsbedingungen oder Profile definieren. Definieren Sie bis zu 20 Profile pro Einstellung für die automatische Skalierung. |
Regeln | rules | Eine Reihe von zeit- oder metrikbasierten Bedingungen, die eine Skalierungsaktion auslösen. Sie können mindestens eine Regel für Auf- und Abskalierungsaktionen definieren. Definieren Sie bis zu 10 Regeln pro Profil. |
Instanzgrenzwerte | Kapazität | Jede Skalierungsbedingung bzw. jedes Profil definiert die Standard-, Maximal- und Mindestanzahl von Instanzen, die unter diesem Profil ausgeführt werden können. |
Zeitplan | recurrence | Gibt an, wann die Autoskalierung diese Skalierungsbedingung oder dieses Profil anwendet. Sie können über mehrere Skalierungsbedingungen verfügen, mit denen Sie unterschiedliche und sich überlappende Anforderungen handhaben können. Sie können beispielsweise unterschiedliche Skalierungsbedingungen für verschiedene Tageszeiten oder Wochentage festlegen. |
Benachrichtigen | Benachrichtigung | Legt die Benachrichtigungen fest, die gesendet werden sollen, wenn ein Autoskalierungsereignis auftritt. Bei der automatischen Skalierung können Benachrichtigungen an eine oder mehrere E-Mail-Adressen gesendet oder ein oder mehrere Webhooks aufgerufen werden. Sie können im JSON-Code mehrere Webhooks konfigurieren, jedoch auf der Benutzeroberfläche nur einen. |
Die vollständige Liste mit den konfigurierbaren Feldern und Beschreibungen finden Sie unter den Informationen zur REST-API für die automatische Skalierung.
Codebeispiele finden Sie unter:
- Tutorial: Automatisches Skalieren einer VM-Skalierungsgruppe mit Azure CLI
- Tutorial: Automatisches Skalieren einer VM-Skalierungsgruppe mit PowerShell
Unterstützte Dienste für die automatische Skalierung
Die automatische Skalierung unterstützt die folgenden Dienste.
Dienst | Schema und Dokumentation |
---|---|
Azure-VM-Skalierungsgruppen | Übersicht über die Autoskalierung mit Azure-VM-Skalierungsgruppen |
Web-Apps-Funktion von Azure App Service | Skalieren von Web-Apps |
Azure API Management-Dienst | Automatisches Skalieren einer Azure API Management-Instanz |
Azure Data Explorer-Cluster | Verwalten der Skalierung von Azure Data Explorer-Clustern bei sich änderndem Bedarf |
Azure Stream Analytics | Automatische Skalierung von Streaming-Einheiten (Vorschau) |
Azure SignalR Service (Premium-Tarif) | Automatisches Skalieren der Einheiten einer Azure SignalR Service-Instanz |
Azure Machine Learning-Arbeitsbereich | Automatisches Skalieren eines Onlineendpunkts |
Azure Spring Apps | Einrichten von Autoskalierung für Anwendungen |
Azure Media Services | Automatische Skalierung in Media Services |
Azure-Servicebus | Automatisches Aktualisieren von Messagingeinheiten eines Azure Service Bus-Namespace |
Nächste Schritte
Weitere Informationen zur Autoskalierung finden Sie in den folgenden Artikeln:
- Allgemeine Metriken für die automatische Skalierung in Azure Monitor
- Verwenden von automatischen Skalierungsvorgängen zum Senden von E-Mail- und Webhook-Warnbenachrichtigungen
- Tutorial: Automatisches Skalieren einer VM-Skalierungsgruppe mit Azure CLI
- Tutorial: Automatisches Skalieren einer VM-Skalierungsgruppe mit Azure PowerShell
- Referenz zur Befehlszeilenschnittstelle für die Autoskalierung
- Ressourcendefinition mit einer ARM-Vorlage
- PowerShell-Referenz zu Az.Monitor
- REST-API-Referenz: Einstellungen für die automatische Skalierung