Interview mit Dr.-Ing. Dehla Sokenou und Carsten Pfeiffer

Continuous Delivery – Die Toolchain macht den Unterschied

Marcel Richters

Dehla Sokenou und Carsten Pfeiffer

Continuous Delivery stellt immer neue Anforderungen an Entwickler. Auf der JAX 2018 haben Carsten Pfeiffer und Dr.-Ing. Dehla Sokenou Wege und Werkzeuge vorgestellt, mit denen sich Continuous Delivery möglichst einfach und voneinander unabhängig bewerkstelligen lässt. Der Schwerpunkt lag dabei auf der Werkzeugintegration.

JAXenter: Was sind besondere Herausforderungen bei der Integration verschiedener Tools in den Entwicklerstack?

Dehla Sokenou und Carsten Pfeiffer: Die größte Herausforderung ist ganz klar die Anpassung der vielen Komponenten an unsere Bedürfnisse und der Aufwand, die Änderungen „upstream“ einzubringen. Für die Anpassungen entsteht ein nicht unbedeutender Aufwand, allein um sich in die Funktionsweise, Implementierung und den Buildprozess all der Komponenten einzuarbeiten. Der Lohn der Mühe ist dann jedoch ein reibungsarmer und performanter Arbeitsauflauf für die Entwickler.

Viele Komponenten, insbesondere Maven-, Jenkins- und einige Eclipse-Plug-ins, befinden sich im Wartungsmodus und haben keinen Maintainer, der sich um die Übernahme von Pull Requests, Patches, ö.ä. kümmert. Und auch wenn es Maintainer gibt, heißt es nicht, dass sie Zeit haben oder mit den Änderungen einverstanden sind. Insofern muss man sich damit anfreunden, die betroffenen Komponenten langfristig selbst zu betreuen.

JAXenter: Welche besondere Rolle spielen Werkzeugketten im Bereich Continuous Delivery und DevOps? Inwiefern unterscheiden sie sich von Werkzeugketten vergangener Tage?

Dehla Sokenou und Carsten Pfeiffer: Continuous Delivery spielt in unserem Umfeld – Schwerpunkt: Kassensoftware – noch keine große Rolle. Aber die automatisierte Bereitstellung von Entwicklungsinfrastruktur ist auch ein Bestandteil des Gesamtbildes, wenn es darum geht, Projekte zu starten und auf Stand zu halten.
Das Aufsetzen der Infrastruktur unterliegt dann den gleichen Anforderungen wie „normale“ Software:

  • Es müssen Requirements definiert werden,
  • eine Architektur, ein Entwurf für die Umsetzung ist nötig,
  • es muss implementiert und automatisiert getestet werden,
  • schließlich geht es in Produktion,
  • u.U. gibt es auch noch Wartung der Infrastruktur für ältere Projekte.

Insofern wird für die Entwicklung der Entwicklungsinfrastruktur wiederum dieselbe Infrastruktur (Issue Tracker, Versionierung, CI, etc.) benötigt.

DevOpsCon Dossier 2018

Free: 40+ pages DevOps knowledge by experts

Learn about Docker, Kubernetes, Continuous Delivery, DevOps Culture, Cloud Platforms & Security with articles by experts like Kai Tödter (Siemens), Nicki Watt (OpenCredo), Tobias Gesellchen (Europace AG) and many more.

JAXenter: Was ist der beste Ansatz, um Automatisierung und Offenheit der Werkzeugkette zu verbinden? Was empfehlt ihr für die Handhabung automatischer und offener Werkzeugketten?

Dehla Sokenou und Carsten Pfeiffer: Wir können natürlich nicht sagen, was der beste Ansatz ist. Für uns am passendsten war die Implementierung einer Werkzeugkette, in der eine zentrale Komponente, in unserem Fall Maven, die Steuerung übernimmt. Dies hat den Vorteil, dass der Entwickler sich vorrangig mit einem Tool auseinandersetzen muss. Alle anderen Tools integrieren sich transparent in die Werkzeugkette, ohne dass Spezialwissen für ihre Bedienung benötigt wird.

JAXenter: Entstehen keine Widersprüche, wenn eine Werkzeugkette gleichzeitig offen sein soll und trotzdem automatisch läuft?

Dehla Sokenou und Carsten Pfeiffer: Die Konfigurierbarkeit hat natürlich Grenzen. Je offener eine Werkzeugkette ist, desto mehr Fälle müssen betrachtet werden und desto komplexer wird ihre Implementierung, Bedienung und der Testaufwand. Insofern empfehlen wir, sich auf die wichtigsten Anwendungsszenarien zu beschränken und für spezifische Anforderungen genau definierte Extension-Points zur Verfügung zu stellen. Der Wiedererkennungswert ist dann höher und die Einarbeitung in andere Projekte schneller möglich.

JAXenter: Was konnten die Besucher aus eurer Session mitnehmen?

Dehla Sokenou und Carsten Pfeiffer: Sie sollen einen Einblick gewinnen, wie vorteilhaft eine Werkzeugintegration auf allen Ebenen ist und wie man mit geschicktem Einsatz von Maven eine Menge Zeit und Ärger sparen kann. Die im Vortrag vorgestellten Techniken lassen sich auf andere Entwicklungsprozesse übertragen. Und schließlich soll die Session zeigen, dass man sich die Vorteile Freier Software zunutze machen kann, um sich einen maßgeschneiderten Arbeitsablauf zu bauen.

Dr. Dehla Sokenou promovierte 2005 an der Technischen Universität Berlin über UML-basiertes Testen objektorientierter Systeme. Seit 2006 ist sie als Senior Software Consultant bei GEBIT Solutions tätig, einem seit über 25 Jahren auf objektorientierte Technologien spezialisierten Software- und Beratungshaus. Neben Projektleitung, Konzeption und Entwicklung großer objektorientierter Softwaresysteme mit modellbasierten Methoden umfassen ihre Schwerpunkte modellgetriebenes Requirements Engineering und modellbasiertes Testen.

Carsten Pfeiffer arbeitet seit 2007 als Senior-Softwareentwickler bei GEBIT Solutions. Neben der Weiterentwicklung der Eclipse-basierten GEBIT-eigenen Entwicklungsumgebung für modellgetriebene Softwareentwicklung engagiert er sich in diversen Open-Source-Projekten um die Themen Eclipse, Build-Werkzeuge, Android und Docker und war viele Jahre Kernentwickler von KDE. Des Weiteren ist er Experte im Einsatz, Aufbau und Management von Entwicklungsinfrastruktur.

Geschrieben von
Marcel Richters
Marcel Richters
Marcel hat Soziologie an der Goethe-Universität in Frankfurt am Main studiert und danach als E-Commerce-Manager gearbeitet. Seit Februar 2018 unterstützt er das Team von JAXenter als Redakteur. Daneben arbeitet er als freier Journalist in der Mainmetropole.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.