So schlägt sich Microsofts eigener Azure Load Test Service in der Praxis
Viel Potenzial, aber noch nicht ganz ausgereift
Der Azure Load Test Service von Microsoft wurde von vielen sehnsüchtig erwartet. Unsere Expert*innen haben deshalb bei einem Hackathon mit dem Preview des Service experimentiert. Wo der Service glänzen konnte und wo noch Luft nach oben ist:
Schafft eine Lösung den Live-Betrieb? – Belastungstest in DevOPs
Ein Belastungstest soll sicherstellen, dass eine Lösung unter einer realistischen Benutzerlast funktioniert. Die meisten IT-Fachleute kennen wahrscheinlich den Versuch, die Performance einer Lösung for dem Go-Live zu testen – um dann nach dem Go-Live festzustellen, dass ständige Erweiterungen und Änderungen die Leistung beeinträchtigen. Mit Azure Load Testing kann dies vermieden werden: Es wurde nicht nur für die einmalige Ausführung von Lasttests entwickelt, sondern als natürlicher und automatischer Teil einer Pipeline in Azure DevOps und GitHub Actions. So kann erkannt werden, welcher Code die Leistung beeinträchtigt. Das Problem kann schnell identifizieren und behoben werden.
In der Pipeline werden verschiedene Akzeptanzkriterien definiert, sodass eine Pipeline bei Überschreiten der Kriterien scheitert und ggf. eine Freigabe blockiert. Unten ein Beispiel für eine Pipeline, die fehlschlägt, weil die Antwortzeiten einer Funktion 5 Sekunden überschreiten.
Das Design von Azure Load Testing
Azure Load Testing basiert auf Apache JMeter, einem schon vorhandenen Tool für Lasttests. Dadurch verfügt es über mehrere bekannte Funktionen. Wer bereits Lasttests in JMeter durchgeführt hat, kann also auch Azure Load Testing problemlos ausführen. Einzig der Einstieg in das Client-Programm von JMeter ist etwas umständlich und erinnert an die 90er Jahre. Die xml kann aber auch direkt geschrieben werden, wodurch sich JMeter UI vermeiden lässt. Über die xml von JMeter kann auch ein Lasttest automatisch generiert werden. Dies kann durch das Schreiben von Tools erfolgen, die Endpunkte analysieren und darauf basierend einen Belastungstest erstellen.
Das Reporting
In Azure Load Testing ist eine Berichterstellung und der Vergleich von Testläufen verfügbar. Dabei lässt sich festlegen, für welche Azure-Ressourcen Metriken angezeigt werden sollen. Wählt man die Metriken für Cosmos-Ressourcen, werden der RU-Verbrauch und ähnliche relevante Daten angezeigt. Das Reporting ist also abhängig davon, welche Azure-Ressourcen Teil der getesteten Lösung sind. Unsere Expert*innen stellten fest, dass die Berichte und insbesondere der Vergleich der Ergebnisse noch nicht immer exakt sind. Daher kann es in diesem Bereich zu einigen Bugs in der Preview-Version kommen.
Das hat der Hackathon-Test ergeben
Der Hackathon mit Azure Load Testing hat einen Dienst mit Potenzial gezeigt, der allerdings noch nicht komplett ausgereift ist. Azure Load Testing lässt sich einfach in vorhandene Pipelines sowohl in Azure DevOps als auch in GitHub integrieren und liefert hervorragendes Reporting in Azure. Aber es scheint noch ein paar Fehler in der Anzeige von Testergebnissen zu geben.
Nutzer*innen können im Service ein genaues Limit zu definieren, das zum Ausfall einer Pipeline führt. Was unsere Expert*innen aktuell vermissen, sind Funktionen, die automatisch Warnungen über eine schlechte Leistung im Laufe der Zeit senden. Microsoft hat bereits KI in Alerts integriert, um zu melden, wenn etwas Außergewöhnliches passiert – daher ist zu hoffen, dass es auch noch in Azure Load Testing integriert wird. Unser Team freut sich auf die finale Version – mit hoffentlich vielen zusätzlichen Funktionen und stetigen Verbesserungen.
Profitieren Sie vom Knowhow unserer Expert*innen: Wir unterstützen Sie gern, wenn es um die Modernisierung von Business Applications in Azure geht!
Dieser Beitrag wurde uns freundlicherweise von der Skaylink Tochter cVation zur Verfügung gestellt. Den Originalbeitrag finden Sie hier.