DevOps ist nicht mehr wegzudenken!

DevOps ist aktuell eines der top trending Themen: von der Bezeichnung als Verfahren/Tool und Methodik bis hin zum MindSet bzw. gehypten Buzzword oder sogar der Betitelung als Unternehmenskultur. Wir sind also eindeutig im DevOps-Zeitalter angelangt. Das wirft die Frage auf, was DevOps eigentlich ist, was es ausmacht und welche Vorteile es bietet. Diese und weitere Fragen beantwortet dieser Artikel kurz, knackig und simpel.

Doch was genau ist DevOps eigentlich?

DevOps, also die Verbindung aus Development (engl. Entwicklung) und IT Operations (eng. IT-Betrieb), ist ein Ansatz zur Prozessverbesserung aus den Bereichen der Softwareentwicklung und Systemadministration. Das übergeordnete Ziel besteht darin, Änderungen schnell zu implementieren und durch gesammelte Erfahrungswerte Prozesse und Abläufe stetig zu optimieren. Der Hauptvorteil besteht folglich in einer hohen Auslieferungsrate, ohne Abstriche bei der Qualität machen zu müssen. Dabei stehen vor allem Kommunikation, Integration und Zusammenarbeit im Mittelpunkt. Ein weiterer Teil des Ganzen ist das Zusammenspiel aus agiler Organisation und Projektmanagement, Prozessen, Konzepten und diversen Werkzeugen. Für die Etablierung dieser Kultur bestehen konkrete Werte, Prinzipien, Prozesse und Tools, die dafür herangezogen werden können. Bevor diese näher betrachtet werden, gilt es jedoch die nachstehende Frage zu beantworten.

Warum und wie ist es zu dem geworden, was es heute ist?

Software, das Internet und natürlich auch die Digitalisierung haben sowohl den Alltag, aber auch die Geschäftswelt grundlegend und nachhaltig verändert. Software beispielsweise ist inzwischen zu einem zentralen Bestandteil jedes Unternehmensbereichs geworden und nimmt nicht mehr bloß eine unterstützende Rolle ein. Auch die Erwartung und Anspruchshaltung der Kunden hat sich damit einhergehend tiefgreifend verändert und viele Services werden von diesen inzwischen als Selbstverständlichkeit angesehen. Dies stellt die Unternehmen nicht nur vor neue Herausforderungen, sondern vor allem unter Zugzwang: die Verkürzung der Reaktionszeiten auf Wünsche der Kunden und der Time-to-Market oder verschärfte Anforderungen an Sicherheit sind dafür nur ein paar der Beispiele. Infolgedessen müssen neue Methoden für die Entwicklung und Bereitstellung von Software gefunden werden. Diese Veränderung hat die sogenannte „DevOps-Bewegung“ bereits vor mehr als 10 Jahren (ca. 2007/2008) erkannt: bei dem herkömmlichen Modell zur Softwareentwicklung ist das Team, das einen Code entwickelt von dem, das diesen dann deployt bzw. supporten soll organisatorisch und funktionell vollkommen getrennt. Erschwerend kam noch hinzu, dass die beiden Teams (Entwickler und IT/Operations-Team) nicht nur vollkommen verschiedene, sondern häufig sogar rivalisierende Ziele verfolgt haben, nach unterschiedlichen KPIs bewertet wurden und zumeist räumlich voneinander getrennt gearbeitet haben, was das Silodenken stark begünstigt hat und schließlich an Stelle einer ganzheitlichen Sicht zum gemeinsamen Unternehmenserfolg getreten ist. Dadurch waren die Teams isoliert voneinander, Synergieeffekte blieben ungenutzt, es mangelte an Kommunikation und Abstimmung, fehlerhafte Releases sind entstanden und im schlimmsten Fall unzufriedene Kunden. Genau aus dieser Thematik heraus ist DevOps entstanden, denn eines der zentralen Merkmale von DevOps ist, dass die beiden Teams nicht mehr isoliert voneinander arbeiten, sondern z.T. sogar zu einem einzigen Team zusammengefasst werden.

Welche Elemente machen DevOps aus?

Grundlegend kann man festhalten, dass DevOps in vielen Bereichen Anwendung finden kann. Betrachtet man diese ganzheitlich, so lassen sich grob zwei Hauptbereiche identifizieren, die nachstehend thematisiert werden:

DevOps als Kultur

Innerhalb der DevOps-Kultur wird großer Wert darauf gelegt, die Zusammenarbeit und Kommunikation von Softwareentwicklern und IT-Experten zu verbessern und Prozesse der Softwareauslieferung und Infrastruktur-Änderungen zu automatisieren. Die Voraussetzung dafür ist ein komplettes Umdenken bei der IT-Philosophie und ein Zusammenwachsen der Abteilungen, sodass diese miteinander statt aneinander vorbei arbeiten. Gleichzeitig sieht die Kultur vor, diese beiden Bereiche hinsichtlich der Praxis und Werkzeuge und auch der Mentalität eng zu verzahnen. Dadurch soll Entwicklung, Test, Release und Betrieb von Software beschleunigt werden, was einer Erhöhung der Frequenz der Releases zur Folge hat und gleichzeitig ein stabilerer Code zur Verfügung gestellt werden kann. Somit kann möglichst schnell auf diverse Veränderungen im Entwicklungsprozess reagiert werden. Folglich unterstützt die DevOps-Kultur den Ansatz der agilen Softwareentwicklung und kombiniert diesen mit Weiteren, wie beispielsweise dem System-Management-Ansatz.

DevOps als Methodik

Mit diesem Grundgedanken der DevOps-Kultur werden viele Hilfsmittel, Methoden und Prinzipien in Verbindung gebracht. Der Fokus sollte dabei auf dem Liefern des Minimum Viable Products (MVP) liegen. Dieses stammt ursprünglich aus dem Bereich des „Lean Manufacturing“, also schlanke Produktion. Hierbei geht es zum einen darum, wenig Ressourcen zu verschwenden, zum anderen geht es aber speziell darum, die vorhandenen Ressourcen möglichst effizient zu nutzen. Das MVP ist die minimale überlebens- bzw. funktionsfähige Iteration eines Produktes oder Services, um mit dem geringsten Aufwand den Bedarf des Kunden zu decken und gleichzeitig handlungsrelevantes Feedback zu liefern. Es erfüllt zu Beginn also nur die unbedingt notwendigen Funktionen, um den Zweck des Produktes zu erfüllen. Durch das zurücklaufende Feedback kann das MVP dann fortlaufend erweitert und verbessert werden. Dadurch können Produkte ressourcenschonend weiterentwickelt werden, konkret also viel Zeit, Aufwand und dementsprechend Kosten gespart werden.

Abbildung 1: Iteratives Arbeiten

Fazit

Beide Bestandteile (Agilität, MVP) sind essentielle Komponenten für eine erfolgreiche DevOps-Kultur. Die Anwendung dieser Kultur kann insgesamt nachhaltig dazu führen, dass sich die Kommunikation und Produktivität innerhalb einer Organisation deutlich verbessern können und Produkte kontinuierlich, zielgruppenspezifisch und vor allem automatisiert weiterentwickelt werden. Dies führt außerdem dazu, dass Geschwindigkeitsvorteile realisiert werden können, wodurch Unternehmen insgesamt effektiver am Markt agieren können.