Der Erfolg von Unternehmen hängt zunehmend davon ab, wie sie Applikationen konzipieren, erstellen und nutzen. Dabei setzt die IT verstärkt Entwicklungs-Tools wie Container ein, um Cloud-native Anwendungen zu konzipieren, die konsistent in einer Cloud-Infrastruktur betrieben werden können.
Doch welche Container-Plattform ist für ein Unternehmen am besten geeignet? Erica Langhi, EMEA Senior Solutions Architect bei Red Hat, gibt Tipps zur Auswahl einer Container-Plattform und zur Container-Orchestrierung.
Die effiziente Umsetzung einer Cloud-nativen Entwicklungsstrategie kann Unternehmen einen erheblichen Wettbewerbsvorteil bringen. Sie erhöht die Geschwindigkeit der Anwendungsentwicklung und steigert die Flexibilität bei der anforderungsspezifischen Anpassung von Applikationen, ohne dass größere Änderungen an der Infrastruktur erforderlich werden. Container sind eine wesentliche Komponente einer solchen Cloud-nativen Strategie. Damit ein Unternehmen das prinzipiell vorhandene Potenzial von Containern voll ausschöpfen kann, muss es die für seine Zwecke optimale Container-Plattform nutzen.
Auswahl des Betriebssystems
Die erste Entscheidung für den Betrieb von Containern betrifft die Wahl des Betriebssystems. Sie ist im Vergleich zu „traditionellen“ Umgebungen von großer Bedeutung. Container können zwar auch auf anderen Betriebssystemen laufen, aber Linux sollte die bevorzugte Wahl sein.
Dafür gibt es gute Gründe: Die Container selbst nutzen einige wichtige Linux-Funktionen wie Control Groups, Namespaces oder SELinux, um die enthaltenen Anwendungen auszuführen. Darüber hinaus wurde Kubernetes unter Verwendung von Linux-Konzepten entwickelt. Und die Orchestrierungslösung verwendet auch Linux-Tooling und APIs zur Verwaltung von Containern. Damit ist Linux das prädestinierte Betriebssystem für eine Container-Plattform.
Container-Orchestrierung
In der Diskussion rund um die Orchestrierung von Containern wird oft übersehen, was Kubernetes wirklich leistet. Kubernetes wird vielfach nur als eine Anwendung definiert, die Container ausführt. Eine nähere Betrachtung zeigt aber, dass Kubernetes ein Bundle von APIs und Dienstprogrammen für die Orchestrierung und das Ressourcenmanagement bereitstellt. Doch auch damit ist noch nicht alles vorhanden, was Anwender für eine Container-Plattform benötigen. Sie erfordert darüber hinaus folgende Komponenten: Container-Registry, Netzwerk, Storage, Protokollierung und Überwachung. Auch ein zugrunde liegendes Betriebssystem und eine Möglichkeit für die Integration von Continuous Integration (CI) und Continuous Delivery (CD) muss vorhanden sein.
Abhängig von den konkreten Anforderungen kann ein Unternehmen ein eigenes Orchestrierungswerkzeug entwickeln oder ein kommerzielles Framework nutzen. Letzteres kann viel Zeit und Ressourcen einsparen, die ansonsten für die Entwicklung und Wartung anfallen. Außerdem bietet ein kommerzielles Framework eine höhere Sicherheit, da komplexe Aufgaben wie Installation und Konfiguration optimiert sind. Nicht zuletzt stellt es Unternehmen auch Funktionen bereit, die sofort nutzbar sind. Zu den besonders nützlichen „Out of the Box“-Funktionen gehört die Cloud-Agnostik, die einen identischen Betrieb von Container-Plattformen bei verschiedenen Cloud-Anbietern ermöglicht.
Die 4 Cs der Containerplattformen
Jedes Unternehmen hat spezifische Anforderungen. Folglich gibt es auch nicht die ideale Container-Plattform für alle. Eine Möglichkeit für die Auswahl der jeweils besten Option bietet die Überprüfung der englischen „4 Cs“: Code, Customer, Cloud und Comprehensive.
Das erste C betrifft den Code: ein Unternehmen sollte überprüfen, in welcher Art und in welchem Umfang ein Container-Anbieter zur Code-Entwicklung beiträgt. Beim zweiten C geht es darum, ob es bereits Kunden gibt, die die Plattform nutzen. Das dritte C bezieht sich auf die Cloud und die Frage, bei welchem Cloud-Provider die Plattform überhaupt eingesetzt werden kann. Und schließlich sollte ein Unternehmen das vierte C unter die Lupe nehmen, also ob die Plattform umfassend ist und ein vollständiges Portfolio von Produkten und Lösungen bietet, das den Anforderungen von Entwicklern und Administratoren gleichermaßen gerecht wird.
Service-basierte Architektur, DevOps-Prozesse und API-basierte Kommunikation
Im Hinblick auf Cloud-native Strategien darf nicht vergessen werden, dass Container zwar eine wichtige Rolle spielen, aber nur ein entscheidendes Element sind. Drei weitere Komponenten sind von essenzieller Bedeutung: Service-basierte Architektur, DevOps-Prozesse und API-basierte Kommunikation.
Eine Service-basierte Architektur ermöglicht den Aufbau modularer, lose gekoppelter Dienste, die leicht aktualisiert, ersetzt und getestet werden können. Durch die DevOps-Automatisierung arbeiten Entwicklung und Betrieb mit kollaborativen und vereinheitlichten Prozessen und Praktiken. Und mittels der API-basierten Kommunikation werden Prozesse über klar definierte Schnittstellen über das Netzwerk miteinander verbunden.
Die Art und Weise der Nutzung und Sicherung einer dieser Komponenten hat direkte Auswirkungen auf die Funktionsweise der anderen Elemente einer Cloud-nativen Strategie. Folglich darf keine getrennte Betrachtung dieser Komponenten erfolgen. Es muss stattdessen immer ein ganzheitlicher Ansatz gewählt werden, der Container, Service-basierte Architektur, DevOps-Prozesse und API-basierte Kommunikation gleichermaßen berücksichtigt und vor allem auch ihr Zusammenwirken fokussiert.
Cloud-native Zukunft
Sind die Grundvoraussetzungen für die erfolgreiche Einführung einer Container-Plattform geklärt, stellt sich noch die Frage nach der Zukunftssicherheit der Cloud-nativen Strategie. Dabei ist festzuhalten, dass eine solche Strategie immer als Prozess verstanden werden muss, der eine konstante Iteration und permanente Veränderung beinhaltet. Jede Cloud-native Strategie muss aktuelle und auch zukünftige Entwicklungen berücksichtigen und auf neue Herausforderungen vorbereitet sein. Wenn ein Unternehmen ein offenes Auge für neue Tools und Technologien hat, kann es nicht nur sicherstellen, dass es die bestmögliche Container-Plattform verwendet, sondern auch, dass die gesamte Cloud-native Strategie immer up to date ist und damit zukunftssicher bleibt.