Continuous Delivery ermöglicht es, Software mitten in der Entwicklung und somit früher an den Kunden zu liefern. Was sind die wesentlichen Gedanken hinter dem Konzept? Welche Chancen und welche Risiken birgt es? Im folgenden Artikel finden Sie Hintergrundinformationen zu dem innovativen IT-Modell und erfahren mehr über Continuous Integration und Continuous Deployment.

Was ist Continuos Delivery?

Übersetzt bedeutet Continuous Delivery „kontinuierliche Lieferung“. Normalerweise besteht die Erstellung von Software aus vier Phasen: Entwicklung, Lieferung, Feedback und Qualitätsmanagement.

Diese Reihe wird im Rahmen von Continuous Delivery bereits in der Entwicklung mehrfach durchlaufen. Somit sind die einzelnen Phasen nicht endgültig, sondern werden im Prozess immer wieder verändert. Entwickler können so Änderungen auf Basis von Kunden-Feedback mitten in der Programmierung von Software vornehmen und diese automatisiert an Nutzer liefern.

Dabei entsteht eine Schleife, die auch als „Continuous Delivery Pipeline“ bezeichnet wird. In dieser Pipeline werden sowohl automatisierte Tests als auch manuelle Tests durchgeführt.

Das ist der Zweck von Continuous Delivery

Hier erschließt sich bereits auf den ersten Blick der Vorteil gegenüber dem klassischen Development, also der Entwicklung von Software. Denn so lassen sich Teile der Programme bereits mitten in der Entstehung ausliefern und prüfen.

Gleichzeitig können Entwickler am Code weiterarbeiten und erhalten während der Continuous Delivery Pipeline konstantes Feedback zu den programmierten Tools. Kunden können so die Programme früher nutzen und auf die Zwischenstände zugreifen.

Abgrenzung von Continuous Integration und Continuous Deployment

Continuous Delivery (üblicherweise als CD abgekürzt) und Continuous Deployment sind Teile der Continuous Integration. Oft werden die Begriffe identisch verwendet, haben aber trotzdem feine Unterschiede. Aus diesem Grund werfen wir nun einen Blick auf die begriffliche Abgrenzung:

Mit Continuous Integration (CI) ist der Prozess gemeint, bei der einzelne Komponenten der Software zu einer gesamten Anwendung zusammengesetzt werden und dabei eine möglichst hohe Qualität aufweisen. Um so viele Fehler wie möglich auszuschließen, werden dabei meist automatisierte Tests durchgeführt und Messwerte für die Überprüfung der Qualität eingesetzt.

Während Continuous Integration den Automatisierungsprozess selbst meint, ist Continuous Deployment eine Weiterentwicklung, die eine automatische Freigabe von Änderungen der Developer erlaubt.

Sicherheit ab dem ersten Tag

In Zeiten zunehmender Vernetzung, vermehrter Cyber-Angriffe und strengeren Datenschutz-Gesetzen wird der Fokus auf die Datensicherheit immer größer. Aus diesem Grund setzt TeamDrive zusätzlich auf „Security by Design„.

Security by Design bedeutet, dass Anforderungen zur Sicherheit sowohl bei Software als auch Hardware von Beginn an mit bedacht werden. Mit Design ist dabei die Entwicklung der Software-Architektur bzw. des gesamten Systems gemeint, das zum Beispiel eine Cloud-Anwendung sein kann.

Security by Design ist ein Teil von Continuous Delivery. Das bedeutet für den Softwareentwicklungsprozess, dass die Sicherheitsaspekte von Anfang an berücksichtigt und kontinuierlich weiterentwickelt werden müssen. Diese werden als explizierte Anforderungen definiert. Ziel ist es, die Software vom ersten Tag der Entwicklung vor möglichen Angriffen zu schützen.

Was sind die Vorteile von Continuous Delivery?

Das Hauptargument von Continuous Delivery besteht darin, dass Kunden früher an die Programme und Apps gelangen, als es in der klassischen Entwicklung möglich ist. Denn Programmierer versorgen die Nutzer nicht erst nach der endgültigen Veröffentlichung mit Updates und Patches oder beheben Bugs, sondern nehmen Codeänderungen und Anpassungen bereits zwischenzeitlich vor.

So können Entwickler effizienter arbeiten und müssen sich nicht nur auf interne Beta-Testings berufen. Außerdem gibt das Testen von Zwischenständen Programmieren wertvolle Hinweise, wie zielgruppengerecht die Programme sind und welche Funktionen sich Kunden wünschen.

Weitere Vorteile von Continuous Delivery sind:

  • geringere Kosten als bei klassischen Testkonzepten mit Alpha- und Betatests

  • Mögliche Fehler im Code lassen sich entweder manuell oder automatisch schon früh im Prozess finden und beheben.

  • Die Deployment Schleife bzw. Continuous Delivery Pipeline vereinfacht die Fehlersuche im programmierten Code.

  • Agile Systeme in der Kombination mit Continuous Delivery und entsprechenden Automatisierungen erlauben eine Erarbeitung und Implementierung sehr hochwertiger Software.

  • Der sonst bei Anpassungen der Testumgebungen oder Ergänzung von Features anfallende Druck auf Entwickler sinkt.

  • Dies wiederum steigert die Motivation während der Arbeit.

Herausforderungen und Probleme von Continuous Delivery

Eine sehr große Herausforderung liegt im Programmieren der automatisierten Tests, die für Continuous Delivery notwendig sind. Kleine Änderungen inmitten der Deployment Pipeline können bereits größere Fehler verursachen. Diese sind im schlimmsten Fall enorm zeitraubend sind oder erhöhen sogar die Kosten des jeweiligen Projektes im Unternehmen. Daher müssen die für die Pipeline nötigen automatisierten Qualitätstests letztlich perfekt funktionieren. Nur so lassen sich größere Schäden vermeiden.

Grundsätzlich erwartet der Kunde regelmäßige und schnelle Updates. Gerade in Zeiten hoher Projektlast oder Urlaubsphasen können die Systeme also nur schlecht pausiert werden.

Bei Continuous Delivery ist zudem der Kunde selbst gefragt. Er sollte eine gewisse Offenheit und Bereitschaft mitbringen, Programme in Zwischenstadien zu verwenden. Außerdem ist es sinnvoll, wenn dieser den Entwicklern bereitwillig Rückmeldung gibt.

Grundvoraussetzung für den Aufbau eines erfolgreichen Continuos-Delivery-Systems ist eine sehr gute Teamarbeit. Wenn sich die Teams gemeinsam mit Kunden gut absprechen, steht einem fortlaufenden, zeitsparenden und kostengünstigen Continuous Deployment kaum etwas im Wege.

Im Gegensatz zur klassischen Entwicklung einer Software leidet die Qualität also nicht, sondern lässt sich bei optimalen Umgebungsbedingungen schnell verbessern.