Continuous Delivery (CD) in der Softwareentwicklung
Durch Implementierung einer Continuous Delivery Pipeline werden Softwareprodukte automatisch nach jeder Änderung in einer neuen Version veröffentlicht, dies kann mehrmals täglich der Fall sein.
Im Rahmen der fortschreitenden Digitalisierung wird es immer wichtiger Innovationszyklen zu verkürzen und damit neue Versionen von Produkten in kürzeren Abständen an den Markt zu bringen.
Vorausgesetzt ist, dass die Entwicklung des Produkts bzw. der Services einen hohen Grad an automatischen Tests beinhaltet, und die Entwicklungspipeline sehr robust ist, da es nicht möglich ist alle Änderungen durch manuelle Tests zu überprüfen.
Abgrenzung zu Continuous Deployment und Continuous Integration
Continuous Deployment, Delivery und Integration sind drei unterschiedliche „Ausbaustufen“ ein und derselben Idee: Der kontinuierlichen Weiterentwicklung von Software.
Continuous Delivery stellt dabei die höchste Ausbaustufe dar, denn hier werden alle Änderungen automatisch bis zum Kunden hin ausgeliefert. Es gibt also keine klassischen Releases.
Bei Continuous Deployment werden Änderungen zwar automatisch auf einem Server deployed, aber noch nicht an den Kunden ausgeliefert. Die Änderungen können auf diesem Server noch manuell getestet werden um dann in Form eines Releases an den Kunden übergeben zu werden.
Continuous Integration ist die schwächste Form der kontinuierlichen Entwicklung. Bei ihr werden alle Änderungen automatisch gebaut und getestet, es findet aber kein Deployment auf einem Server statt.
Continuous Delivery mit dem Cloudogu EcoSystem
Das Cloudogu EcoSystem unterstützt eine komplette Continuous Integration Pipeline. Um diese zu einer Continuous Delivery Pipeline auszubauen muss lediglich ein entsprechendes Deployment-Ziel konfiguriert werden. Die Grundvoraussetzung dafür ist, dass der Kunde Zugriff auf das Deployment-Ziel hat.
Im Cloudogu EcoSystem wird Jenkins als Build-Server benutzt. Eine beispielhafte Implementierung einer Continuous Delivery Pipeline wird in unserem Blog beschrieben: Von den Grundlagen der Jenkins Pipeline, über die Optimierung der Performance und hilfreichen Tools hin zur kompletten Pipeline.