Home » TPT » Cloud Testing mit TPT: Fallstudie mit AGSOTEC » Technische Aspekte im Cloud Testing » Umsetzung Fall 2
Umsetzung Fall 2
Integration eines digitalen Butlers in Form einer Jenkins CI
Home » TPT » Cloud Testing mit TPT: Fallstudie mit AGSOTEC » Technische Aspekte im Cloud Testing » Umsetzung Fall 2
Integration eines digitalen Butlers in Form einer Jenkins CI
Weil der Anwendungsfall 1 sehr schnell und erfolgreich abgeschlossen werden konnte, stellte sich direkt die Frage nach weiterer Automatisierung. Warum? Es ist weniger fehleranfällig, genauer, schneller und robuster.
Der erste Fall sollte erweitert werden, indem ein Jenkins Server in der Cloud instanziiert wird. Ähnlich wie beim Aufsatz von EC2 Instanzen, wurde in einem AMI Jenkins installiert. Der große Unterschied zwischen dieser Instanz und den Instanzen zur Ausführung für den Test ist, dass diese Instanz über die ganze Zeit hinweg laufen wird.
Der Grund für den dauerhaften Betrieb: Diese Instanz soll die ganze Zeit das angebundene Software-Repository (Versionsmanagement) GIT auf Änderungen am Code und an laufenden Tests überwachen.
Ändert ein Team-Mitglied einen Teil der Software, wie das Matlab/Simulink-Modell, soll diese Änderung sofort erkannt und geprüft werden. Üblicherweise gibt es in einer Versionsverwaltung für Software mehrere Ebenen.
Zur Qualitätssicherung hat sich das folgende Prinzip etabliert: In den Produktiv-Pfad werden nur Änderungen übernommen, die dem Qualitätsstandard entsprechen. In einem Entwicklungspfad dagegen übergibt die Entwicklung die Änderung an das Versionsmanagement. Dies wird von Jenkins detektiert.
Nun sollen zuerst qualitätssichernde Maßnahmen wie unsere Software-Test zeigen, dass die Änderung auch reif genug für den Produktivpfad ist.
Wenn sie reif genug ist, wird sie übernommen, wenn nicht, wird die Änderung verworfen und die Entwicklung bekommt das Feedback, dass die Änderung Probleme macht. Das passiert meist per Mail von Jenkins.
Jenkins bietet zudem eine breite Palette nützlicher Plugins, darunter auch das EC2-Plugin. Mit dessen Hilfe werden EC2-Instanzen automatisch gestartet, überwacht und Pipeline-Jobs (Tests) ausgeführt.
Anwendungsfall 2 konnte erfolgreich umgesetzt werden und stellt eine beeindruckende Integration von Cloud-Diensten in unsere CI-Umgebung dar. Die nahtlose Einbindung gelang mühelos, dank der guten Dokumentation der verwendeten Plugins.
Zusätzlich mussten Kommunikationsbeziehungen zwischen den AWS-Diensten und dem Jenkins-Server hergestellt werden, um die automatische Skalierung durch das automatische Erzeugen und Verbinden neuer Instanzen zu ermöglichen. Dank dieser innovativen Lösung konnten wir die Herausforderungen des Anwendungsfalls 1 erfolgreich bewältigen.
Vorteile der Autoscaling-Lösung
Die aktuelle Lösung erkennt nicht automatisch, wenn Testfälle hängen und länger als erwartet laufen und nicht rechtzeitig beendet werden.
Interne Überwachungsmechanismen, sogenannter “Watchdogs”, können implementiert werden. Diese Watchdogs können Testfälle stoppen, falls sie unerwartet lange dauern, um die Ausführungszeit zu kontrollieren und Engpässe zu vermeiden.