Untersuchen von Skalierungsoptionen

Abgeschlossen

Azure App Service unterstützt zwei Optionen zum automatischen Skalieren Ihrer Web-Apps:

  • Automatische Skalierung mit Azure-Autoskalierung. Durch die automatische Skalierung werden Skalierungsentscheidungen basierend auf von Ihnen definierten Regeln getroffen.
  • Automatische Skalierung von Azure App Service. Die automatische Skalierung trifft Skalierungsentscheidungen für Sie basierend auf den von Ihnen ausgewählten Parametern.

Was ist eine automatische Skalierung?

Bei der automatischen Skalierung passt ein Cloudsystem oder ein Cloudprozess verfügbare Ressourcen auf Grundlage der aktuellen Nachfrage an. Dabei wird nicht zentral, sondern horizontal hoch- und herunterskaliert.

Eine automatische Skalierung kann ausgelöst werden, wenn dies in einem Zeitplan vorgesehen ist oder festgestellt wird, dass dem System nicht mehr genügend Ressourcen zur Verfügung stehen. Ein solcher Auslösevorgang ist beispielsweise möglich, wenn die CPU-Auslastung zunimmt, mehr Arbeitsspeicher belegt wird oder die Anzahl der eingehenden Anforderungen für einen Dienst zunimmt. Auch eine Kombination dieser Faktoren ist denkbar.

Automatische Skalierung in Azure App Service

Bei einer automatischen Skalierung in Azure App Service werden die Ressourcenmetriken einer ausgeführten Web-App überwacht. Dabei werden Situationen erkannt, in denen weitere 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.

Bei einer automatische Skalierung wird auf Änderungen in der Umgebung reagiert, indem Webserver hinzufügt oder entfernt und die Last zwischen diesen ausgeglichen wird. Die automatische Skalierung hat keine Auswirkungen auf die CPU-Leistung, den Arbeitsspeicher oder die Speicherkapazität der Webserver, auf denen die App ausgeführt wird. Nur die Anzahl der Webserver wird angepasst.

Regeln für die automatische Skalierung

Die automatische Skalierung basiert auf Regeln, die Sie selbst definieren. Mit einer Regel wird der Schwellenwert für eine Metrik festgelegt und eine automatische Skalierung ausgelöst, wenn dieser Wert überschritten wird. Durch die automatische Skalierung können auch Ressourcen freigegeben werden, wenn sich die Workload verringert.

Regeln für die automatische Skalierung sollten Sie mit Bedacht festlegen. Wenn es beispielsweise zu einem Denial-of-Service-Angriff kommt, führt dies vermutlich dazu, dass der eingehende Datenverkehr deutlich zunimmt. Wird in diesem Fall eine automatische Skalierung für Anforderungsspitzen durchgeführt, wäre dies eine sinnlose und teure Maßnahme. Die Anforderungen sollten dann nicht verarbeitet, sondern verworfen werden, da sie nicht von echten Benutzern stammen. Eine bessere Lösung besteht darin, Maßnahmen zu implementieren, mit denen Anforderungen im Kontext eines solchen Angriffs erkannt und gefiltert werden, bevor sie auf Ihren Dienst treffen.

Wann sollte die automatische Skalierung eingesetzt werden?

Durch die automatische Skalierung werden Ihre Dienste flexibler. Für Feiertage rechnen Sie möglicherweise damit, dass die Benutzeraktivität für eine Geschäftsanwendung überdurchschnittlich hoch oder niedrig ist.

Die automatische Skalierung führt zu höherer Verfügbarkeit und einer verbesserten Fehlertoleranz. Dadurch kann sichergestellt werden, dass Clientanforderungen an einen Dienst nicht abgelehnt werden, weil eine Instanz die Anforderung nicht rechtzeitig bestätigen kann oder wegen Überlastung abgestürzt ist.

Bei einer automatischen Skalierung werden Webserver hinzugefügt oder entfernt. Wenn Ihre Web-Apps bei jeder Anforderung ressourcenintensive Verarbeitungsvorgänge ausführen, ist die automatische Skalierung möglicherweise kein wirksamer Ansatz. In diesen Situationen kann ein manuelles zentrales Hochskalieren erforderlich sein. Wenn beispielsweise eine Anforderung an eine Web-App gesendet wird und dabei komplexe Verarbeitungsvorgänge für ein großes Dataset ausgeführt werden, kann je nach Größe der Instanz eine einzelne Anforderung dazu führen, dass die Verarbeitungs- und Speicherkapazität dieser Instanz erschöpft wird.

Auch für langfristiges Wachstum ist die automatische Skalierung nicht der beste Ansatz. Möglicherweise verfügen Sie über eine Web-App, die anfänglich nur von ein paar Benutzern verwendet wird. Im Laufe der Zeit wird die App jedoch immer beliebter. Die automatische Skalierung ist mit einem Mehraufwand verbunden, der sich aus der Überwachung von Ressourcen und der Entscheidung ergibt, ob ein Skalierungsereignis ausgelöst werden soll. Wenn Sie in diesem Szenario das Wachstum vorhersagen können, ist eine manuelle Systemskalierung über einen längeren Zeitraum möglicherweise der kostengünstigere Ansatz.

Auch die Anzahl der Dienstinstanzen ist ein Faktor, der bedacht werden muss. Möglicherweise planen Sie, die meiste Zeit nur einige wenige Instanzen eines Diensts auszuführen. In diesem Fall ist Ihr Dienst jedoch anfällig für Downtime oder mangelnde Verfügbarkeit – und zwar unabhängig davon, ob die automatische Skalierung aktiviert ist. Je weniger Instanzen anfänglich vorhanden sind, desto geringer sind die Kapazitäten für den Umgang mit einer zunehmenden Workload, während durch die automatische Skalierung mehr Instanzen eingerichtet werden.

Automatische Skalierung von Azure App Service

Die automatische Skalierung ist eine neue Skalierungsoption, mit der Skalierungsentscheidungen für Ihre Web-Apps und App-Servicepläne automatisch behandelt werden. Sie unterscheidet sich von der bereits vorhandenen Azure-Autoskalierung, mit der Sie Skalierungsregeln basierend auf Zeitplänen und Ressourcen definieren können. Mit der automatischen Skalierung können Sie Skalierungseinstellungen anpassen, um die Leistung Ihrer App zu verbessern und Kaltstartprobleme zu vermeiden. Die Plattform wärmt Instanzen vor, die beim Aufskalieren als Puffer fungieren, sodass reibungslose Leistungsübergänge gewährleistet werden. Jede Instanz wird Ihnen pro Sekunde in Rechnung gestellt, einschließlich vorgewärmter Instanzen.

Hier sind einige Szenarien, in denen Sie automatisch skalieren sollten:

  • Sie möchten keine Regeln für die Autoskalierung basierend auf Ressourcenmetriken einrichten.
  • Sie möchten, dass Ihre Web-Apps innerhalb desselben App Service-Plan unterschiedlich und unabhängig voneinander skaliert werden.
  • Ihre Webanwendung ist mit einer Datenbank oder einem älteren System verbunden, das möglicherweise nicht so schnell skaliert wie die Webanwendung. Mithilfe der Autoskalierung können Sie die maximale Anzahl von Instanzen festlegen, auf die Ihr App Service-Plan skaliert werden kann. Diese Einstellung hilft der Web-App, das Back-End nicht zu überlasten.