Suchen

Definition „Kontinuierliche Software-Verteilung“ Was ist Continuous Deployment?

| Autor / Redakteur: Ilan_r_r / Stephan Augsten

Der Begriff Continuous Deployment beschreibt eine Entwicklungs- und Veröffentlichungs-Methode für Software, welche sich in den letzten Jahren verstärkt durchgesetzt hat. So werden Änderungen kontinuierlich veröffentlicht und zugänglich gemacht.

Firmen zum Thema

Continuous Deployment in der Software-Entwicklung verspricht eine beschleunigte Auslieferung neuer Funktionen und Verbesserungen ohne Ausfallzeiten.
Continuous Deployment in der Software-Entwicklung verspricht eine beschleunigte Auslieferung neuer Funktionen und Verbesserungen ohne Ausfallzeiten.
(Bild: 463259 - Pixabay.com / CC0 )

Continuous Deployment und Continuous Delivery sind beides Teile der Continuous Integration, die bereits seit vielen Jahren in der Software-Entwicklung eingesetzt wird. Grundsätzlich geht es hierbei darum, dass die Software kontinuierlich weiterentwickelt wird, dabei jedoch höchster Wert auf eine Perfektionierung der Software und vor allem eine kontinuierliche Auslieferungsfähigkeit geachtet wird.

Dank automatisierter Tests während des gesamten Entwicklungsvorgangs kann somit garantiert werden, dass alle neu zugefügten Elemente sich nicht negativ auf die Lauffähigkeit der Software auswirken und sich keine Fehler einschleichen. Dennoch gibt es einige Punkte, welche sowohl für als auch wider kontinuierlicher Software-Entwicklung sprechen.

Continuous Delivery: Die Grundlagen

Continuous Delivery verspricht grundsätzlich die Produktivsetzung der jeweils entwickelten Software praktisch auf Knopfdruck in einer besseren Qualität als bisher. Somit wird das klassische Phasenmodell der Softwareentwicklung aufgehoben, da alle Änderungen im Rahmen des Contious Deployment umfassend getestet werden, ehe diese in die laufende Software implementiert wird.

Für den Kunden und die Anbieter hält Continuous Delivery einige Vorzüge bereit. So kann die laufende Software jederzeit durch eine verbesserte Version ersetzt werden und mit neuen Funktionen und Möglichkeiten angereichert werden, ohne dass der Kunde lange auf die nächste Version der Software warten muss. Es müssen somit keine Etappenziele erreicht werden, sondern die entwickelte Software kann zu jedem Zeitpunkt in eine auslieferungsfähige Software umgewandelt werden.

Der Nachteil liegt vor allem darin, dass große, tiefgreifende Änderungen nur schwer in diesem Modell zu implementieren sind. Oftmals bedeutet es eine enorme Umstellung, die entsprechenden Testroutinen und Überprüfungen in den aktiven Arbeitsablauf zu implementieren.

Continuous Deployment im Überblick

Das Continuous Deployment ist sozusagen der Hintergrund des ganzen Systems. Die Software wird somit immer so entwickelt, dass sie jederzeit vom Hersteller freigegeben und an den Nutzer ausgeliefert werden kann. Das bedeutet, dass alle Entwicklungen im Rahmen des Continuous Deployment durch automatisierte Systeme und Testumgebungen abgesichert werden müssen, ehe diese Entwicklungen in die laufende Software implementiert werden dürfen.

Im Rahmen des Continuous Deployment werden alle Änderungen an der Software automatisiert und nach festen Kriterien in die aktuelle Software beziehungsweise in die Produktion überführt. Auf diese Weise wird eine kontinuierliche Auslieferung der Software ermöglicht.

Probleme beim Continuous Deployment

Die Nutzung von Continuous Deployment und Continuous Delivery bringt auch einige Gefahren mit sich, welche bei monolithischen Lösungen der Software-Entwicklung kaum ins Gewicht fallen. So ist es beispielsweise eine sehr deutliche Gefahr, dass innerhalb eines Teams oder eines Projekts die Schwerpunkte der Arbeit falsch gesetzt oder gesteuert werden. Statt eine kontinuierliche Verbesserung der Software zum Ziel zu haben, wird vor allem eine möglichst hohe Deployment-Frequenz zum Ziel gesetzt.

Ein großer Teil des Erfolges hängt auch von den genutzten Test-Umgebungen und Test-Kriterien ab, welche für die automatische Implementierung der Änderungen in die Software eingesetzt werden. Werden schwerwiegende Fehler nicht erkannt oder auch nur zu spät erkannt, können umfangreiche und umfassende Revisionen notwendig werden, um die auslösenden Faktoren zu finden und zu erkennen. Hinzu kommt, dass für viele Änderungen und Neuerungen von den Entwicklern eigene Tests geschrieben werden müssen, welche wiederum als Fehlerquelle ausschlaggebend sein können.

Continuous Deployment – die Chancen und Möglichkeiten

Unter engen Voraussetzungen und unter einer klar strukturierten Arbeits-Aufteilung und Zielführung kann Continuous Deployment durchaus von Nutzen sein und wird von vielen Software-Entwicklern aufgrund seiner Geschwindigkeit und seiner hohen Nutzerfreundlichkeit geschätzt. Da jedoch die entsprechenden Systeme zunächst umfassend und oftmals kostenintensiv aufgebaut und getestet werden müssen, ist der Umstieg auf Continuous Delivery und Continuous Deployment für viele Unternehmen enorm aufwändig.

Einmal implementiert und getestet, schafft diese Form der Software-Entwicklung jedoch deutliche wirtschaftliche Vorteile. Neuerungen und attraktive Änderungen bzw. Verbesserungen können dann schneller in die Produktion gegeben und für den Endkunden freigegeben werden.

(ID:44946074)