Was sind DevOps?

DevOps ist ein Wort, das zwei Begriffe in sich vereint. Dev ist eine Abkürzung für Development und Ops steht für Operations der IT. Übersetzt könnte es als Entwicklung des IT-Betriebs bezeichnet werden. Gemeint ist aber viel mehr. DevOps sollen helfen, die Prozesse der Softwareentwicklungen und der Software- bzw. Systemadministration miteinander zu verknüpfen.

Dazu gehört auch eine engere Zusammenarbeit der Teams dieser Bereiche. Erreicht werden kürzere und damit effizientere Prozesse, die der Qualitätssicherung und Kostensenkung dienen. Gleichzeitig wird die Effektivität erhöht, weil die Prozessziele wirksamer und zielgenauer erreicht werden.

Klassische Softwareentwicklung

Die Softwareentwicklung erfolgt im Rahmen eines Projektes und enthält bei der klassischen Vorgehensweise meist 6 Schritte. An erster Stelle steht die Planung mit Lasten- und Pflichtenheft sowie einem Vorgehensmodell, das die notwendigen Schritte der Softwareentwicklung in überschaubare Teilabschnitte gliedert.

Daran schließt sich die Analyse der Prozesse und des IT-Systems an, um je nach Aufgabenstellung Schwachstellen oder Verbesserungspotenzial sowie daran beteiligte IT-Systeme zu erkennen. Als dritter Schritt kommt der Entwurfsprozess, in dem das strukturelle und objektbezogene Softwaredesign erarbeitet wird.

Dem folgen als vierter und fünfter Schritt die Programmierung sowie mehrere Softwaretests als letzte Qualitätsprüfungen vor der Einführung der Software in den normalen Betrieb. Bei allen diesen Schritten gibt es Schnittstellen zur Systemadministration. Oberstes Ziel der Softwareentwickler ist ein schnelles Entwickeln und Liefern neuer Funktionalitäten.

Systemadministration

Zur Systemadministration gehört in erster Linie das Management der informationstechnischen Infrastruktur des Unternehmens. Wichtigste Grundlage ist das komplexe Zusammenspiel verschiedenster Geschäftsprozesse und unterschiedlichster Software auf den Betriebssystemen. Hierzu gehören auch die Zugriffsrechte.

Da jede Anpassung oder Neuentwicklung von Software ebenfalls Anpassungen an der informationstechnischen Infrastruktur erfordert, ist eine funktionierende Systemadministration ein kritischer Qualitätsfaktor der Geschäftsprozesse.

Das enge Zusammenspiel zwischen den Teams der Softwareentwickler und der Systemadministratoren ist daher eine wichtige Voraussetzung für das reibungslose Funktionieren der Geschäftsprozesse. Oberstes Ziel der Systembetreuer ist die Garantie der Stabilität und Sicherheit der IT-Systeme.

Nachteile der klassischen Trennung von Zuständigkeiten

Softwareentwickler und Systemadministratoren arbeiten in unterschiedlichen Teams, sind oft auch räumlich getrennt. So ist eine Zusammenarbeit erschwert. Hinzu kommt, dass beide Teams sehr unterschiedliche Ziele verfolgen und ebenso unterschiedliche Wege gehen.

Die Mitarbeiter werden sogar sehr häufig in den Unternehmen nach unterschiedlichen KPIs (Key Performance Indicators) beurteilt. Das Ergebnis sind nicht funktionierende Releases und gehäuft auftretende Systemfehler. Die Schuldfrage hierfür wird zwischen den Teams hin- und hergeschoben. Alle Beteiligten einschließlich der Kunden sind am Ende unzufrieden.

Was ändert der DevOps Gedanke?

Mit DevOps kommt eine agile (flexible) Softwareentwicklung ins Spiel und damit verbunden eine flexible Bereitstellung der IT-Operations. Es ist eine Art Philosophie, die auf die Vereinheitlichung von Betrieb und Entwicklung zielt.

Damit soll eine schnellere und zugleich häufigere Implementierung neuer Entwicklungen in den laufenden Betrieb erreicht werden. Häufigere Releases bringen einen deutlichen Wettbewerbsvorteil und Fehler werden schneller behoben. Die Lösung von Problemen oder Anforderungen als auch der eigentliche Betrieb der IT-Systeme liegen in der Verantwortung desselben Teams.

Somit können Entscheidungen eigenverantwortlich und ohne Verzögerung getroffen werden.

Umsetzung der DevOps im Unternehmen

Die wichtigste Änderung ist, dass es keine getrennten Teams für Entwicklung (Development) und IT-Betrieb (Operations) mehr gibt. In der Praxis wird dies unterschiedlich gehandhabt.

Manche Unternehmen vereinen beide Teams und Jeder betreut den gesamten Lebenszyklus einer Softwareanwendung von Planung über Entwicklung und Test bis hin zum Betrieb. So sind sie nicht mehr nur auf bestimmte Funktionen und Aufgaben beschränkt und entwickeln flexibel einsetzbare Fähigkeiten.

Andere Unternehmen bilden eigenverantwortliche Teams, die auch Vertreter der Anwendungsseite einbeziehen und so gemeinsam für Planung bis Umsetzung für den gesamten Prozess verantwortlich sind.

Ein dritter Ansatz bezieht auch die Mitarbeiter für Qualitätssicherung und Sicherheit mit ein, diese Teams werden auch DevSecOps genannt. Eine das gesamte Unternehmen einbeziehende, bereichsübergreifende Umsetzung wird BizDevOps (für Business plus DevOps) genannt.

Welcher Weg letztlich gewählt wird, muss jedes Unternehmen für sich selbst entscheiden. Wichtig ist, dass die Trennung der Zuständigkeiten aufgehoben wird und auch eine neue Form der KPIs gefunden wird, nach denen die Teams bewertet werden.

Vorteile und Methoden von DevOps

Erhöhte Schnelligkeit und Flexibilität:

Durch eine Beschleunigung der Prozesse werden nicht nur Ziele schneller erreicht, das Unternehmen kann auch flexibler auf Kundenwünsche reagieren. Hilfsmittel sind hier unter anderem Methoden wie die Microservices-Architektur. Ihr Vorteil ist die Eindeutigkeit und Einfachheit. Viele kleine Services bilden in ihrer Gesamtheit die Anwendungen. Jeder einzelne Service definiert sich über eigene Prozesse und wird mit anderen Services über eine einfache Schnittstelle verbunden.

Weitere Methoden sind Continuous Delivery (Laufende Bereitstellung) und Continuous Integration (Kontinuierliche Integration). Die Kontinuierliche Integration führt regelmäßig die Veränderungen von Softwarekomponenten in kleinen Schritten zusammen.

In einem zentralen Repository werden alle Codeänderungen regelmäßig zusammengeführt. Dadurch entsteht auch ein stetiger Feedback-Mechanismus. Die Continuous Delivery stellt die Codeänderungen kontinuierlich in einer Testumgebung bereit. Auf diese Weise wird nicht nur die Häufigkeit sondern auch die Geschwindigkeit von Versionen erhöht. Bugs werden schneller entdeckt und können sofort behoben werden.

Verbesserte und effektivere Zusammenarbeit:

Die einzelnen Teams arbeiten nicht nebenher, verfolgen keineabweichenden oder garentgegengesetzten Ziele mehr. Jeder Einzelne übernimmt in der Philosophie des DevOps die Verantwortung gegenüber dem Kunden für das Gesamtprodukt. Jeder Beteiligte identifiziert sich mit dem Ergebnis.

Mittel und Methoden hierfür sind kombinierte Workflows, die konsequente Nutzung von DevOps-Tools und die Automatisierung der Bereitstellung von Software. Für die Kommunikation und den Informationsaustausch werden Tools wie Wiki, Bugtracking,Projektmanagementtools oder einfache Chats genutzt.

Höhere Sicherheit:

Die Verwendung des Prinzips der Infrastruktur durch Code ermöglicht einerseits eine starke Entlastung der Mitarbeiter und andererseits eine Bereitstellung von Server und Infrastruktur, die schnell über standardisierte Verfahren erfolgen kann.

Alle Beteiligten werden durch die Verwendung eines Cloudmodells in Form von Code von zeitraubender manueller Tätigkeit entlastet. Gleichzeitig ist es möglich, die Compliancebestimmungen im Unternehmen dynamisch anzupassen und umzusetzen.

Sicherheitsmaßnahmen werden mittels der Infrastruktur, die mit Code beschrieben ist, schnell umgesetzt. Automatische Korrekturen nicht Compliance-konformer Ressourcen können gekennzeichnet oder auch automatisch Compliance-konform korrigiert werden.

Mit Überwachung und Protokollierung erkennt das Unternehmen die Ursachen und Auswirkungen von Problemen oder Änderungen. Insgesamt wird ein Unternehmen mit DevOps-Kultur immer effizienter und mit reduziertem Risiko arbeiten.

Voraussetzungen zur Umsetzung

Für eine erfolgreiche Umsetzung des DevOps im Unternehmen gibt es Schulungen und unterstützende Tools, die eine verstärkte Automatisierung von Aufgaben ermöglichen. Die Code-Qualität muss sichergestellt werden.

Code- Analysen (statisch und flexibel) werden ebenso automatisiert bereitgestellt wie beispielsweise System- und Performance-Tests oder auch das Erstellen von Quellcodes für die Programmierung. Eines ist jedoch das Allerwichtigste: DevOps ist eine Art Philosophie.

DevOps erfordert ein Umdenken in den Köpfen aller Beteiligten, beginnend bei der Geschäftsführung eines Unternehmens.

Interessante Beiträge:
DevOps erklärt auf Wikipedia
Atlassian zeig die Vorteile dieses Ansatzes

Bilder: Canva


Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.

Schreibe einen Kommentar