Werkzeugkasten Eine Development Tool Chain für die Pentaho Step Entwicklung

0
Gute Software-Entwicklung braucht gutes Werkzeug

Gute Software-Entwicklung braucht gutes Werkzeug

Ein standardisierter Entwicklungsworkflow ist aus der Softwareentwicklung nicht mehr weg zu denken. So war es nur eine Frage der Zeit, bis wir für unsere Entwicklung von Pentaho Steps die richtige Werkzeugkette erstellt haben, um entsprechende Workflows auch in Software abzubilden. Unsere Tool Chain stelle ich in diesem Beitrag vor.

Die Abbildung zeigt, welche Werkzeuge wir im Entwicklungsprozess einsetzen:
Werkzeuge im Entwicklungszyklus Wie man der Grafik entnehmen kann, haben wir uns auf zwei Hersteller beschränkt. Als erstes wäre da Atlassian (in Form von Jira) und BitBucket. Beim zweiten Hersteller handelt es sich um Jet Brains in Form von Intellij, Upsource und TeamCity. Als kleine Ergänzung zu den beiden Herstellern setzen wir noch Ansible als „Code-as-Infrastracture“-Technologie ein.

Jeder Anfang liegt im Jira…

Anlegen eines Tickets in Jira

Anlegen eines Tickets in Jira

Am Anfang jeden Features, das für einen der Steps umgesetzt werden soll, steht ein Ticket im Jira. Hier sind alle Informationen, die der Entwickler benötigt, hinterlegt. Dazu zählen neben einer genauen Feature-Beschreibung auch ein geschätzter Aufwand, eine Priorität und ein verantwortlicher Entwickler. Das Ticket wird dann, wie bei Scrum üblich, einem Sprint zugeordnet. Es begleitet den gesamten Entwicklungsprozess.

Will einer meiner Kollegen mit der Arbeit beginnen, kann er über das in Jira erstellte Ticket automatisch einen Branch für das Feature in BitBucket (Repository) erstellen und dieses auf sein Arbeitsgerät auschecken. Das ihm zugewiesene Ticket wird nun in den Status „in Development“ gesetzt. So weiß jedes Mitglied im Team sofort, an welcher Funktionalität gerade gearbeitet wird.

Entwicklung mit IntelliJ

IntelliJ

IntelliJ

Als nächstes wird das Feature mit der Entwicklungsumgebung IntelliJ realisiert. Bei der Umsetzung werden für die entwickelten Methoden und Klassen direkt JUnit-Tests erstellt, die später für das automatische Testen der Methoden verwendet werden.

Durch das Hochladen der Tests ins Repository stehen sie dem ganzen Team zur Verfügung. Der Status des Tickets wechselt nun von „in Development“ zu „Review“: Der Entwickler gibt das Ticket frei.

Im nächsten Schritt schaut sich ein weiterer Entwickler den erstellten Code an. Dafür sperrt er das Ticket und lädt den aktuellen Code des Tickets herunter. Um zum Beispiel Designfehler aufzudecken und projektweite Risiken zu erkennen, setzen wir das Code Reviewtool Upsource ein. War die Prüfung erfolgreich, wird das Ticket geschlossen und der neue Code in den Code Trunk (Hauptrepository) integriert.

Erstellung von Steps mit TeamCity

Die PDI Steps-Ansicht in TeamCity - Pentaho

Die PDI Steps-Ansicht in TeamCity

Ab hier haben wir den weiteren Entwicklungsprozess stark automatisiert. TeamCity bemerkt jede Änderung im Trunk und versucht nun, den Pentaho Step zu erstellen. Dabei werden die in der Entwicklungsphase generierten JUnit-Tests ausgeführt. Kann die Version erfolgreich gebaut werden, ist alles ok. Ist das nicht der Fall, wird ein Ticket im Jira mit der entsprechenden Fehlermeldung erstellt.

Wenn der Step erfolgreich gebaut wurde, stellt ihn TeamCity als Download bereit. Mit Ansible werden die Steps in einem Qualitätssicherungssystem (QA) installiert. Anwender testen die Steps, um mögliche Anzeigefehler, falsche Beschriftungen oder Fehler im Design der Benutzeroberfläche zu entdecken.

Sind auf dem QA-System keine Probleme aufgetreten, kann mit einem weiteren Ansible Script die aktuelle Version der Steps auf einem produktivähnlichen Testsystem ausgerollt werden. Hier wird abschließend geprüft, ob die Steps so funktionieren wie geplant.

Diese Artikel könnten Sie auch interessieren:

Tags: , ,

Christian Piazzi, Data Scientist
Als staatlich geprüfter Techniker für IT-Sicherheitsmanagement kommt Christian Piazzi aus der IT-Security. Bei der it-novum war Christian zuerst Teil des IT Service Management- und openITCOCKPIT-Teams, bevor er in den Bereich Big Data Analytics wechselte. Als Data Scientist berät er Kunden bei ihren Daten- und Analytics-Projekten.
Webprofile von Christian: Blog, Twitter, Google+, XING.