Sollen wir es wirklich machen oder lassen wir es lieber sein? Der Einsatz von DevOps gehört sicherlich zu den Maßnahmen, die am häufigsten innerhalb von Unternehmen besprochen werden, wenn es um Softwareentwicklung geht. Allerdings wirken die Ausführungen im Vergleich oft unscharf, jeder scheint etwas anderes darunter zu verstehen. Wir zeigen DevOps im Überblick.
Die genannte Unschärfe beginnt bei einer grundlegenden Definition von DevOps, umfasst Voraussetzungen sowie Prozesse und endet bei den Vorteilen, welche sich in der Anwendung ergeben. In dem nachfolgenden Artikel sorgen wir für mehr Klarheit, indem wir drei zentrale Fragen beantworten:
DevOps im Überblick:
- Was ist DevOps?
- Wie funktioniert DevOps?
- Was bringt DevOps?
1. Was ist DevOps?
Die Wurzeln von DevOps finden sich in der agilen Softwareentwicklung, deren Leitsätze beispielsweise in dem Agile Manifesto vor 20 Jahren formuliert wurden. Den Unterzeichnern war es ein zentrales Anliegen die Softwareentwicklung in ihrer Gesamtheit zu verbessern. Ein Punkt war die Erhöhung der Geschwindigkeit innerhalb des Prozesses.
Werfen wir weiter einen Blick auf die Herkunft des Wortes DevOps. Als Urheber wird der belgische Systemadministrator Patrick Debois genannt, der während einer Fachkonferenz 2009 DevOps verwendete. Als Schachtelwort setzt es sich zusammen aus Development (Dev) und IT Operations (Ops). Development ist dabei von der Softwareentwicklung (SE) besetzt, Operations von dem eigentlichen IT-Betrieb. Beide werden in der Regel als grundlegend verschiedene Bereiche oder Silos betrachtet. Im Begriff DevOps findet ihre Verschmelzung statt.
Definition ist schwierig
Inhaltlich fällt eine Definition von DevOps wesentlich schwieriger aus. Es mag hilfreich sein mit einer Negation zu starten: Was ist DevOps NICHT? Es ist keine reine Methodik, kein reiner Prozess, kein reines Tool, keine reine Software und keine reine Technologie. Vielmehr wird DevOps als ein Kulturansatz, der sich verschiedener Grundlagen und Technologien bedient, verstanden. Zentrale Punkte dieses Ansatzes formuliert John Willis, ein Pionier der DevOps-Bewegung, wie folgt:
- Culture: Gegenseitiges Vertrauen, stetiger Informationsfluss, Lernbereitschaft
- Automation: Automatisierung bestimmter Arbeitsvorgänge
- Lean: Vermeide Verschwendung, generiere Wert, Transparenz, ganzheitliche Prozessoptimierung
- Measurement: Einheitliche Bewertungskriterien (auch über die Applikation und ihre Komponenten hinaus)
- Sharing: Bereitschaft, Wissen zu teilen, voneinander zu lernen und Erkenntnisse proaktiv mitzuteilen
Unter Berücksichtigung all dieser Punkte soll mit DevOps ein zentrales Ziel erreicht werden: Die Optimierung der Zusammenarbeit zwischen Softwareentwicklung und IT-Betrieb. Konkret verbessert sich durch den Einsatz von DevOps a) die Qualität der Software, b) die Geschwindigkeit der Entwicklung und der Auslieferung sowie c) das Miteinander der beteiligten Teams. Nähere Ausführungen zu den Zielen folgen im dritten Kapitel.
2. Wie funktioniert DevOps?
Die DevOps–Kultur läuft immer parallel zu den weiteren DevOps-Prozessen. Diesbezüglich wird zur Illustration häufig eine Endlosschleife herangezogen, in der sich einzelne Phasen und Prozesse abbilden lassen. Wichtig: Automation und Kontinuität sind der Schlüssel zum Erfolg.
Die Grafik verdeutlicht anhand eines Durchlaufzyklus die enge Verzahnung zwischen Softwareentwicklung und IT-Betrieb. Von Bedeutung ist dabei, dass dieses zyklische Vorgehen ermöglicht, umfangreiche Entwicklungsaufgaben in kleinere Einheiten umzustrukturieren. Letztere bringen immer schon ein voll verwertbares Ergebnis, ein sogenanntes Entwicklungsartefakt, mit sich. Bei einem Artefakt handelt es sich prinzipiell um ein lauffähiges Programm.
Die Kontinuität des Ablaufs stützen Pipelines auf Basis von
- Continuous Integration (CI): CI ist der erste Automatisierungsprozess. Er findet innerhalb der Entwicklung statt. Durch ihn soll gewährleistet werden, dass der neu entstandene Quellcode kontinuierlich zusammengefügt wird. Standardisierte Tests sorgen außerdem dafür, dass keine Konflikte zwischen bestehendem und neuem Code auftreten.
- Continous Testing (CT): CT wirkt als Bindeglied zwischen CI und CD, indem es aktives Finden und Beheben von Fehlern einfordert. Dies gilt für alle Phasen des Entwicklungszyklus und kann in Form von technischer Überprüfung und persönlichen Rückmeldungen geschehen.
- Continous Delivery (CD): CD verfolgt das Ziel, geänderten Quellcode beziehungsweise neue Entwicklungen zügig, automatisch und zuverlässig auszuliefern. So lassen sich Entwicklungsartefakte schnellstmöglich in einen produktiven Zustand versetzen.
Flankiert werden die Automatisierungsprozesse von dem bereits angedeuteten kontinuierlichen Feedback. Es ermöglicht die Kontrolle darüber, ob angestrebte Veränderungen positive Effekte wirklich mit sich bringen oder sich womöglich Fehlentwicklungen und Schwierigkeiten andeuten. Sollte das der Fall sein, kann frühzeitig entgegengesteuert werden.
3. Was bringt DevOps?
Es bleibt abschließend die Frage nach dem Mehrwert für Unternehmen. Konkrete Kennzahlen in Gestalt von KPIs oder ROIs lassen sich schwierig pauschal festlegen. Dafür variieren die Anforderungen beziehungsweise die Voraussetzungen einzelner Unternehmen zu stark. Wenn Parameter genannt werden, sind das Durchlauf- und Verarbeitungszeit. Indem diese Zeiten reduziert werden, beschleunigt sich die Time-to-Value sowie die Time-to-Market des einzelnen Produkts. Die höhere Geschwindigkeit wird zum Vorteil gegenüber den Mitbewerbern. Halten wir an dieser Stelle die generellen Vorteile erneut fest:
- Höhere Qualität der Software beziehungsweise des Produkts
- Höhere Geschwindigkeit in der Entwicklung und Auslieferung
- Bessere Zusammenarbeit zwischen den Teams
Mit Blick auf die gegenwärtige Marktsituation in Deutschland lässt sich folgende Einschätzung formulieren: Nur mit DevOps werden Unternehmen mit eigener Softwareentwicklung mittelfristig in der Lage sein, erfolgreich am Markt zu agieren.
DevOps&ALM@Windhoff Group
Warum sollten Unternehmen DevOps- oder ALM-Projekte gemeinsam mit der Windhoff Group angehen? Ganz einfach, weil Windhoff vollumfängliche Lösungen mit Kopf anbietet. Und das ist wortwörtlich gemeint. Windhoff verfügt über das gewünschte Know-how UND den passenden Windhoffler dazu. Dabei kommt die Erfahrung aus über 20 Jahren in der Softwareentwicklung bei der Gestaltung und dem Betrieb von Entwicklungsumgebungen zur Geltung. Dementsprechend wissen unsere Experten um die Komplexität von Konzeption, Einführung, Betrieb und Support von DevOps und ALM-Lösungen.
Mehr Informationen und unseren Check-Up „Tool-Chain“ gibt es hier .