Suchen

Docker als zentrale Technologie für DevOps DevOps für mehr Qualität in Entwicklung und Betrieb

Autor / Redakteur: Andre Wetzel / Florian Karlstetter

Im Wettbewerb um den Kunden müssen fortwährend neue Features und Updates genutzt werden. Web-Projekte werden immer komplexer und die Halbwertszeit der Technologien, die dabei zum Einsatz kommen, immer kürzer. Klassische Software-Entwicklungsprozesse und Vorgehensweisen stoßen dabei an ihre Grenzen.

Firmen zum Thema

Um schneller und agiler Features und Software ausliefern zu können, rücken unter dem Fachbegriff „DevOps“ Entwicklung (Development) und Betrieb (Operations) zu interdisziplinären Teams inklusive Qualitätsmanagement zusammen.
Um schneller und agiler Features und Software ausliefern zu können, rücken unter dem Fachbegriff „DevOps“ Entwicklung (Development) und Betrieb (Operations) zu interdisziplinären Teams inklusive Qualitätsmanagement zusammen.
(Bild: © duncanandison - Fotolia.com)

Um digitale Projekte schneller und flexibler umzusetzen, bieten DevOps und das Tool „Docker“ neue Ansätze. Applikationen, können damit deutlich schneller live gehen und im laufenden Betrieb aktualisiert werden. Der folgende Artikel gibt einen Einstieg in DevOps und seine Möglichkeiten, Software-Entwicklungsprozesse agiler zu machen.

DevOps bringt Entwicklung und Betrieb zusammen

Die Notwendigkeit und der Anspruch der Kunden steigt, fortwährend neue Features zu integrieren, um den Nutzern mehr und bessere Services anzubieten. Damit die Entwicklung und der Betrieb der Anwendungen optimal ineinandergreifen, nutzen viele Unternehmen DevOps. Um schneller und agiler Features und Software ausliefern zu können, rücken unter dem Fachbegriff “DevOps” Entwicklung (Development) und Betrieb (Operations) zu interdisziplinären Teams inklusive Qualitäts-Management zusammen.

Im Vordergrund steht die Minimierung von Reibungsverlusten, der Abbau von Kommunikationsschranken und die weitgehende Automatisierung des Entwicklungszyklus. Durch die kontinuierliche Konfrontation von Entwicklern und Administratoren entsteht eine offene Feedback-Kultur, die dabei hilft, Prozesse immer wieder zu verbessern.

Zusammengefasst ist DevOps also die zielgerichtete, direkte Zusammenarbeit von Entwicklung (Dev) und Betrieb (Ops), die sich über den gesamten Lebenszyklus von Anwendungen von der Planung, Erstellung und Betreuung bis hin zur kontinuierlichen Weiterentwicklung erstreckt.

DevOps beschleunigt die Software-Entwicklung

Durch die zielgerichtete und direkte Zusammenarbeit von Entwicklung und Betrieb wird die Software-Entwicklung beschleunigt. Neue Features und Bug-Fixes in hoher Qualität können so schneller ausgeliefert werden. Unternehmen profitieren von einem hohen Automatisierungsgrad, einer kontinuierlichen und schnellen Auslieferung neuer Features und einer hohen Softwarequalität. Das spart Geld und schafft Agilität.

In der `klassischen´ Software-Entwicklung durchläuft eine Software von der Implementierung eines Features bis zum Deployment auf dem Live-System viele Prozesse. Dabei gibt es jedoch technische und organisatorische Grenzen zwischen Entwicklung (Development) und Betrieb (Operations).

Zur Überwindung dieser Grenzen soll durch Test- und Abnahme-Prozesse ein hoher Reifegrad der Software für den Betrieb sichergestellt werden. Danach sind Störungen im Betrieb Ausnahmen und werden im Rahmen eines Incident-Managements behandelt. Durch diese Art der Organisation ist der Weg von einer “Störung” bis hin zur Behebung des zugrunde liegenden Problems in der Software weit.

Enge Verzahnung

Mit DevOps rücken die Entwicklung und die dort genutzten Deployment-Methoden für Entwicklungs- und Test-Systeme näher an den Live-Betrieb heran. Die Zeit zur Behebung von Störungen beziehungsweise der Impact durch Rollouts wird dadurch minimiert, dass der Reifegrad der Software schon während der Entwicklung durch die Benutzung der gleichen Werkzeuge und Techniken inhärent erreicht wird.

Kundenanforderungen können mit DevOps schneller umgesetzt werden. Gleichzeitig sinkt die Zahl der Incidents und damit der Ressourceneinsatz. Die verbleibenden Incidents lassen sich aufgrund des hohen Automatisierungsgrade leichter nachvollziehen und reproduzieren. Eine Menge Gründe die dafür sprechen, den bisherigen Software-Entwicklungsprozess zu überdenken.

Die nächste Stufe der Agilität

DevOps vereint verschiedene Bereiche und beschleunigt so die Softwareentwicklung.
DevOps vereint verschiedene Bereiche und beschleunigt so die Softwareentwicklung.
(Bild: Neofonie)

DevOps ist die nächste Stufe der Agilität. Klassische Prozesse werden mithilfe von DevOps erfolgreich zu agilen Prozessen transformiert. Unabdingbar für die Einführung von DevOps ist die Bereitschaft aller Beteiligten, bestehende Prozesse und Strukturen verändern zu wollen.

Gegenseitiges Vertrauen und die gemeinsame Übernahme der Verantwortung für alle Prozesse durch Dev und Ops sind Grundvoraussetzungen für den erfolgreichen Transformationsprozess von klassischen hin zu agilen Prozessen. Das Management muss hinter der DevOps Einführung stehen und jegliche Schritte planen und forcieren.

Docker als zentrale Technologie für DevOps

Docker ist das führende `Transportmittel´ und ein zentrales DevOps Tool. Statt Waren wird bei Docker Software in “Container” gepackt. Nicht umsonst ist Docker technischer Marktführer, denn die Vorteile sind vielfältig: Container können einzeln bereitgestellt, aufgerufen und aktualisiert werden, wodurch “Continous Delivery” und “Continous Integration” vom Schlagwort zur gelebten Realität werden.

Im Vergleich zu klassischen virtuellen Maschinen ist Docker leichtgewichtig und spart Ressourcen. Das betrifft die Rechen-Power, die Bandbreite und den Storage gleichermaßen. Deployment-Prozesse werden vereinfacht und die Ressourcenaufwände zwischen Development und Operations minimiert.

Entscheidend ist, was in den Container gepackt wird, um Ressourcen und Zeit bei der Entwicklung und Administration zu sparen. Mit der Docker-Technik kann der Entwickler (Dev) die Applikation auf verschiedenen Zielsystemen (Stages) einfach und schnell deployen. Alle Abhängigkeiten zu den Betriebssystem-Bibliotheken (Libraries) werden dabei gekapselt und mit dem Docker Image ausgeliefert.

Das Operations-Team (Ops) kann mit Docker unterschiedliche Applikationen in gleichförmiger Weise verwalten. Schon beim Aufbau der benötigten Infrastruktur ist die enge Zusammenarbeit zwischen Dev und Ops gefordert.

(ID:44106815)