Wie die vollautomatische Skalierung der Azure-App-Services eingerichtet wird, haben wir uns angeschaut. Im Folgenden zeigen wir, wie sich die erfolgreiche Umsetzung einer Skalierungsstrategie mit den neuen automatisierten Lasttests komfortabel verifizieren lässt.
Um mit den automatisierten Lasttests herumzuspielen, benötigen wir eine automatisch skalierende Azure-Web-App. Dies funktioniert nur mit einem der für Produktivumgebungen vorgesehenen App-Service-Pläne (Standard, Premium), nicht aber mit den Dev/Test-Plänen. Außerdem gilt es natürlich, vorab die automatische Skalierung zu aktivieren.
Die automatische Skalierung befindet sich aktuell noch in der Public Preview. Sie ist aktuell für die Tarife Premium V2 (P1V2, P2V2, P3V2) und Premium V3 (P1V3, P2V3, P3V3) konfigurierbar und verfügbar und unterstützt alle App-Typen, sowie Windows, Linux und Windows-Container, allerdings nicht den Datenverkehr von Staging-Slots.
Die neue Option zum Aufskalieren (Scale Out oder horizontale Skalierung) trifft und verarbeitet Skalierungsentscheidungen für Web-Apps und App Service-Pläne automatisch. Sie unterscheidet sich von der vorhandenen, klassischen Azure-Autoskalierung, die mit Hilfe von Skalierungsregeln oder auf Basis von Zeitplänen arbeitet. Mit der automatischen Skalierung lassen sich Skalierungseinstellungen anpassen, um die Leistung einer Anwendung zu verbessern und Kaltstartprobleme zu vermeiden.
Die App-Service-Plattform „wärmt“ dann Instanzen vor, die beim Aufskalieren als Puffer fungieren, um reibungslose Performance-Übergänge zu gewährleisten. Außerdem lässt sich mit Hilfe von „Application Insights“-Livemetriken die aktuelle Anzahl der Instanzen überprüfen und über performanceCounters der Verlauf der Anzahl der Instanzen anzeigen. Azure stellt jede Instanz pro Sekunde in Rechnung, einschließlich vorgewärmter Instanzen. Um das Ganze zu testen, navigieren wir in der Web App zum Abschnitt „Diagnose und Problembehandlung“ und klicken im Bereich „Load test your App“ auf den Link „Create Load Test“.
In den Diagnose-Tools einer Azure-Web-App finden sich auch die neuen Lasttests.Wie so oft, führen auch hier mehrere Wege nach Rom – oder in diesem Fall zum Erstellen einer Lasttest-Ressource. Optional ist es nämlich auch möglich, im Menü „Leistung“ auf „Auslastungstests“ zu klicken.
Im Folgenden werden wir nun aber die erste Variante weiterverfolgen. Die Ressource benötigt lediglich eine Azure-Subscription, eine Ressourcengruppe und einen (eindeutigen) Namen.
Wurde die Lasttest-Resource erstellt, folgend wir dem Link zum Wechseln zur Lasttest-Ressource und fügen auf deren Übersichtsseite mit einem Klick auf „Erstellen“ eine http-Anforderung hinzu. Durch den folgenden Vorgang führt ein Assistent. Auf der Seite „Grundlagen“ benötigen Sie zunächst nur einen Namen und eine Beschreibung.
Im Tab „Testplan“ fügen wir mindestens eine Anforderung hinzu und ergänzen bei URL den öffentlichen Endpunkt-URL (mit http://) der Web-Anwendung. Nun gilt es noch, im Blade „Anforderung hinzufügen“ auf „Hinzufügen“ und in der Lasttest-Resource auf „Überprüfen und Erstellen“ zu klicken.
Direkt nach dem Erstellen der Lasttest-Resource wird der Testlauf automatisch gestartet. Beachten Sie den Startwert 1 in der Spalte „Modulinstanzen“. Ein gestarteter (laufender) Lasttest könnte dann so aussehen, wie in dieser Abbildung.
Um das Verhalten zu überwachen, können wir diesen Test eine Weile laufen lassen und ab und an auf „Aktualisieren“ klicken. Zumindest beim ersten Testlauf empfiehlt es sich, das finale Ergebnis abzuwarten. Es ist aber möglich, Tests jederzeit abzubrechen, neu zu starten oder mehrere Testläufe mit unterschiedlichen Anforderungsparametern zu vergleichen.