Gerade bei unternehmenskritischen oder umsatzrelevanten Anwendungen sollte ein Lasttest eine Selbstverständlichkeit sein. Allerdings stoßen die klassischen Blackbox-Performance-Tests in aktuellen Architekturen inzwischen an ihre Grenzen. Ein KI-gestützter Whitebox-Ansatz liefert bessere Rückschlüsse.
Eine neue Website, einen Webshop oder einen digitalen Kundenservice an den Start zu bringen, ohne vorher einen Lasttest durchgeführt zu haben, ist ein reines Glücksspiel. Dennoch lassen sich immer noch viele Unternehmen darauf ein. Das ist fahrlässig, denn das Resultat des Worst-Case-Szenarios ist bekannt: Das System antwortet langsam, unvollständig oder nur mit Fehlermeldungen. Dies kann dazu führen, dass eine Anzeigenkampagne ins Leere läuft oder sich die Investition in PR nicht auszahlen, weil das Konstrukt unter dem Ansturm der Nutzerinnen und Nutzer zusammengebrochen ist. Für Unternehmen ist das teuer und hinterlässt auch einen negativen Eindruck.
Die gewachsene Komplexität moderner Architektur
Lasttests können verhindern, dass dieses Problem überhaupt entsteht. Sie gehören zu den Klassikern in der Qualitätssicherung von IT-Systemen. Der klassische Blackbox-Test eines Webservers oder Shops setzt das Zielsystem per Lastgeneratoren schrittweise immer stärker unter Stress. Dessen Verhalten wird gemessen und die ausgewählten Parameter werden protokolliert und ausgewertet. So lässt sich dann ermitteln, wie viele Anfragen innerhalb einer Zeiteinheit verarbeitet werden können, ohne dass das System zu langsam wird, also die User Experience leidet.
Technologie-Stacks werden jedoch immer komplexer und umfangreicher. Schon ein durchschnittlicher Webauftritt bindet heute mehrere Frameworks, Technologien und Sprachen ein. Bis die Endkunden ein Produkt in den Warenkorb legen, können an dem Prozess zahlreiche Microservices beteiligt sein. Steckt das Bottleneck tief in einer solchen Struktur, wird die Suche danach eine aufwändige Sache. Der klassische Blackbox-Ansatz beim Lasttest kann also feststellen, dass etwas nicht stimmt, aber kaum Ursachen belegen. Ein solcher Lasttest delegiert die Fehleranalyse an das Entwicklungs- oder das Betriebsteam. Stimmt die Performance bei einer bestimmten Last nicht, müssen sie auf die Suche gehen, ob der Fehler an einer eingesetzten Komponente oder einem Interface liegt.
Lasttests müssen smarter werden
Die smartere Lösung besteht darin, Lasttests mit Monitoring-Tools zu kombinieren. Aus Blackbox-Testing wird so ein Whitebox-Lasttest. Das Monitoring sorgt dann für einen kontinuierlichen Überblick über die Ressourcen und den Zustand von Anwendungen in allen Schichten der Infrastruktur.
Bei diesem Ansatz werden im Testtool die Use-Cases und Testschritte erstellt und parametrisiert. Eine Kombination von JMeter und Jenkins kann etwa die zentrale Steuereinheit bilden und die Aufgabe des Automatisierungsservers übernehmen. Ein wesentlicher Vorteil gegenüber Blackbox-Lasttests ist die Einbindung des Monitorings, die zu mehr Transparenz führt. Das Monitoring überwacht das Lastverhalten kontinuierlich.
Bei der Überwachung der Anwendungsperformance und der Erkennung von Auffälligkeiten kann zudem eine KI helfen. Es spricht nichts dagegen, eine eigene KI zu entwickeln. Dies ist allerdings mit beträchtlichem Mehraufwand verbunden.
Der Einsatz von KI erlaubt die frühere Erkennung von Anomalien. Mittels verschiedener Algorithmen trifft ein solches System eine Vorhersage aus Daten der Vergangenheit, etwa den zurückliegenden sieben Tagen. Weicht die Antwortzeit eines Services von dieser Prognose ab, schlägt das System automatisch Alarm und zeigt einen nicht erwarteten Anstieg der Last (z. B. CPU-Usage). Das ist ein entscheidender Vorteil gegenüber klassischem Monitoring, das auf Schwellenwerten, also statischen Parametern, basiert. Noch während des Lasttests deckt das integrierte KI-Monitoring Performance-Schwächen auf und kann so etwa eine möglicherweise zu klein dimensionierte Applikation identifizieren.
Die intelligente, dank KI mitlernende Überwachung erzeugt einen ganzheitlichen Blick, der die gesamte IT-Landschaft mit allen Anwendungen einbezieht. Betriebs- und Entwicklerteams arbeiten nach dem Dev-Ops-Prinzip besser und vernetzt zusammen, da eine Problemanalyse jetzt von allen Beteiligten aus allen Bereichen angegangen werden kann. Das beschleunigt eine Fehlerbehebung erheblich und sorgt für eine effiziente Zusammenarbeit.
Am besten während der Entwicklung starten
Nicht erst seit den Arbeiten von Barry Boehm ist bekannt, dass die Kosten für die Beseitigung von Fehlern steigen, je später sie entdeckt werden. Deswegen ist es auch zu kurz gedacht, Whitebox-Lasttests unter Einbeziehung von Monitoring und KI erst kurz vor dem Launch eines neuen Services zu etablieren. Das Monitoring liefert auch während des laufenden Betriebs wichtige Erkenntnisse. Deshalb ist es sinnvoller bereits während der Entwicklung mit Performance-Tests, wie sie hier skizziert wurden, zu beginnen. Die Kombination aus Lasttest und Monitoring über den gesamten Release-Zyklus bietet die Sicherheit, dass in jedem Schritt zuverlässige und performante Releases ausgerollt werden.
Das Gesamtsystem wird so kontinuierlich auf Zuverlässigkeit überprüft. Davon profitieren zunächst einmal die Nutzerinnen und Nutzern, die so eine optimale User Experience bekommen. Zum anderen kann das DevOps-Team Fehler und Probleme schneller entdecken. Dies ist ein Gewinn für das gesamte Unternehmen, da es nicht mehr von geschäftskritischen oder umsatzrelevanten Störungen der IT überrascht wird. Entsprechend professionell aufgestellte Lasttests tragen somit zur Umsatzabsicherung bei.
Autoren:
Raphael Pionke ist seit 2013 als DevOps Engineer und seit 2019 als IT-Architekt im Bereich Application Performance Management bei T-Systems MMS tätig. Während dieser Zeit begleitete er zahlreiche Projekte für KMU, Großunternehmen und den öffentlichen Sektor. Seit 2020 beschäftigt er sich als Quality Architekt intensiv mit den Themen Performance, DevOps, IaaC, Cloud und der Implementierung & Anwendung von intelligenten APM-Lösungen.
Daniel Bell ist seit 2007 im Bereich der Software Qualitätssicherung bei T-Systems MMS tätig. Während dieser Zeit begleitete er zahlreiche Projekte mit dem fachlichen Schwerpunkt Performancetesting. Seit 2018 ist er als Senior IT-Architekt im Bereich Application Performance Management tätig und beschäftigt sich mit der Implementierung und der Anwendung von intelligenten APM-Lösungen. Hierbei liegt der Fokus darauf, die Performance komplexer IT-Systeme zu optimieren und kontinuierlich zu überwachen.
www.t-systems-mms.com