Suchen

Stetige Erneuerung von Software braucht Idee und Konzept Workflow und Software-Entwicklung ‒ passt das?

| Autor / Redakteur: Sacha Labourey * / Ulrike Ostler

Der Bereich der Continuous Integration hat handfeste Verbesserungen für die Softwareproduktion gebracht; darunter Entwicklungen, die eine Übernahme von Agile-Delivery-Praktiken erlauben. Continuous Delivery gibt Entwickler-Teams auch Möglichkeiten an die Hand, die weit über die Integration hinaus reichen.

Firmen zum Thema

Für alle, denen Software wichtig ist, kann sich der clevere Einsatz von Workflows durch ein spürbares Plus an Transparenz, Agilität und Fokussierung und damit letztlich auch in Form von Kosteneinsparungen bezahlt machen.
Für alle, denen Software wichtig ist, kann sich der clevere Einsatz von Workflows durch ein spürbares Plus an Transparenz, Agilität und Fokussierung und damit letztlich auch in Form von Kosteneinsparungen bezahlt machen.
(Bild: Clker-Free-Vector-Images - Pixabay.com / CC0 )

Der Begriff „Workflow“ hat für jeden eine andere Bedeutung. Wikipedia beschreibt den Term wie folgt: „Ein Arbeitsablauf (englisch: workflow) ist eine definierte Abfolge von Aktivitäten in einem Arbeitssystem einer Organisation.“ Es sind Prozesse, die etwas herstellen oder einfach Arbeit erledigen.

Für die Herstellung von Waren – seien es Schokoriegel oder Autos – brachte die Einführung von Workflows einen Paradigmenwechsel mit sich. Kluge Führungskräfte kletterten dank der Integration von Workflow-Theorien wie Lean oder TQM in ihre Arbeitsabläufe die Karriereleiter hinauf.

Welchen Wert hat der Workflow für Software-Entwickler? Bis vor wenigen Jahren vermutlich keinen allzu großen. Während die Software-Entwicklung zwar ein Bereich ist, in dem allerlei komplexe Arbeiten wie an einem Fließband realisiert werden, gleicht der eigentliche Prozess bislang weniger einer linearen Gerade von A nach B, als eher einer zittrigen Fieberkurve.

Aber auch im Softwarebereich wird das Konzept des Workflows heute zunehmend wichtiger, zumal es gilt, schneller, agiler und fokussierter auf den Kunden eingehen zu können. Speziell im Bereich der Continuous Delivery (CD), der mehr und mehr an Bedeutung gewinnt, erweist sich der Workflow als ideale Arbeitsform. CD ermöglicht Unternehmen, regelmäßig (und unkompliziert) kleine Updates ihrer Apps durchzuführen, um so schnell auf veränderte Anforderungen eingehen zu können.

Workflow und Continuous Delivery

Also, wie funktioniert der Workflow im Bereich der CD? Wie setzen Unternehmen diese Arbeitsweise konkret um? Welcher Leidensdruck hat sie dazu gebracht, Workflow-Techniken zu adaptieren und welche Vorzüge können sie sich von der Umsetzung erwarten?

Um diese Fragen zu beantworten, macht es Sinn sich anzusehen, wie Software in einer CD-Pipeline bearbeitet wird. Um sicherzugehen, dass die Software richtig hergestellt, getestet und installiert wird, ist eine Reihe von Instanzen notwendig.

Während Firmen ihre Prozessketten nach ihren individuellen Bedürfnissen konfigurieren, beinhalten typische Prozessketten beispielsweise eine Reihe von Performance-Tests, Selenium-Tests für multiple Browser, Sonar-Analysis, User-Akzeptanz-Tests und Installationen von Gerüsten. Für einen durchgängigen Prozess nutzt ein Unternehmen dann wahrscheinlich auch noch entsprechende Orchestration-Tools, wie beispielsweise diejenigen, die in der Open-Source Anwendung Jenkins zu finden sind.

Beurteilen Sie Ihre Prozesse

Manche Softwareprozesse sind einfacher als andere. Wenn die Abläufe in der Pipeline einfach und vorhersagbar genug sind, kann es relativ simpel sein, einen wiederkehrenden Arbeitsablauf zu definieren, sodass das fertige Produkt wie vom Fließband kommt.

Das ist in der Realität jedoch selten so, vor allem in großen Firmen. Meistens ist die Entwicklung von Software weitaus komplizierter. Viele einzelne Schritte sind nötig, die festgelegt, durchgesehen, überarbeitet, parallel ausgeführt, zurückgestellt, neu gestartet, gespeichert, korrigiert, getestet, erneut getestet und tausende Male modifiziert werden.

CD, also Continuous Delivery, bügelt diese unebenen Prozesse bereits bis zu einem gewissen Grad glatt. Alleine mit Hilfe von CD lässt sich die Komplexität jedoch nicht wirklich vereinfachen. Selbst in den ausgeklügeltsten Pipelines sind Stopps, Rückschläge und Neuanläufe vorprogrammiert. Die Geschäftsprozesse müssen das abfedern.

Die Parameter für die Vorgangssteuerung

Je komplexer eine Pipeline wird, desto mehr Zeit und Geld müssen für die Aufgabe bereitgestellt werden. Die Lösung liegt in der Automatisierung der Pipeline. Ziel sollte es daher sein, einen Workflow zu gestalten, der den Build automatisch und ergebnisorientiert von einer Station zur nächsten führt.

Speziell für komplexere Pipelines sind hierbei etliche Parameter zu beachten. Hier eine Auswahl:

  • Mehrere Phasen – in großen Unternehmen müssen etliche unterschiedliche Ebenen unter einen Hut gebracht werden. Manche davon sind geteilt, was mehrere Teams erfordert.
  • Verzweigungen und Schleifen – Pipelines sind nicht immer gerade. Manchmal müssen Prozesse neu aufgebaut und getestet werden, speziell, wenn eine Fehlersuche vonnöten ist.
  • Stromausfälle – speziell bei einer langen Pipeline ist eine Workflow-Engine unabdingbar, welche den Status Quo regelmäßig und zuverlässig speichert.
  • Menschliche Interaktion – Für manche Prozess-Schritte ist die persönliche Kontrolle des Builds durch das Team nötig. Workflows sollten diese „Interventionen“ (sowohl die geplanten als auch die ungeplanten) verrechnen können.
  • Fehler – Sobald ein Fehler ersichtlich wird, sollte eine automatische Rückkehr an einen frei gewählten Punkt möglich sein.
  • Wiederbenutzbare Builds – im Falle eines fortlaufenden Fehlers, sollte das System Builds erlauben, wiederbenutzt zu werden, um den Prozess so nicht aufzuhalten.

In der Vergangenheit haben Software-Teams Teile ihrer Pipeline-Prozesse durch eine Vielzahl von Werkzeugen und Plugins automatisiert. Sie verbinden Ressourcen auf verschiedene Weisen, wobei diese sich von Aufgabe zu Aufgabe ändern. Pipelines werden definiert und Builds von Ort zu Ort bewegt – manchmal automatisch, ein andermal unter menschlicher Leitung, und alles jeweils mit unterschiedlichem Erfolg.

Tools und Communities

Vor dem Hintergrund der Weiterentwicklung automatisierter Pipelines gibt es nun Tools, die auch viele der oben genannten Variablen mit einschließen, Variablen, die bisher ein Problem für komplexe Pipelines darstellten. Manche dieser Tools werden von bekannten Namen wie Chef, Puppet, Serena und Pivotal bereitgestellt. Andere beliebte CD-Tools haben ihren Ursprung im Open Source, so beispielsweise Jenkins.

Der Autor des Artikel ist Sacha Labourey, CEO und Firmengründer von Cloudbees.
Der Autor des Artikel ist Sacha Labourey, CEO und Firmengründer von Cloudbees.
(Bild: Cloudbees)

Apropos Jenkins: die Community veröffentlichte kürzlich Funktionen, die speziell automatisierte Workflows verbessern. Das Jenkins Workflow-Plugin gibt einem Softwareteam die Möglichkeit, den gesamten Application-Lifecycle zu automatisieren, seien das einfache oderkomplexe Prozesse. Die Teams können nun dank Jenkins den gesamten Software-Delivery-Prozess redigieren, wobei der Code – unter Messung der Performance an jeder Stelle – von einem Ort zum nächsten bewegt wird.

* Sacha Labourey ist CEO und Gründer von Cloudbees, dem Enterprise Jenkins Unternehmen. Bevor er Cloudbees im Jahr 2010 gründete, war er Mitgeschäftsführer von Red Hat´s Middleware-Divsion. Zu Red Hat kam Labourey im Zuge der Übernahme des Unternehmens JBoss, hier war er als CTO tätig.

(ID:44395067)