+49 6221 672 19-00 info@hdvisionsystems.com

Wer kennt es nicht? Eine Ihrer Softwares bietet ein Update an, Sie laden die neue Version herunter – und nichts geht mehr. Ein Anruf beim Support bestätigt: Ein unerkannter Softwarefehler hat die neue Version zum Erliegen gebracht. Das Entwicklerteam arbeite bereits unter Hochdruck an der Fehlerbehebung (Bugfix).  

Gerade in der automatisierten Produktion eine ärgerliche und teure Angelegenheit. Denn bis die Software erneut aktualisiert wurde, steht nicht selten die entsprechende Anlage komplett. Dass im zuständigen Software-Unternehmen derweil die Hölle los ist, um diesen kritischen Fehler schnellstmöglich zu beheben, hilft wenig. Der Frust ist hoch.

Mit Continuous Delivery wäre das nicht passiert!

 

Stabiler und schneller entwickeln mit Continuous Delivery

Entwickeln Anbieter ihre Software mittels Continuous Delivery, erhalten Anwender regelmäßig zuverlässig stabile Softwareversionen. Das Konzept entstammt der agilen Entwicklung und vereint Techniken, Werkzeuge und Automatisierungen, um die Softwareauslieferung (Deployment) dauerhaft zu verbessern. Richtig eingesetzt, ermöglicht dieser Prozess Kunden einen reibungsfreien Betrieb – während sich auf der anderen Seite der Entwicklungsaufwand gleichzeitig verringert.

Zentraler Bestandteil von Continuous Delivery sind einerseits eine häufigere Versionierung mit kleineren Entwicklungsschritten sowie andererseits die kontinuierliche und automatisierte Prüfung dieser Entwicklungen. Beide Schritte sind eng miteinander verknüpft, weshalb Continuous Delivery fast immer in DevOps-Teams eingesetzt wird. 

Gibt es mehr Updates mit dafür geringeren Neuerungen, sinkt das Risiko für inkompatible Änderungen. Gleichzeitig helfen die automatisierten Tests, jeden Kleinstschritt genauestens auf Funktion zu prüfen – und das Risiko weiter zu minimieren. Kunden erhalten damit eine einsatzsichere Software. Diese können sie je nach eigenem Bedarf jederzeit updaten.

Auf der Entwicklerseite profitiert das Team vor allem von der kontinuierlichen Versionierung: Continuous Delivery reduziert Inkompatibiltäten aufgrund unterschiedlicher Software-Bibliotheken, da es ein zentrales Repository (häufig GitHub) verwendet. Dafür ist lediglich ein Automation Server wie z.B. Jenkins notwendig. Er verwaltet die automatischen Tests sowie die Erstellung neuer Release-Versionen und steuert deren automatisierte Ausspielung. Je nach Konfiguration übernimmt der Automation Server das für alle Umgebungen:

  • Entwicklung,
  • Testen,
  • Integration,
  • Kundenanwendung.

Einmal aufgesetzt, testet das System Änderungen in der Applikation eigenständig und lädt diese bei Bestehen ebenfalls in das Repository. Falls nicht, geben die Tests Hinweise und Ursachen etwaiger Fehler für ein schnelleres Bugfixing an. Die eigentliche Entwicklung kann derweil weitergehen – zeitfressende Entwicklungspausen für Tests sind damit obsolet.

 

Ein Dreiklang kontinuierlicher Softwareentwicklung

process stages of continuous delivery

Entsprechend der Konfiguration des Automation Servers sind heute unterschiedliche Begriffe für Continuous Delivery gebräuchlich:

  1. Continuous Integration, wenn die serverseitige Automatisierung lediglich das Zusammenfügen verschiedener Applikationsbestandteile umfasst. CI hilft insbesondere, wenn mehrere Branches (Entwicklungszweige) gleichzeitig entwickelt werden.
  2. Continuous Delivery, wenn die Automatisierung bis zur internen Versionierung reicht. Das Operations-Team kann diese dann in einer Live-Produktivumgebung bereitstellen.
  3. Continuous Deployment, wenn der Automation Server auch die Ausspielung beim Kunden übernehmen kann. Dieser muss das überprüfte Update dann nur noch per Klick starten.

Nicht selten werden diese Begriffe auch synonym verwendet – wie viel Automatisierung in einer entsprechenden Entwicklungs-Pipeline steckt, ist daher häufig Definitionssache.

 

Nie wieder fehlerhafte Software

Continuous Delivery leistet einen wertvollen Beitrag zur Automatisierung der Softwareentwicklung. Richtig eingesetzt, entlastet das Konzept Entwickler sowohl bei der Vereinheitlichung unterschiedlicher Branches als auch im Testing und Bugfixing. Softwareanwender hingegen profitieren von einer schnelleren und zuverlässigeren Update-Politik. Totalausfälle in der Produktion aufgrund einer Softwareaktualisierung gehören damit der Vergangenheit an. Stattdessen haben Sie es selbst in der Hand, wann Sie die neueste – stabile! – Version Ihrer Software erhalten.

Share This