Definition „Kontinuierliche Software-Verteilung“

Was ist Continuous Deployment?

| Autor / Redakteur: Ilan_r_r / Stephan Augsten

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)

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.

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.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

DevOps für mehr Sicherheit und Qualität im Konzern

Öltanker mit der Agilität eines Schnellboots

DevOps für mehr Sicherheit und Qualität im Konzern

Der digitale Wandel erfordert von Unternehmen mehr Agilität. Manche Konzerne und größere Unternehmen wirken aber behäbig wie Öltanker. DevOps-Strategien können hier für schnellere Reaktionen und bessere Steuerung sorgen. lesen

AWS CodeStar mit CodeCommit und lokalem Git integrieren

Amazon Web Services für Entwickler, Teil 2

AWS CodeStar mit CodeCommit und lokalem Git integrieren

Mit AWS CodeStar gestaltet sich das Erstellen, Verwalten und Bearbeiten von Software-Development-Projekten im Team besonders komfortabel. Für das Arbeiten in der AWS-Cloud sind allerdings eine Handvoll Integrationsmaßnahmen erforderlich. lesen

App-Bereitstellung und -Überwachung in der Cloud

Azure DevOps Projects

App-Bereitstellung und -Überwachung in der Cloud

Microsoft bietet mit dem neuen Azure-Dienst „Azure DevOps Projects“ die Möglichkeit, Anwendungen in Microsoft Azure sehr schnell bereitzustellen. Auch Continuous Integration und Continuous Delivery können mithilfe der DevOps-Pipeline realisiert werden. lesen

Die DevOps-Phasen Planung und Erstellung

Lifecycle Management mit Atlassian-Tools, Teil 1

Die DevOps-Phasen Planung und Erstellung

Atlassian bietet über den DevOps-Lebenszyklus hinweg eine komplette Toolchain an, mit der sich die Phasen Plan, Build, Continuous Integration, Deploy, Operate und Continuous Feedback realisieren lassen. Der agile Lifecycle soll eine effiziente Entwicklungsarbeit und fehlerfreie Bereitstellung fördern. lesen

Kontinuierliche Bereitstellung mit mehr Übersicht

Atlassian führt Bitbucket Deployments ein

Kontinuierliche Bereitstellung mit mehr Übersicht

Continuous Deployment schafft kürzere Release-Zyklen, allerdings sind nicht immer alle Beteiligten auf einem Kenntnisstand. Atlassian will dieses Problem mit Bitbucket Deployments aus der Welt schaffen. lesen

DevOps mit RASP sicherer machen

Runtime Application Self Protection

DevOps mit RASP sicherer machen

DevOps stellt besondere Herausforderungen an die IT-Sicherheit. Kontinuierliches Feedback aber kann Anwendungen sicherer machen kann. In diesem Beitrag schauen wir uns an, welche Technologien dabei helfen. lesen

Continuous Integration und Continuous Delivery

Automation für besseren Code

Continuous Integration und Continuous Delivery

Mit Continuous Integration, Delivery und Deployment können sich Entwickler mehr auf ihre eigentlichen Aufgaben konzentrieren. Die Validierung und Integration des Codes erfolgt automatisiert. lesen

Wie sich DevOps zu DevSecOps entwickelt

Cyber-Sicherheit in Code

Wie sich DevOps zu DevSecOps entwickelt

DevSecOps ist ein neuer Ansatz zur Gewährleistung kontinuierlicher Cyber-Sicherheit bei der Entwicklung von Software nach dem DevOps-Paradigma. Damit wappnen sich innovative Entwicklungsschmieden gegen mögliche Angriffe. Die Herausforderungen sind enorm; schlüsselfertige Lösungen unzuverlässig. lesen

Warum Big-Data-Strategien zu DevOps führen

Kommentar von David Melillo, CloudBees

Warum Big-Data-Strategien zu DevOps führen

Seit einigen Jahren wird das Thema Big Data bereits in den unterschiedlichsten Formen diskutiert. Nachdem Unternehmen mögliche Einsatzgebiete für Big Data definiert haben, werden heute mehr und mehr Big-Data-Projekte umgesetzt. Einer aktuellen Umfrage von New Vantage Partners zufolge ist das Thema Big Data mittlerweile reif für die Unternehmenswelt. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44946074 / Definitionen)