Containerisierung
Die Containerisierung hat die moderne IT-Welt maßgeblich verändert. Während in den vergangenen Jahren vor allem monolitische Anwendung die IT geprägt haben, sind es in der jüngsten Vergangenheit vor allem sogenannte Microservices, welche eine immer wichtigere Rolle in der IT-Infrastruktur von Unternehmen einnehmen.
Gerade der Einsatz von verteilten Systemen hat dazu beigetragen, dass Anwendungen nicht mehr als Ganzes entwickelt und betrieben werden, sondern sich diese aus einer Vielzahl von vielen, unabhängigen Diensten und Komponenten zusammensetzen.
Der Vorteil liegt dabei auf der Hand. Dienste, welche auf die Microservice-Architektur setzen, können besser skalieren und Ausfälle einfacher kompensieren, da die einzelnen Mircoservices autark von einander betrieben und über feste Schnittstellen mit einander kommunizieren können, ohne dass bei einem Ausfall das ganze System in Mitleidenschaft gezogen wird. Anforderung wie Skalierbarkeit und Hochverfügbarkeit machen damit die Microservice-Architektur nicht nur für Global-Player wie Netflix, Amazon oder Google attraktiv, sondern auch für immer mehr große und mittelständische Unternehmen. In den vergangenen Jahren ist dadurch der Bedarf, eigene Dienste und Infrastrukturen auf die Microservice-Architektur umzustellen, enorm gestiegen, um auch von den Vorteilen dieser Architektur zu profitieren und den Anforderungen der Endkunden an Verfügbarkeit gerecht zu werden.
„Anforderung wie Skalierbarkeit und Hochverfügbarkeit machen damit die Microservice-Architektur nicht nur für Global-Player attraktiv, sondern auch für immer mehr große und mittelständische Unternehmen.”
Die Containerisierung spielt für die Umsetzung der Microservice-Architektur dabei eine entscheidene Rolle. Anwendungen oder Komponenten werden nicht mehr auf physischen oder virtuellen Servern betrieben, sondern in sogenannten Containern. Statt ein ganzes virtuelles Betriebssystem für eine einzelne Anwendung zur Verfügung zu stellen, werden nur die wichtigsten Bibliotheken und die Anwendung selbst in einem Containern ausgeführt. Was mit LXC- und Docker-Containern vor vielen Jahren begann, mündet heutzutage in komplexe Architekturen auf Basis von Technologien wie Kubernetes oder OpenShift.
Den Schritt in diese Richtung zu wagen oder sich mit solchen komplexen Architekturen auseinanderzusetzen, setzt einige Unternehmen vor große Herausforderungen. Auch die sich stetig verändernden Rahmenbedingungen und immer wieder neu aufkommenden Projekte in diesem Bereich, machen es Unternehmen und ihren Mitarbeitern schwer, mit dieser Entwicklung Schritt zu halten. Aus diesem Grund ist es wichtig, einen starken Partner wie die credativ an der Seite zu wissen, welche Kunden in der Vergangenheit bereits erfolgreich in mehreren Projekten unterstützen konnte. Dabei wurden eigene Anwendung auf eine Microservice-Architektur umzustellt oder ganze Infrastrukturen auf Basis der Technologien wie Kubernetes geschaffen.
Den Kunden kommt dabei nicht nur unser Verständnis über die Containerisierung, die benötigte Architektur und der Aufbau einer adequaten Infrastruktur für den jeweilig gewünschten Einsatzzweck zu Gute, sondern auch unser Verständnis für alle angrenzenden Themengebiete wie beispielsweise DevOps- oder Open-Source-Themen. Viele der eingesetzten Technologien im Containerisierungsumfeld setzen auf Open-Source-Technologien. Mit unser langjährigen Erfahrung mit diesen Projekten, unterstützen wir sie nicht nur mit der Containerisierung selbst, sondern auch mit vielen darauf aufbauenden Diensten.
Zusätzlich bilden sich unsere Kollegen durch den Besuch von Konferenzen oder Fachmessen stetig weiter, um mit den rassenten Änderungen Schritt zu halten. Mit diesem Wissen helfen wir unseren Kunden bei der Planung und Aufbau von Container-Plattformen, Anpassung und Integration von Build- sowie Deployment-Pipelines, führen in Workshops zusammen mit Kunden Reviews von Architekturen durch oder unterstützen Sie im Supportfall respektive beim Betrieb solcher Infrastrukturen.
Beispiele
Nachfolgend finden Sie zwei konkrete Beispiel aufgeführt, die Ihnen helfen sollen, einen besseren Einblick in unsere bisherigen Projekte zu erhalten:
Im Rahmen von Projekten haben unser Kollegen bereits erfolgreich kundenspezifische Anwendung, welche zuvor für den Betrieb auf physischen Servern konzipiert wurde, zusammen mit dem Kunden umgeplant und auf Container-Plattformen portiert. Dabei unterstützten unsere Kollegen die Entwickler des Kunden stets mit Wissen über etwaig benötigte Anpassungen und Anforderungen an die Applikationen, damit diese in der Lage sind die Anwendungen auf den Betrieb auf einer Container-Plattformen vorzubereiten und diesen zu ermöglichen.
Die Containerisierung der Anwendungen wird dabei vollständig von unseren Kollegen übernommen und in engen Austausch mit dem Kunden umgesetzt. Benötigte Build-Pipelines werden in Meetings abgesprochen und falls gewünscht in Eigenregie umgesetzt. Die Konzeptionierung, Planung und Umsetzung wird typischerweise dabei stets in korrespondierenden Dokumentations- und Ticketsystemen auf Seiten des Kunden protokolliert, um den Projektstatus offen und transparent mit den jeweiligen Verantwortlichen auf Kundenseite zu teilen.
Bei der Realisierung wird dabei stets auch darauf geachtet, die Konventionen und bereits vorhandenen Tools des Kunden wiederzuverwenden, um eine möglichst einheitliche Integration in die Bestandsinfrastruktur zu ermöglichen und nur wo es nötig ist, neue Technologien aufzunehmen. Diese Vorgehensweise minimiert den Bedarf an neuem Wissen und reduziert die Einarbeitungshürden für die Administratoren, die es ggf. betreiben müssen. Der Einsatz dieser neuen Technolgien wird stets im Einklang der Notwendigkeit, Willen des Einsatzes von State-of-the-Art-Technologien und Einarbeitungsdauer der Mitarbeiter gewählt. Die beste Container-Plattform nützt nur soviel, wie sie von den Mitarbeitern des Kunden sinnvoll eingesetzt, betrieben und ausgereizt werden kann.
Mit Technologien wie Cluster-API lassen sich im großen Stil Multi-Cluster-Umgebungen automatisiert erstellen und betreiben. Diese können auf unterschiedlichen Providern wie Proxmox, VMWare vSphere oder den Hyperscalern (z.B. AWS, Azure und GCP) zur Verfügung gestellt werden und unterstützen dabei auch die Aktualisierung der jeweiligen für die Multi-Cluster-Umgebung benötigten Komponenten ohne den Betrieb dieser zu beeinträchtigen und manuelle Schritte vorauszusetzen. Damit lässt sich beispielsweise auch unkompliziert Hochverfügbarkeit umsetzen.
Neben dem Cluster-API-Projekt existieren auch noch weitere Projekte, die z.B. auf Basis von Ansible und dem kubespray-Projekt solche Umgebungen automatisiert umsetzen. Der Einsatz dieser Projekte ermöglicht es bestehende Automatisierungslösungen für die Bereitstellung der Multi-Cluster-Umgebungen zu erweitern, ohne neue Technologien im Unternehmen vorauszusetzen. Das ist immer dann sinnvoll, wenn z.B. Ansible bereits in der Unternehmensinfrastruktur eingesetzt wird und damit den Aufwand bei den Mitarbeitern des Kunden reduziert werden kann. Zusätzlich hält es den neu zu erlernenden Technologie-Stack klein, wodurch Hürden zur Einführung im Unternehmen reduziert werden.
Unsere Mitarbeiter konnten hierbei in vorangegangenen Projekten bereits erfolgreich in Zusammenarbeit mit Kunden Multi-Cluster-Umgebungen konzeptionieren, aufbauen und betreiben. Sofern gewünscht, wurde auch darauf geachtet, die Automatisierungsrate möglichst hoch zu halten, um die Aufwände für den Aufbau und Betrieb dieser Multi-Cluster-Umgebungen zu minimieren. Nichtsdestotrotz wird dabei aber auch stets ein Augenmerk darauf gelegt, pragmatisch an die Umsetzung ranzugehen. Nicht immer lohnt sich der Aufwand alle Schritte zu automatisieren, gerade dann wenn bestimmte Schritte nicht wiederkehrend sind und nur einmalig umgesetzt werden müssen. Durch diese Rangehensweise sind solche Multi-Cluster-Umgebungen mittlerweile auch für kleine und mittelständige Unternehmen attraktiv geworden, da sich der Aufwand zur Umsetzung dieser in der Vergangenheit stetig reduziert hat. Gerade durch die Vorteile, die eine Microservice-Architektur für die eigene IT-Infrastruktur mitbringt, ist zusätzlich der Bedarf zur Umsetzung dieser Umgebung in den vergangenen Jahren im Unternehmensumfeld stetig gestiegen.