Manuelles Skalieren einer Web-App

Abgeschlossen

Das manuelle horizontale Hochskalieren und anschließende Herunterskalieren bietet Ihnen die Möglichkeit, auf erwartete Zunahmen und Abnahmen des Datenverkehrs zu reagieren. Das horizontale Skalieren bietet den zusätzlichen Vorteil, die Verfügbarkeit aufgrund der erhöhten Anzahl von Instanzen der Web-App zu steigern. Der Ausfall einer Instanz führt nicht dazu, dass die Web-App nicht verfügbar ist.

Im Hotelreservierungssystem können Sie vor einem erwarteten saisonalen Anstieg des Datenverkehrs horizontal skalieren. Wenn die Saison vorüber ist und die Anzahl der Buchungsanfragen abnimmt, können Sie wieder horizontal herunterskalieren.

In dieser Lerneinheit erfahren Sie, wie Sie eine Web-App manuell horizontal skalieren und anschließend wieder horizontal herunterskalieren.

App Service-Pläne und Skalierbarkeit

Eine Web-App, die in Azure ausgeführt wird, verwendet in der Regel Azure App Service, um die Hostingumgebung bereitzustellen. Der App-Dienst kann mehrere Instanzen der Web-App für die Ausführung anordnen. Es wird ein Lastenausgleich für eingehende Anforderungen in diesen Instanzen ermöglicht. Jede Instanz wird auf einem virtuellen Computer ausgeführt.

Die für jede Instanz verfügbaren Ressourcen werden durch einen App Service-Plan definiert. Dieser legt das Betriebssystem (Windows oder Linux), die Hardware (Arbeitsspeicher, CPU-Verarbeitungskapazität, Datenträgerspeicher usw.) und die Verfügbarkeit von Diensten wie der automatischen Sicherung und Wiederherstellung fest.

Azure bietet eine Reihe von klar definierten Tarifen für App Service-Pläne. Die folgende Liste fasst jeden dieser Tarife in aufsteigender Reihenfolge der Kapazität und der Kosten zusammen:

  • Der Free-Tarif bietet 1 GB Speicherplatz und Unterstützung für bis zu zehn Apps, aber nur eine einzige gemeinsam verwendete Instanz und keine SLA für die Verfügbarkeit. Jede App besitzt ein Computekontingent von 60 Minuten pro Tag. Der Free-Tarif eignet sich für die Entwicklung und den Test von Apps und nicht für Bereitstellungen in der Produktionsumgebung.
  • Der Shared-Tarif bietet Unterstützung für weitere Apps (bis zu 100), die ebenfalls in einer einzelnen gemeinsam genutzten Instanz ausgeführt werden. Apps besitzen ein Computekontingent von 240 Minuten pro Tag. Es ist keine Verfügbarkeits-SLA vorhanden.
  • Der Basic-Tarif unterstützt eine unbegrenzte Anzahl von Apps und stellt mehr Speicherplatz auf dem Datenträger zur Verfügung. Apps können auf drei dedizierte Instanzen horizontal skaliert werden. Dieser Tarif bietet auch eine SLA mit 99,95 % Verfügbarkeit. Es gibt drei Ebenen in diesem Tarif, die unterschiedliche Mengen an Computeleistung, Arbeitsspeicher und Speicherplatz auf dem Datenträger bieten.
  • Der Standard-Tarif unterstützt ebenfalls eine unbegrenzte Anzahl von Apps. Dieser Tarif unterstützt eine Skalierung auf zehn dedizierte Instanzen und bietet eine SLA mit 99,95 % Verfügbarkeit. Ebenso wie beim Basic-Tarif sind auch in diesem Tarif drei Ebenen verfügbar, die zunehmend leistungsfähige Compute-, Arbeitsspeicher- und Datenträgeroptionen bieten.
  • Der Premium-Tarif ermöglicht bis zu 20 dedizierte Instanzen, eine Verfügbarkeits-SLA von 99,95 % und mehrere Hardwareebenen.
  • Der Tarif für isolierte Umgebungen stellt ein dediziertes virtuelles Azure-Netzwerk zur Verfügung, das eine Netzwerk- und Computeisolierung ermöglicht. Dieser Tarif unterstützt eine horizontale Skalierung auf 100 Instanzen und bietet eine SLA mit 99,95 % Verfügbarkeit.

Hinweis

Einige Tarife sind nicht für alle Betriebssysteme verfügbar. Beispielsweise gibt es derzeit keinen Shared-Tarif für Linux.

Überwachen und Skalieren einer Web-App

Wenn Sie eine Web-App erstellen, können Sie entweder einen neuen App Service-Plan erstellen oder einen vorhandenen verwenden. Wenn Sie einen bestehenden Plan auswählen, nutzen alle anderen Web-Apps, die denselben Plan verwenden, Ressourcen mit Ihrer Web-App gemeinsam. Sie werden alle zusammen skaliert und müssen deswegen dieselben Skalierungsanforderungen aufweisen. Wenn dies nicht der Fall ist, müssen Sie einen separaten App Service-Plan für jede App verwenden.

Sie skalieren horizontal, indem Sie einem App Service-Plan weitere Instanzen bis zur maximalen Anzahl hinzufügen, die für den ausgewählten Tarif gilt. Wenn Sie nicht den Free-Tarif verwenden, werden Ihnen die einzelnen Instanzen pro Stunde berechnet. Sie können diese Aufgabe im Azure-Portal ausführen.

Der Schlüssel zur effektiven Skalierung liegt darin, zu wissen, wann und in welchem Ausmaß die Skalierung erfolgen soll. Sie überwachen die Leistung einer Web-App mithilfe der für App Service verfügbaren Metriken. Dies geht am einfachsten über das Azure-Portal.

Wenn Sie einen stetigen Anstieg der Ressourcenauslastung feststellen, z. B. in Bezug auf CPU-Auslastung, Arbeitsspeicherbelegung oder Länge der Datenträgerwarteschlange, sollten Sie eine horizontale Skalierung in Betracht ziehen, bevor diese Metriken einen kritischen Punkt erreichen. Zusätzlich sollten Sie die durchschnittliche Antwortzeit von Anforderungen und die Anzahl der fehlerhaften Anforderungen überwachen. Wenn die Werte für diese beiden Metriken hoch sind, wird das System möglicherweise nahe an der oder über der Kapazitätsgrenze ausgeführt. Möglicherweise müssen Sie sofort horizontal skalieren.

Wenn aus den Metriken hervorgeht, dass Ihr System wenig ausgelastet ist und über viele freie Kapazitäten verfügt, sollten Sie es wieder horizontal herunterskalieren, um die Kosten zu senken.

In beiden Fällen sollten Sie die Statistiken für die Web-App weiterhin überwachen. Warten Sie, bis sich das System stabilisiert hat. Wenn aus den Metriken hervorgeht, dass die App noch immer über zu wenige oder zu viele Ressourcen verfügt, fügen Sie bei Bedarf Instanzen hinzu, oder entfernen Sie sie.