Die Performanz ist ein wichtiges Qualitätsmerkmal modernen Softwaresysteme. Wird die Performanz vernachlässigt, hat dies Konsequenzen für Benutzer oder Nachbarsysteme. Um dies zu verhindern, sind regelmässige Lasttests notwendig. Für die Generierung der Last werden entsprechende Tools eingesetzt. Im Rahmen dieser Arbeit wird ein spezialisiertes Testsystem zum automatisierten Lasttesten der Telemetrie-Lösung für professionelle Kaffeemaschinen entwickelt.
Die Auftraggeberin ist spezialisiert auf Entwicklung und Vertrieb von Kaffeemaschinen für den professionellen Gebrauch. Um einen reibungslosen Betrieb sicherzustellen, bietet sie ihren Kunden eine umfassende Telemetrie-Lösung an. Die Anzahl der an die Telemetrie angeschlossenen Kaffeemaschinen nimmt stetig zu, damit werden immer höhere Performanz-Anforderungen an die Systeme der Telemetrie-Lösung gestellt. Um einen stabilen Betrieb unter wachsender Last sicherzustellen, müssen Lasttests gefahren werden. Bisher eingesetzte Lasttest-Tools haben Einschränkungen in der Konfigurierbarkeit oder der Reproduzierbarkeit. Zudem ist die Vorbereitung eines Tests aufgrund der vielen manuellen Schritte aufwändig.
Das zu entwickelnde System automatisiert die bisher manuell ausgeführten Tätigkeiten und vereinfacht damit den bestehenden Lasttest-Prozess deutlich.
Mittels Literaturreview wurde der aktuelle Stand der Forschung bezüglich Lasttests in Erfahrung gebracht. Durch die Ausarbeitung eines Architekturkonzepts wurden Lösungsstrategien zur Erfüllung der Anforderungen entwickelt. Bei der Umsetzung wurden moderne Konzepte und Technologien wie Spring Boot, Kubernetes, Apache Kafka und Prometheus eingesetzt.
Das Resultat besteht aus einem horizontal skalierbaren Lastgenerator, welcher Last gemäss einem konfigurierten Profil für das Zielsystem generiert. Die Generierung der Last kann genau wie das Zielsystem über das Monitoring-System Prometheus laufend überwacht werden. Als erstes Zielsystem wurde Apache Kafka, ein sehr leistungsfähiger Event-Broker, angebunden.
Der Betrieb der Lastgenerator-Instanzen auf Kubernetes wird von einem Operator automatisiert. Der Operator überwacht dabei nach dem Operator-Pattern von Kubernetes den Ist-Zustand, vergleicht diesen mit dem Soll-Zustand und gleicht die Differenz aus, indem entsprechend Lastgenerator-Instanzen gestartet werden. Nach dem Abschluss des Tests wird automatisch ein Report generiert, was die nachgelagerte Analyse des Tests erleichtert.
Durch den Einsatz von Argo CD, einem Tool zur kontinuierlichen Verteilung einer mit Git verwalteten deklarativen Applikations- und Konfigurationsbeschreibung ist die Reproduzierbarkeit der Lasttests sichergestellt.
Lasttests der Auftraggeberin werden künftig mit dem entwickelten System durchgeführt. Dazu wird der Lastgenerator um weitere konfigurierbare Lastziele erweitert werden. Hier wird sich das erstellte Architekturkonzept auszahlen.