Cloudogu Glossar

Pipeline

Der Begriff der Pipeline ist in den letzten Jahren in Zusammenhang mit der Softwareentwicklung stark durch das Thema DevOps geprägt worden. Allgemein steht eine Pipeline in der Softwareentwicklung für die Summe alle Aktivitäten, die von einer Idee bis hin zum Betrieb dieser Idee führen. In Bezug auf DevOps entspricht die Pipeline oft einer Continuous-Delivery-Pipeline, welche um weitere Automatismen zum Monitoring und zur Kommunikation zwischen Betrieb und Entwicklung der Software erweitert wurde.

Aufbau einer Pipeline

Zum Aufbau einer Pipeline müssen die bestehenden Prozesse betrachtet und dokumentiert werden (Wer macht was und womit?). Nachdem alle Schritte erfasst sind, kann die eigene Pipeline optimiert werden. Dafür müssen, ganz im Sinne von DevOps, diese Fragen gestellt werden:

  • Was machen wir genau in dem Schritt?
  • Wie gut funktioniert es?
  • Was können wir besser machen?

Auf Grundlage der Antworten kann anschließend mit der Umsetzung von Verbesserungsmaßnahmen begonnen werden, z.B. durch das Automatisieren von Schritten oder Auswählen von besser geeigneten Tools.

Bestandteile einer Pipeline

Im Wesentlichen umfasst jede Pipeline in der Softwareentwicklung diese Schritte:

  • Planung von Änderungen an der Software
    • Roadmap
    • Issue Tracking
    • Backlog
  • Schreiben des Codes
  • Build
  • Test
    • Unit Tests
    • Integrationstests
    • Funktionale Tests
  • Release
    • Auf einen Testserver (Staging)
    • Produktiv
  • Betrieb
    • Überwachen
    • Reporting

Tools einer Pipeline

Umgesetzt werden diese Schritte mit Hilfe von Tools.

  • Ideen für Änderungen können in einem Issue Tracker oder Wiki gesammelt und ausgearbeitet werden.
  • Code wird mit einer IDE geschrieben und in einem Versionsverwaltungstool gespeichert.
  • Builds werden mit einem Build Server durchgeführt. Außerdem führt er automatisierte Tests selber aus oder stößt ein Code-Analyse-Tool an. Zum Abschluss deployt der Build Server die Software auf einen Server oder legt den Build in einem Artefakt Repository ab.

Beispiel-Pipeline

Die Tools einer Pipeline können sehr einfach mit dem Cloudogu EcoSystem betrieben werden. Es ist eine Plattform für Tools die üblicherweise für eine Pipeline benötigt werden. Der Vorteil der Plattform ist, dass sie mit wenig Aufwand betrieben und erweitert werden kann.

Ein Beispiel für eine sehr einfache Pipeline ist dieses:

  • Der Code wird im Tool SCM-Manager gespeichert.
  • Der Build Server Jenkins führt Builds und Unit-Tests aus. Außerdem stößt er eine statische Code-Analyse durch SonarQube an und legt zum Abschluss die Anwendung versioniert in Nexus Repository ab.
Cloudogu EcoSystem Workflow

Diese Pipeline kann beliebig um Issue Tracker wie Redmine, Easy Redmine oder JIRA, Wikis wie Smeagol oder Confluence, das Datenbankverwaltungssystem Cassandra, Anforderungsmanagement mit Fidelia oder Containermanagement mit Portainer erweitert werden.

DevOps Toolchain Cloudogu EcoSystem DevStarter

DevOps Toolchain Cloudogu EcoSystem DevStarter

Erfahren Sie mehr darüber wie Sie sich Ihre DevOps Toolchain schnell und einfach zusammenstellen und installieren können.

Mehr über DevStarter erfahren