Ermitteln geeigneter Szenarios für die automatische Skalierung

Abgeschlossen

Die automatische Skalierung kann nach einem Zeitplan ausgelöst werden oder indem dynamisch geprüft wird, ob 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.

Im Fall des Reservierungssystems der Hotels eignet sich die automatische Skalierung dazu, eine schnelle und kurzfristige Zunahme der Buchungsanforderungen abzufangen. Sie können auch die automatische Skalierung nach Zeitplan verwenden, um zu vorhersagbaren Spitzenzeiten weitere Ressourcen bereitzustellen.

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.

Automatische Skalierung in Azure App Service

Bei der automatischen Skalierung in Azure App Service werden die Ressourcenmetriken einer Web-App während deren Ausführung überwacht. App Service erkennt, wann weitere Ressourcen zur Bewältigung einer steigenden Workload erforderlich sind, und stellt sicher, dass diese Ressourcen verfügbar sind, bevor das System überlastet wird.

Bei der automatische Skalierung wird auf Änderungen in der Umgebung reagiert, indem Webserver hinzufügt oder entfernt und die Last auf diese verteilt wird. Die automatische Skalierung wirkt sich nicht auf die CPU-Leistung, den Arbeitsspeicher oder die Speicherkapazität der Webserver aus, auf denen die Web-App ausgeführt wird, sondern ändert nur die Anzahl der Webserver.

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. Die automatische Skalierung kann auch Ressourcen freigeben, wenn sich die Workload verringert.

Regeln für die automatische Skalierung sollten Sie mit Bedacht festlegen. Beispielsweise führt ein Denial-of-Service-Angriff (DoS-Angriff) vermutlich zu einer starken Zunahme des eingehenden Datenverkehrs. 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 und Benutzerinnen 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 Webdienste flexibler. Es ist eine geeignete Lösung für das Hosten von Anwendungen, deren Workload nicht ohne weiteres vorhersehbar ist oder deren Workload je nach Datum oder Tageszeit stark schwanken kann. Sie könnten beispielsweise damit rechnen, dass die Benutzeraktivität bei einer Geschäftsanwendung an Feiertagen überdurchschnittlich hoch oder niedrig ist.

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

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 ein ineffizienter Ansatz. In diesen Situationen kann ein manuelles 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.

Die automatische Skalierung ist nicht der beste Ansatz zum Umgang mit einem langfristigen Wachstum. Vielleicht haben Sie eine Web-App, die zunächst nur wenige Benutzer und Benutzerinnen hat, aber mit der Zeit immer beliebter wird. 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 die Wachstumsrate vorhersagen können, könnte eine manuelle Skalierung des Systems über einen längeren Zeitraum möglicherweise kostengünstiger sein.

Die Anzahl der Instanzen eines Webdiensts ist ebenfalls ein Faktor bei der automatischen Skalierung. Möglicherweise planen Sie, die meiste Zeit nur einige wenige Instanzen eines Diensts auszuführen. In diesem Fall ist Ihr Dienst jedoch immer 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.