Continuous Delivery of Continuous Delivery

 
Conference Day - 15. Juni
 
10:45
11:30
 
Java User Group

Viele Organisationen haben in den letzten Jahren eine Plattform für Continuous Integration oder gar Continuous Delivery aufgebaut. Man kann auch die Plattform selbst nach dem Prinzip "Infrastructure as Code" erstellen und kontinuierlich reproduzieren und testen, sie also zum Gegenstand einer Continuous Delivery Strategie machen. Damit lässt sich nicht nur die Funktionsfähigkeit der Plattform permanent prüfen und garantieren, sondern es können auch sehr leicht weitergehende Use Cases abgebildet werden, z.B. Weiterentwicklung/Upgrade einer Komponente, Integration neuer Komponenten/Plugins, Austausch einer Komponente. Außerdem lassen sich beispielsweise Mitarbeiter oder Entwickler damit schulen oder komplexe CI-/CD-Prozesse testen, beispielsweise das Release von Komponenten. Im Vortrag wird eine Referenz-Plattform aus typischen Open Source-Komponenten, wie sie sich im Java-/Enterprise-Umfeld finden, vorgestellt:
- SCM-Manager (Source Code Management mit SVN, Git oder Mercurial)
- Nexus (Artifact-Repository)
- Jenkins (Build-Server)
Es wird zunächst demonstriert und erklärt, wie die die Plattform als virtuelle Maschine mit Vagrant und Puppet aufgebaut wird, die Komponenten werden dabei weitgehend als Docker-Container installiert. Anschließend wird gezeigt, wie die Plattform sich selbst reproduziert und dabei kontinuierlich einen Test-Prozess durchläuft. Zum Testen wird ein Java-basiertes Software-Paket als Referenz-Projekt von der automatisch errichteten Plattform gebaut. Ein Reproduktions-Zyklus ist abgeschlossen, wenn die Plattform das Referenz-Projekt erfolgreich bauen kann. Typische Ereignisse, die einen erneuten Durchlauf erfordern und anstoßen, werden diskutiert, u.a.
- Änderungen an den bestehenden Komponenten, z.B.,
- Einfügen neuer Jenkins-Plugins
- Update auf neue Versionen der Komponenten
- Änderungen am Build-Prozess des Referenz-Projekts.

Gerd Aschemann

Freiberufler

Gerd Aschemann ist als freiberuflicher Berater im Java-Umfeld unterwegs. In den letzten Jahren hat er mehrfach für kleine und große Unternehmen Continuous Integration/Delivery-Plattformen aufgebaut und sie in grundlegenden Fragen zum Thema Build-/Konfigurations-/Versionsmanagement beraten und verschiedene JEE-Projekte als ausführender Software-/System-Architekt in Produktion überführt. Er hat an der TU Darmstadt Informatik studiert und im Anschluss dort einige Jahre als wissenschaftlicher Mitarbeiter mit dem Schwerpunkt "Management Verteilter Systeme/Konfigurationsmanagement" geforscht.