Was ist die automatische Skalierung?
In dieser Lerneinheit befassen wir uns mit Azure-Skalierungskonzepten.
Elastische Skalierung
Ein Hauptvorteil der Cloud ist die elastische Skalierung. Sie skalieren auf, indem Sie Anwendungsinstanzen auf der Grundlage einer erhöhten Nachfrage hinzufügen. Sie können so viel Kapazität verwenden, wie Sie benötigen, und diese bei steigender Auslastung reduzieren, und die Abskalierung durchführen, wenn die zusätzliche Kapazität nicht benötigt wird.
Ein klassisches Beispiel für die Notwendigkeit von Elastizität ist, wenn die Website einer Organisation ungewöhnlich stark ausgelastet ist. Sollte die Website sich nicht an die Nachfrage anpassen können, werden Anforderungen langsamer verarbeitet, da diese in einer Warteschlange auf Prozessorzeit warten. Der Kunde bemerkt, dass die Website langsam ist und nicht reagiert. In Extremfällen kann es sogar sein, dass die Website ausfällt.
Manuelle und automatische Skalierung
Sie können die Skalierungseinstellungen für eine Anwendung mithilfe von zwei Modi festlegen: Manuell oder Automatisch. Bei der manuellen Konfiguration legen Sie die absolute Anzahl von Instanzen fest. Mit der Autoskalierung können Sie jedoch Regeln festlegen, die die Vorgehensweise und den Umfang der Skalierung steuern.
Bei der automatischen Skalierung können Sie jeweils die richtige Menge an Ressourcen ausführen, um die Lasten für Ihre Anwendung zu bewältigen. Die automatische Skalierung verringert den Verwaltungsaufwand, da die Systembetreiber nicht ständig Entscheidungen über das Hinzufügen oder Entfernen von Ressourcen oder die Überprüfung der Systemleistung treffen müssen. Eine minimale Anzahl sorgt dafür, dass Ihre Anwendung auch dann immer ausgeführt wird, wenn keine Last vorhanden ist. Mit einer maximalen Anzahl können Sie eine Obergrenze für die Gesamtkosten pro Stunde festlegen. Sie bestimmen die automatische Skalierung zwischen diesen beiden Grenzwerten, indem Sie Regeln erstellen.
Aufskalieren im Vergleich zum Hochskalieren
Es gibt im Wesentlichen zwei Möglichkeiten, eine Anwendung zu skalieren:
Die vertikale Skalierung, die auch als Hoch- und Herunterskalierung bezeichnet wird, ändert die Kapazität einer Ressource. Beispielsweise können Sie eine Anwendung auf eine größere Computegröße verschieben. Die vertikale Skalierung erfordert oft, dass das System während der erneuten Bereitstellung vorübergehend nicht verfügbar ist, daher wird die vertikale Skalierung seltener automatisiert.
Horizontale Skalierung, die auch als Auf- und Abskalierung bezeichnet wird, fügt Instanzen einer Ressource hinzu oder entfernt sie. Die Anwendung wird weiter ohne Unterbrechung ausgeführt, wenn neue Ressourcen bereitgestellt werden. Wenn der Bereitstellungsprozess abgeschlossen ist, wird die Lösung auf diesen zusätzlichen Ressourcen bereitgestellt. Wenn der Bedarf sinkt, können die zusätzlichen Ressourcen sauber heruntergefahren und die Zuordnung aufgehoben werden.
Bei der Autoskalierung erfolgt nur ein Aufskalieren (horizontal), was eine Erhöhung (Aufskalieren) oder Verringerung (Abskalieren) hinsichtlich der Anzahl der Anwendungsinstanzen bedeutet.
Autoskalierung in Azure Spring Apps
Die automatische Skalierung in Azure Spring Apps überwacht die Ressourcenmetriken einer Spring-Anwendung während der Ausführung. Dabei werden Situationen erkannt, in denen zusätzliche Ressourcen für eine erhöhte Workload erforderlich sind. Außerdem wird sichergestellt, dass diese Ressourcen zur Verfügung gestellt werden, bevor eine Überlastung des Systems eintritt. Die Autoskalierung ist ein integriertes Feature von Azure Spring Apps, das Microserviceanwendungen dabei hilft, ihre Leistung zu verbessern, wenn sich die Nachfrage ändert.
Beispiel aus der realen Welt
Die Lebensmittelgeschäfte von Raley’s muss den Code und die Infrastruktur für ihre unter Azure gehosteten Java-basierten E-Commerce-Seiten modernisieren. Das Unternehmen muss auch seine Netzwerkzuordnung optimieren und automatisieren. Alles muss stabil, jederzeit verfügbar und – was am wichtigsten ist – einfach zu verwalten sein.
Raley’s entscheidet sich für Azure Spring Apps. Azure Spring Apps ist ein verwalteter Dienst für Spring Boot, das die Leistung von Kubernetes zusammen mit Echtzeitüberwachung und automatischer Skalierung bietet. Außerdem kann Raley’s eine echte PaaS-Architektur (Platform-as-a-Service) einführen, um die Vorteile der Cloud besser zu nutzen.
Der Dienst verwaltet die Infrastruktur von Spring Boot-Microserviceanwendungen im Hintergrund, sodass sich Entwickler auf ihren Code konzentrieren können. Bei der Bereitstellung von Java-Bibliotheken oder -Code stellt Spring Apps automatisch Verbindungen der Apps mit der Runtime des Spring-Diensts her.
Nach der Bereitstellung ist Azure Spring Apps vollständig mit Azure Monitor-Tools wie Application Insights und Log Analytics integriert. Diese Tools ermöglichen eine einfache, vollständig konfigurierbare Überwachung von Leistung und Fehlern. Dieselben Überwachungsdienste können auch die automatische Skalierung unterstützen, um sicherzustellen, dass die Größe der Ressourcen für aktuelle Auslastungen angemessen ist.