Kolumne für Netzwerk Südbaden, Ausgabe Oktober 2020
Ob vernetzte Produktion, E-Commerce oder moderne Mobilität – Software ist der Motor der Innovationsfähigkeit von Unternehmen und maßgeblich an der Transformation zum digitalen Player beteiligt.
In den letzten Jahren hat sich die Art und Weise, wie Software entwickelt, betrieben und gemanagt wird, wesentlich verändert. Es geht hierbei nicht allein um einzelne Konzepte zur Einführung agiler Softwareentwicklung, sondern um die Verbindung verschiedener Methoden und Technologien, die das Unternehmen in die Lage versetzen, eine hohe Flexibilität und Dynamik über den ganzen Software-Lifecycle hinweg zu realisieren. Containerisierung spielt in diesem Zusammenhang eine wesentliche Rolle.
Durch Containerisierung ist es möglich, sogenannte „Microservices“, mehrere voneinander unabhängige und in sich selbst gekapselte Programme, modular zu entwickeln, miteinander zu vernetzen, und so die notwendige Agilität für Innovationen zu schaffen. Dabei werden die bisher existierenden Software-Monolithen in kleinere, voneinander unabhängige Einheiten, zerlegt, die wesentlich flexibler weiterentwickelt, gekoppelt und schneller ausgeliefert werden können.
Containerisierung ist mittlerweile die favorisierte Lösung für den Betrieb einer Microservice-basierten Architektur. Die Container entsprechen Bausteinen, die den Softwarecode, dazugehörige Dateien, Konfigurationen und Bibliotheken beinhalten. Alles, was zum erfolgreichen Betrieb einer Software notwendig ist, wird innerhalb eines Containers archiviert. Dadurch werden Anwendungen unabhängiger von ihrer Systemumgebung und die Softwareentwickler können den Fokus ausschließlich auf die Weiterentwicklung des eigentlichen Softwarecodes legen.
Was sich auf den ersten Blick sehr kompliziert anhört, bringt Struktur und Geschwindigkeit in die Softwareentwicklung. Das Risiko, dass eine (monolithische) Software nicht mehr weiterentwickelt werden kann, nur weil der Kollege, der ursprünglich die Software programmiert hatte, nicht mehr verfügbar ist, wird über die neue Art der Softwareentwicklung nahezu ausgeschaltet.
Die Komplexität der neuen Welt wird über eine separate Steuerungsebene, auch „Orchestrierung“ genannt, in Zaum gehalten. Für diese Orchestrierung setzt man heutzutage gerne „Kubernetes“ ein. Dieses von Google als Open-Source-Software entwickelte System für die Bereitstellung, Verwaltung und Überwachung von Container-Umgebungen gilt derzeit als Standard. Durch den Einsatz von Kubernetes wird die Steuerung von Ressourcen und die Verfügbarkeit der Anwendungen gewährleistet – und somit das Potenzial der Containerisierung voll ausgeschöpft.
Die vielen Business-Vorteile, wie zum Beispiel die schnelle Bereitstellung neuer Software-Funktionen (beschleunigtes Time-to-Market) oder Kostensenkung durch das automatische Ausrollen neuer Softwareversionen, können nur dann erreicht werden, wenn die Softwareentwickler Expertise auf- und die Art der Softwareentwicklung umbauen.
Angst vor hohen Kosten für den Know How-Aufbau oder mangelnde Personalressourcen sollten der Containerisierung nicht im Wege stehen. Die Unterstützung durch externe, darauf spezialisierte DEV-OPS Dienstleister, die zwischen Entwicklung (DEV) und Betrieb (OPS) stehen, und somit beide Welten perfekt kennen, hat sich in der Praxis bewährt.
Der Autor
Julian Sayer (53) ist Vorstand für Vertrieb, Marketing und Entwicklung beim Freiburger IT-Hoster und Cloud Solution Provider Continum AG. Das Unternehmen versteht sich als „Anwalt“ des Kunden und unterstützt Unternehmen auf dem sicheren Weg in die Cloud.