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
  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

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

Grafische Oberflächen in Container-Umgebungen testen

GUI und Container

Grafische Oberflächen in Container-Umgebungen testen

Der Vorteil von Containern besteht vor allem darin, dass sie schnell einsatzbereit sind. Damit eignen sie sich als Testumgebung für Graphical User Interfaces ebenso wie für komplette Anwendungen. lesen

Integration von VMware NSX und Pivotal Cloud Foundry

„Developer-Ready Infrastruktur“

Integration von VMware NSX und Pivotal Cloud Foundry

VMware und Pivotal erweitern ihre strategische Allianz mit dem Ziel eine „Developer-Ready Infrastruktur“ bereitzustellen. Die Kunden sollen von einer Kombination aus Microservices und Mikrosegmentierung profitieren. lesen

Umsetzung von Continuous Deployment in AWS

Blue/Green-Switching in der Cloud

Umsetzung von Continuous Deployment in AWS

Mit AWS als Cloud-Provider stehen verschiedene Möglichkeiten zum Implementieren eines Blue/Green-Deployments zur Verfügung. Wie der Switch von Blue auf Green realisiert wird, ist aber von Fall zu Fall unterschiedlich. Für welche Verfahren sich der Nutzer entscheidet, hängt von der Frontend-Infrastruktur ab. lesen

Visual Studio 2017 mit DevOps-Unterstützung

Neue IDE von Microsoft

Visual Studio 2017 mit DevOps-Unterstützung

Mit Visual Studio 2017 bringt Microsoft die integrierte Entwicklungsumgebung auf die Höhe der Zeit. Mit Blick auf DevOps-Projekte sowie Cloud und Mobile Apps bietet die IDE laut Hersteller mehr Möglichkeiten zur Integration und Automatisierung. 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)