Deployment

Aufgrund der aktuellen Ausgangssituation beim Auftraggeber wurde während der Analyse- und Tailering-Phase gemeinsam beschlossen, teilweise bereits verwendete und bekannte externe Cloud-Services einzubinden.

 

So wurde für die Benutzer-, die Code- und die Issue-Verwaltung “Plan.io” ausgewählt, das auf dem Open-Source-Tool “Redmine” basierende Services zur Verfügung stellt.

 

In den auf “plan.io” gehosteten Git-Repositories werden nicht nur der Quellcode für die Anwendung selbst sondern auch der für die Installation und Konfiguration der gesamten im Projekt eingesetzten Infrastruktur gespeichert (“Infrastructure as code” / masterless Puppet).

 

Die Infrastruktur für die ersten beiden Steps der Deployment Pipeline (“build” und “automatic acceptance test”) wird im Intranet des Entwicklungsteams mit Hilfe der Virtualisierungstechnologie KVM/Quemu bereitgestellt.

 

Die einzelnen Schritte der Deployment-Pipeline werden vom entsprechend konfigurierten und um Plugins erweiterten CI-Server “Jenkins” durchgeführt und reportet.

 

Für den “Build” und die “Unit-Tests” (QG1) wird das um etliche Plugins erweiterte Tool “Maven” eingesetzt, das in Zusammenarbeit mit dem Artefakt-Repository “Sonatype Nexus OSS” auch für die Auflösung und Bereitstellung notwendiger “Abhängigkeiten” (Third-Party- und interne Libraries) verantwortlich ist.

 

Die Acceptance-Tests (QG2) verwenden das Framework “Selenium”, um Benutzereingaben zu simulieren und deren Ergebnisse zu prüfen.

 

Das Framework JMeter ist die Basis der Performance- und Lasttests (QG3).

 

Die Ergebnisse des explorativen Testens (QG4) werden im Issue-Tracker festgehalten. Der Workflow der Deployment-Pipeline im CI-Server wird ja nach Resultat fortgesetzt oder abgebrochen (manuelle Eingabe).

 

Das Deployment in die produktive Umgebung erfolgt nach Freigabe durch eine manuelle Interaktion.

 

grafiken-delpipe-larasch