Continuous Delivery und Kubernetes: ein gutes Gespann

geschätzter Leseaufwand: 2 Minuten

Es ist fast wie im richtigen Leben: Anwender erwarten immer schneller neue Funktionen, aber auch das Ausmerzen von Fehlern, die sich in Anwendungen eingeschlichen haben, soll möglichst zeitnah geschehen. Das trifft auf lokale Applikationen genauso zu wie auf Cloud-Apps.

Allerdings, und das ist die Herausforderungen an der Stelle, sind diese kontinuierlichen Software-Aktualisierungen mit herkömmlichen Entwicklungsprozessen nicht zu bewerkstelligen. Daher bedienen sich immer mehr Software-Entwickler einer Methode , die sich Continuous Delivery nennt. Damit lassen sich neue und verbesserte Software-Funktionen sehr viel regelmäßiger bereit stellen. Und eben nicht nur einmal oder seltener im Quartal oder Monat. Damit kommt man den Wünschen der Anwender spürbar. Damit können auch unnötige oder selten genutzte Funktionen schneller aufgespürt werden.

Damit dies problemlos und zuverlässig geschehen kann, setzen immer mehr Software-Entwickler auf besagtes „Continuous Delivery“. Doch nicht nur das regelmäßige Bereitstellen spricht für diese Arbeitsweise, sondern auch die Fehlersuche wird damit erheblich verbessert und beschleunigt. Denn wenn zwischen zwei Updates eine relativ kurze Zeitspanne liegt, gelingt das Aufspüren eines Bugs deutlich schneller.

Empfehlung >>  Mit Surfshark für macOS, iOS, Android und Co. abhörsichere VPN-Verbindungen aufbauen

Voraussetzungen für den Einsatz von Continuous Delivery

Doch was ist für Continuous Delivery überhaupt erforderlich? Nun, neben der passenden Entwicklungsumgebung ist eine sogenannte Continuous Integration-Plattform notwendig, die eine Art automatisierte Pipeline darstellt. Hierfür wird oft und gerne Git und GitLab eingesetzt, da beide  Plattformen einen hohen Funktionsumfang aufweisen und relativ einfach zu handhaben sind.

Darüber hinaus sind Tools wie Docker oder Kubernetes für ein problemloses Rollback erforderlich. Falls also einmal ein Software-Update unvorhersehbare Schwierigkeiten bereitet und man den vorherigen Status Quo wiederherstellen will.

Daneben sind auch organisatorische Bedingungen für Continuous Delivery erforderlich. So müssen den Software-Entwicklern genügend Freiräume für diese Art des Arbeiten ermöglicht werden. Die gute Nachricht: Viele Unternehmen hierfür bereits vorbereitet. Daher nennen Software-Projekte kontinuierlich zu, in denen Continuous Delivery ein fester Bestandteil ist.

Continuous Delivery und Kubernetes, ein gutes Gespann

Jedes Software-Update, das mithilfe von Continuous Delivery erfolgt, benötigt eine funktionierende Automatisierungsmethode. Hierfür kommt oft Kubernetes zum Einsatz. Damit erfolgt das Einspielen neuer Funktionen geräuschlos und sehr sicher.

Empfehlung >>  Microservices-Architekturen und agile Software-Entwicklung - ein gutes Gespann

Denn während die neue Software-Version automatisch eingespielt wird, funktioniert die alte noch solange im Hintergrund, bis das Update erfolgreich abgeschlossen wurde. Damit bekommen die Anwender das Einspielen der neuer Software gar nicht mit. Das geht sogar soweit, dass zwei Versionen gleichzeitig verfügbar sind, was ein Höchstmaß an Verfügbarkeit sicherstellt. Und am Ende dieses Vorgangs werden sämtliche alten, nicht mehr benötigten Container vom Server entfernt – natürlich wieder vollautomatisch.

Praktisch an Kubernetes in diesem Kontext ist auch die Möglichkeit, neue Software-Versionen erst einmal nur einer fest definierten Anwenderschar bereitzustellen, weil diese in einem geschäftsunkritischen Bereich arbeiten. Sollte sich dann ein Fehler bemerkbar machen, lässt sich dieser beheben, bevor die neue Version in größerem Stil installiert wird. Dies geschieht ohne größeren Aufwand, da Kubernetes mithilfe einer einzigen Anweisung eingestellt wird.

Disclaimer: Diesen Beitrag habe ich originär für die x-cellent Technologies GmbH aus München für deren Blog verfasst.