kalafoto - Fotolia
Vorteile von Container-Bereitstellung und -Management kennen
Container und Kubernetes sind auf dem Weg, virtuelle Maschinen abzulösen oder in anderen Umgebungen zu ergänzen. Immer mehr Unternehmen entdecken die Vorteile dieser Technologie.
Am besten stellt man sich einen Container als eine besonders gut zu transportierende Einheit von Anwendungsfunktionen vor – eine Einheit, die nicht nur Anwendungscode enthält, sondern auch Middleware, Parameter und Konfigurationsdetails, die dessen Installation und Verwaltung erleichtern.
Unternehmen können Container auf verschiedene Art und Weise aufbewahren, und Systeme für Containermanagement kontrollieren ihre Installations- und Betriebszyklen. Durch ihre Unterstützung verschiedener Komponenten und ihre Flexibilität bei den Hosting-Optionen eignen sich Container besonders für die Entwicklung und Installation von Anwendungen.
Container bestimmen deshalb zusammengefasst die Zukunft für alle Personen und Institutionen, die Applikationen entwickeln oder anwenden. Die Adoption von Containern setzt sich sowohl in lokalen Rechenzentren als auch in der Public Cloud fort, da Unternehmen an der Optimierung ihrer Ressourcen und an der Vereinfachung ihrer Softwareinstallationen interessiert sind.
Es ist nie leicht für Unternehmen gewesen, Anwendungssoftware zu installieren und zu unterhalten, und die Explosion von Anwendungen, die aus vielen Teilen und Komponenten bestehen, hat diese Aufgaben sogar noch komplexer gemacht. Die Entwicklung von Containern kann diese Prozesse vereinfachen, indem Anwendungskomponenten vom Betriebssystem abstrahiert werden.
Ein näherer Blick auf die Containertechnologie
Container sind perfekte Partner für Microservices und andere Strategien, die Anwendungen in Komponenten aufbrechen. Wenn sich eine Applikation aus mehreren Komponenten zusammensetzt, hängt der geregelte Workflow zwischen diesen Komponenten oft von kompatiblen Versionen der Software und der Middleware ab.
Virtualisierung über Hypervisoren und virtuelle Maschinen bietet Unternehmen alles, was sie für eine Anwendungskomponente an einem Ort und für ihren Einsatz, wo immer er sinnvoll ist, brauchen. Aber weil jede VM ein komplettes Betriebssystem, eine Middleware und eine Anwendung enthält, ist es möglich, dass sich die Softwareversion in einer VM von der Version in anderen VMs unterscheidet: Dies führt zu einer Inkompatibilität, die den Workflow-Prozess behindert. Die Verdoppelung aller Komponenten verbraucht mehr Ressourcen als notwendig, da viele Anwendungen auf dem gleichen Server Kopien der gleichen Betriebsversion verwenden, anstatt nur eine miteinander zu teilen.
Auf der Hosting-Ebene bieten Container eine leichtgewichtige Alternative zu der Hypervisor-basierten Virtualisierung an: Alle auf einem Server installierten Containerkomponenten teilen sich ein gemeinsames Betriebssystem. Unternehmen können dagegen fünf bis zehn Mal so viele Container auf einem bestimmten Server unterbringen, als es mit VMs möglich wäre.
Theoretisch können Unternehmen jeder Größe eine Containerstrategie entwerfen und anwenden. Jedoch finden sich die meisten Anwendungsfälle in größeren Unternehmen, weil sich Container mehr für Umgebungen mit vielen Anwendungen und Servern eignen. Container erfordern Kenntnisse, wie man sie bei Teams findet, die virtuelle Umgebungen verwalten und automatisierte Installations-Tools verwenden – Kenntnisse, die mehr bei Fachleuten in größeren Unternehmen verbreitet sind.
Auf jeden Fall sind die Vorteile groß genug, so dass jedes Unternehmen mit erfahrenen Mitarbeitern, die sich bei verschiedenen Anwendungen auskennen, ernsthaft eine Containerinstallation in Erwägung ziehen sollte.
Bei Containern läuft alles unter einem Betriebssystem, aber die Anwendungen sind fast genauso isoliert voneinander, wie sie es bei VMs sind. Weil sich Container das Betriebssystem teilen, haben sie einen viel geringeren Overhead als VMs. Dies führt zu der bereits oben erwähnten fünf- bis zehnfach verbesserten Dichte pro Server. Zusätzlich unterstützen Container eine einfache Installation und De-Installation von Anwendungen, was die Betriebskosten senkt.
Alles in allem bieten Container eindeutige Vorteile gegenüber virtuellen Maschinen und Betriebssystemen mit Multitasking. Sie senken die Kosten wirkungsvoller als VMs und können die Security besser als Multitasking-Betriebssysteme erhöhen.
Docker ist die führende Containersoftware. Der Zweck von Tools wie Docker liegt darin, Komponenten für den Containerprozess vorzubereiten, sie mit den notwendigen Parametern zur Hosting-Unterstützung auszustatten und sie auf den geeigneten Plattformen oder Knoten einzurichten.
Container-Hosts, also Server mit entsprechender Unterstützung durch ein Betriebssystem, plus Container-Managementsoftware wie Docker entsprechen einem Rahmenwerk zum Containereinsatz. Aber der Ausdruck „Einsatz“ (engl. Deployment) deckt nur die Grundlagen ab. Wenn die Anwendung zusätzliche Fähigkeiten wie zum Beispiel Recovery von Hardwareausfällen, Ersatz von Komponenten bei einem neuen Release oder Skalierbarkeit bei erhöhter Last verlangt, wird eine Orchestrierung notwendig, um alle Prozesse umsetzen zu können.
Kubernetes, eine Containerorchestrierung, die ursprünglich von Google entwickelt wurde und nun von der Cloud Native Computing Foundation (CNCF) verwaltet wird, ist das bekannteste Tool aus der Familie des Containermanagement. Kubernetes bildet die Grundpfeiler von Containern und des Containermanagements: Alle gegenwärtigen und künftigen Containeranwender sollten sich auch als Kubernetes-Aspiranten sehen.
Im gleichen Sinne sollte auch das Container-Ökosystem als ein Kubernetes-Ökosystem betrachtet werden, das rund um skalierbare Orchestrierungsgrundlagen entwickelt wurde und das sich weiter ausdehnt, um den Anforderungen der Applikationen und der Anwender besser zu entsprechen.
Die Bedeutung von Managementsystemen für Container
Containermanagement – oder Orchestrierung – ermöglicht es Administratoren, Anwendungen mit einem Pool an Ressourcen in einer Public Cloud oder in einem Rechenzentrum einzurichten, ohne sich dabei manuell um die Details des Container-Hosting kümmern zu müssen. Diese Ressourcen-Pools werden bei Docker „Swarm“ und bei Kubernetes „Cluster“ genannt. Es sind auch Tools für Cluster-Management erhältlich, die Container umfassen, aber nicht darauf beschränkt sind. Dazu gehören Apache Mesos und CoreOS, aber Kubernetes steht heute im Mittelpunkt der Systeme für Containermanagement.
Die Käufer von IT-Ausrüstung sollten zuallererst verstehen, dass eine Strategie für Containerinstallationen Containersoftware wie zum Beispiel Docker und Container-Orchestrierung wie zum Beispiel Kubernetes zusammenbringt. Bei den Orchestrierungs-Tools finden sich die großen Differenzen zwischen Public Cloud und Rechenzentrum, da sie sich im Detail um Installation und Ressourcen der Container kümmern.
Die besonders populären Tools für Containerorchestrierung verfügen über Lösungen sowohl für Rechenzentren als auch für Public Clouds. Der Trend im heutigen Markt geht dahin, einen kompletten Satz an Tools von Containersoftware mit einem Containerökosystem zu kombinieren, um Containerprozesse zu vereinfachen. Diese Ökosysteme gibt es in der Public Cloud und als unabhängige Softwareangebote. Man sollte immer eines dieser Container-Ökosysteme überprüfen, bevor man sich entscheidet, einzelne Tools anzuschaffen.
Größere Public-Cloud-Provider wie AWS, Google und Microsoft bieten eine Bandbreite von Container-Hosting und von Management-Features an, die von der Installation von Containern auf IaaS-Angeboten bis zu Managed Container Services reichen, die Cloud Hosting und Container-Management miteinander verbinden. Für die mehr ausgearbeiteten und verwalteten Container-Services ist Kubernetes die universelle Schaltstelle.
Das Container- oder Kubernetes-Ökosystem wächst weiter in Sachen Tools, Verfeinerung und Komplexität, was ein wesentlicher Grund für die zunehmende Popularität von Managed Kubernetes Services auf Seiten der Cloud Provider ist. Neue Elemente, darunter solche, die sich auf Networking, Monitoring und Workflow-Management von „containerisierten“ Komponenten konzentrieren, werden fast täglich zu dem Ökosystem hinzugefügt. Die Service-Mesh-Technologie, die zu der zuletzt genannten Kategorie gehört, ist vielleicht das wichtigste Feature des neuen Containerökosystems – alle Anwender sollten sie sich genau ansehen.
Alle diese neuen Elemente machen es natürlich komplexer, ein Containerökosystem zusammenzustellen. Zugleich erhöht sich das Interesse an vorab zusammengestellten Ökosystemen und ihren Leistungen, wie sie von Cloud-Providern oder Softwareherstellern angeboten werden. Diese Ökosysteme im Paket umfassen auch Support – ein anderer wichtiger Gesichtspunkt angesichts der Tatsache, dass die meisten Container-Tools aus Open-Source-Quellen stammen und von sich aus keinen Support für die einzelnen Tools anbieten.
Container sind die Grundlage von modernem Anwendungsdesign und entsprechenden Entwicklungen, so dass es für alle IT-Teams und Unternehmen fast unmöglich sein wird, sich nicht für Container zu interessieren. Die meisten können davon ausgehen, dass in naher Zukunft alles auf Containerbasis laufen wird. Es stellt sich dann die Frage, wie man sich am besten darauf vorbereitet.