Keine Ahnung, welches Hosting-Paket zu dir passt? Zum Webhosting-Berater

Was sind Continuous Delivery und Continuous Deployment?

Autor: Hosttest Redaktion   |26.11.2021

Continuous Delivery und Continuous DeploymentTraditionell gliedert sich die Entwicklung von Software in drei verschiedene Phasen - dem Programmieren einzelner Komponenten (Development), das Zusammenführen aller erforderlichen Bauteile (Integration) und zuletzt das Ausliefern oder Bereitstellen eines fertigen Produkts für die Endkunden (Delivery). In der Vergangenheit wurden diese drei Etappen lange Zeit chronologisch und linear abgeschlossen, was zu teilweise erheblichen Problemen bei dem Übergang von einer Stufe zur nächsten führte. Aus diesem Grund sehen moderne Konzepte der Softwareentwicklung eine enge Verzahnung vor, die als kontinuierliche Integration (Continuous Integration), kontinuierliche Auslieferung (Continuous Delivery) und kontinuierliche Entsendung oder Einspielung (Continuous Deployment) bekannt sind. Sie sind als CI/CD Modell bekannt, wobei CD für Continuous Deployment oder Continuous Delivery ebenso wie für beides gleichzeitig stehen kann.

Inhalt:
Was sind der Grundgedanke und die Definition von Continuous Delivery?
Welche Aufgaben umfasst kontinuierliche Auslieferung?
Was steckt hinter Continuous Deployment?
Welche Vorteile weist kontinuierliche Auslieferung auf?
Welche Tools helfen bei der Implementation von Continuous Delivery?
 

Was sind der Grundgedanke und die Definition von Continuous Delivery?

Im Unterschied zu anderen Produkten stellt die Entwicklung von Software in den meisten Fällen keinen statischen Prozess dar, der einmal abgeschlossen zu einem dauerhaft marktreifen Ergebnis führt. Stattdessen ist es in der Regel erforderlich, regelmäßig Aktualisierungen zu veröffentlichen, die zum Beispiel neue Features einführen oder aufgetretene und entdeckte Sicherheitslücken schließen. Selbst wenn dies nicht der Fall ist, erfordert der Vorgang der Entwicklung eine wiederkehrende Erstellung von Alpha- und Beta-Versionen, die zumindest an ein festes Umfeld von Testern, anderen Entwicklern und eventuell ebenfalls interessierten Kreisen der Öffentlichkeit ausgeliefert werden.

Statt die einzelnen Phasen als abgekapselte Entwicklungsschritte zu betrachten, verwenden aufwendige Projekte einen alternativen Ansatz, der durch Continuous Integration und kontinuierliche Auslieferung die unterschiedlichen Etappen miteinander verzahnt. Dabei steht Continuous Delivery für eine Sammlung von Tools, Prozessen und Methoden, über die sich die Auslieferung von Software zusätzlich zu klassischen Verfahren wie dem Verkauf von Datenträgern oder die Bereitstellung als kostenloser oder -pflichtiger Download ergänzen lässt. Dafür müssen bestimmte Voraussetzungen erfüllt sein:

  • Umfangreiche Versionskontrolle für den Source Code
  • Kontinuierliche Integration als Basis für die rasche Entwicklung einer Software
  • Automatisierung von wiederkehrenden Prozessen wie Compiling, Testen und Paketerstellung durch geeignete Tools
  • Kontinuierliche Auslieferung durch zentrale Plattformen wie GitLab
  • Regelmäßige Feedbacks zwischen den unterschiedlichen Teams sowie (Test-)Anwendern
  • Kurze Entwicklungszyklen mit regelmäßigen Builds für praktischen Einsatz

Zu der Definition für eine kontinuierliche Verteilung zählt also der gesamte Entwicklungsprozess, der nicht linear, sondern zyklisch in einer engen und permanenten Schleife aus Fortschritt, automatisierten Builds und Tests, Qualitätskontrolle und Rückmeldungen an die vorhergehenden Stufen erfolgt. Sie schließt in der Regel eine im Rahmen der Continuous Integration ablaufende Einfügung von Arbeitsleistungen der Entwickler ein, die in Form von Nightly Builds in kurzen Intervallen in das fertige Produkt einfließen und eine nahezu unverzügliche Fehlerkontrolle erlauben.

Welche Aufgaben umfasst kontinuierliche Auslieferung?

Die kontinuierliche Auslieferung ist der zweite Schritt nach der Continuous Integration und dient dem Zweck, eine Software engmaschig und unterbrechungsfrei auf die Qualität zu prüfen und zu optimieren. Sie beschäftigt sich nicht mit der eigentlichen Entwicklung etwa durch das Schreiben von Code, sondern stellt vielmehr ein Verfahren zu einer effizienten und umfassenden Qualitätskontrolle während der Entstehung und der Weiterentwicklung dar. Um ihr Ziel zu erreichen, befinden sich die Projekte in einer Zwischenphase, der Continuous Delivery Pipeline, in der sie sowohl manuell wie automatisiert durch geeignete Tools geprüft wird. Die Aufgaben bestehen in mehreren Schritten, die in chronologischer Reihenfolge oder soweit möglich parallel durchlaufen werden:

  • Änderungen oder Erweiterungen im Code im Zuge der Continuous Integration
  • Prüfung der Version, Kompilierung und Erstellung von ausführbaren Bundles wie Nightly Builds oder Beta-Versionen (Commit Stage)
  • Automatisierte Tests auf Performance, Stabilität, Integration, Funktionalität und Systemkompatibilität (Acceptance Test Stage)
  • Übermittlung von Protokollen der letzten Stage, Korrektur von Fehlern und Beseitigung von Bugs (Feedback Stage)
  • Manuelle Tests in einer oder mehreren Umgebungen und Kontrolle einzelner relevanter Komponenten (Manual Test Stage)
  • Kontinuierliche Auslieferung über eigene oder fremde Infrastruktur (Delivery Stage)

Die Auslieferung erfolgt über unterschiedliche Wege und in variierendem Umfang zum Beispiel in Form von physischen Datenträgern oder als öffentlicher oder geschützter Download für Gruppen wie Kunden und Entwickler. Eine alternative und weitergehende Methode stellt das Continuous Deployment dar, das bevorzugt für große oder sicherheitskritische Anwendungen zum Einsatz kommt. Die Aufgaben der kontinuierlichen Auslieferung schließen einzelne Bereiche der Continuous Integration ein, erweitern dieses jedoch um einen zusätzlichen Aspekt, der die Veröffentlichung (Release) der Produkte einschließt.

Was steckt hinter Continuous Deployment?

Obwohl in Veröffentlichungen außerhalb der Fachpresse und im allgemeinen Sprachgebrauch mitunter keine konkrete Unterscheidung zwischen Continuous Delivery und Continuous Deployment gemacht wird, besteht technisch ein erheblicher Unterschied. Bei Continuos Deployment geht die Entwicklung einen weiteren Schritt und automatisiert neben der Integration und dem Testen von Code ebenfalls die kontinuierliche Auslieferung - es stellt somit einen Teilbereich der Continuous Delivery dar, der eine optionale Erweiterung des Prozesses bildet und unter anderem die Sicherheit erhöht, indem Updates für die Verbesserung von Performance oder Funktionalität sowie das Schließen von Sicherheitslücken auf produktiven Systemen zeitnah installiert werden. Der Vertrieb erfolgt über unterschiedliche Wege wie zum Beispiel automatischen Updates, die entweder über eigene Server oder in Form einer spezialisierten Infrastruktur as a Service (IaaS) erfolgt. Mittlerweile existieren darüber hinaus zunehmend Plattformen wie zum Beispiel GitLab, die Continuous Deployment als Teil ihres Konzepts explizit mit Continuous Integration und Continuous Delivery verbinden. Darüber hinaus existieren zunehmend Anbieter, die CI/CD gemeinsam mit kompletten Entwicklungsumgebungen als Software as a Service (SaaS) offerieren.

Welche Vorteile weist die kontinuierliche Auslieferung auf?

Durch die Kombination aus Continuous Integration und kontinuierliche Auslieferung werden nahezu alle wichtigen Schritte bei der Entwicklung von Software miteinander verknüpft und der gesamte Prozess zyklisch statt linear gestaltet. Daraus ergeben sich zahlreiche Vorteile, von denen sowohl die beteiligten Entwickler wie die Kunden profitieren:

  • Schnelle Lokalisierung von Fehlern im Code erleichtert Debugging und verhindert Fehlentwicklungen
  • Permanente und automatisierte Tests beschleunigen Entwicklung und reduzieren Kosten
  • Höhere Effizienz durch Verzicht auf manuelle Builds und Releases
  • Direktes und rasches Feedback verbessert die Arbeit der Entwickler und weist auf individuelle Schwächen hin
  • Schnellere, häufigere und qualitativ hochwertigere Veröffentlichungen für die Kunden
  • Vollautomatisierte Installation auf produktiven Endsystemen durch Continuous Deployment
  • Konzentration aller Ressourcen auf wesentliche Prozesse vermeidet Leerlauf und Mehrarbeit

Wegen der zahlreichen Vorteile gehen immer mehr Unternehmen dazu über, bei ihren Vorhaben konsequent auf CI/CD zu setzen und die entsprechenden Verfahren zu implementieren. In der Praxis bedeutet dies in den meisten Fällen eine höhere Investition zum Beispiel in Integrationsserver und Testumgebungen, die sich jedoch durch den besseren und schnelleren Workflow meist relativ rasch amortisieren. Einige Bedingungen für einen erfolgreichen Einsatz umfassen allerdings unter anderem eine passende Strukturierung der Teams und die Optimierung der automatisierten Tests - hier können sich Fehler schwerwiegend auf die Stabilität, Sicherheit, Performance und Zuverlässigkeit der Software auswirken.

Welche Tools helfen bei der Implementation von Continuous Delivery?

Der Aufbau einer vollständigen und optimierten Umgebung für Continuous Integration und kontinuierliche Verteilung erweist sich speziell für kleine und mittelständische Unternehmen (KMU) oft als aufwendig sowie zeit- und kostenintensiv. Unverzichtbar sind in jedem Fall professionalisierte Tools wie zum Beispiel die Webanwendung Jenkins, die sich durch eine übersichtliche und nutzerfreundliche Bedienung und Funktionalität auszeichnet. Eine Alternative zu dem Aufbau einer eigenen Infrastruktur besteht in vorgefertigten Lösungen durch professionelle Anbieter wie GitLab oder Codeship, die CI/CD in Form von SaaS oder IaaS als Dienstleistung zur Verfügung stellen. Bei ihnen haben Kunden die Wahl zwischen mehreren in der Funktionalität abgestuften Paketen oder einer individuell angepassten Umgebung, die je nach Serviceumfang des Betreibers ebenfalls spezialisierte Entwicklungsumgebungen als zentrale Instanz für die beteiligten Programmierer einschließen. Praktisch besteht allerdings ebenfalls die Möglichkeit, bei einem entsprechenden Know-how und Kapazitäten auf einem leistungsstarken virtuellen Server, Cloud Server oder dedizierten Server eine eigene individualisierte Plattform aufzubauen, die sich entweder für ein einzelnes Projekt oder als dauerhafte Umgebung eignet. So lässt sich zum Beispiel GitLab als quelloffene Software kostenfrei und ohne Einschränkungen bei Nutzerzahl und Funktionalität auf einer selbst verwalteten Infrastruktur oder auf Managed Server installieren.

Foto: Gerd Altmann auf Pixabay

Schreibe einen Kommentar



Weitere Webhoster


Weitere interessante Artikel

Was ist React und was sind die Vorteile

Wir erklären euch was React ist und wie ihr es bei euren Webprojekten einsetzen könnt.

Was ist vue.js und was sind seine Vorteile

Wir zeigen dir wo der Einsatz des JavaScript Tools vue.js seine Vorteile hat.

Angular vs. React vs. vue.js - was ist das beste Framework für Javascript?

Angular vs. React vs. vue.js - Wir zeigen euch was das beste Framework für Javascript für euer nächstes Projekt ist.

Was ist HTML 5 und welche Vorteile bietet es?

Wir zeigen euch alles Wissenswerte über HTML5 und wie ihr es am besten für euer neues Projekt nutzt.

Was ist Continuous Integration und was sind die Vorteile?

Wir zeigen euch was CI ist und welche Vorteile ihr damit bei eurem Webprojekt in Zukunft haben könnt.

Zend Framework - Wie funktioniert das Werkzeug für PHP Programmierung?

Das Zend Framework - wir zeigen euch die Vor- und Nachteile des PHP Frameworks.

Webhoster im Fokus Anzeige
Offene IT-Stellen
IT-Systemadminist...
IP-Projects GmbH & Co. KG
Aktuelle Ausschreibungen
Mehrere VPS + Exc...
noch 13 Tage und 3 Stunden
Suche .io Domain
Vor kurzem Beendet
Webspace, externe...
Vor kurzem Beendet
Domain Reselling,...
Vor kurzem Beendet
Neueste Bewertungen
Amos hat manitu bewertet
Christine hat Millennium Arts ISP bewertet
Hans-Gunter H. hat STRATO AG bewertet
Sonja K. hat Cloud86 bewertet
Thomas B. hat FastHP.de bewertet
Andreas A. hat Febas bewertet
Franz J. S. hat lima-city bewertet
Nikolaj hat DomainFactory bewertet
Eren R. hat IONOS bewertet
Rüdiger B. hat Hostinger bewertet
Cem K. hat STRATO AG bewertet
Alexander S. hat KernelHost bewertet
Matthias M. hat webgo bewertet
Philipp hat DomainFactory bewertet
Ralf W. hat LA Webhosting bewertet
Thomas R. hat RockingHoster Deutschland GmbH bewertet
Marvin H. hat Contabo GmbH bewertet
Silvio I. hat netcup bewertet
Maik hat Rainbow-Web.com bewertet
Cristiano hat SiteGround bewertet

Wir konnten bereits Hunderttausenden Webmastern helfen den passenden Hosting-Anbieter zu finden.
Über hosttest

Im Jahr 2006 riefen wir hosttest ins Leben, um den Webhosting Markt im DACH-Raum transparenter zu machen. Mit derzeit über 400 Webhostern und über 10.000 Angeboten bieten wir dir die beste Grundlage, den für dich passenden Anbieter für Hosting-Leistungen zu finden.

Seit 2015 küren wir zudem alljährlich unsere Webhoster des Jahres und würden uns in Zukunft auch über deine Stimme freuen.
Mehr über uns...