9.25 Min. LesezeitPublisher Advisory Services

Container-Technologie und VMware Tanzu einfach erklärt.

SoftwareOne blog editorial team
SoftwareOne RedaktionsteamTrend Scouts
publisher-advisory-unsplash-on7rzpz6n9y-blog-hero

Container-Technologie und VMware Tanzu ganz, ganz einfach erklärt.

Entwicklungs- und Betriebsteams lieben es: Container, besonders mit Tanzu von VMware. Diese bieten Ihnen die Möglichkeit, Anwendungen überall, unkompliziert und unabhängig von Ihrer Zielumgebung bereitzustellen und zu verwalten. Aber was genau kann man sich als Laie oder Einsteiger darunter vorstellen? Was ist denn mit VMware Tanzu so viel einfacher? Und was sind überhaupt Container? Ein Versuch, dieses komplexe Thema mit einfachen Worten zu erklären…

Um Tanzu Container-Technologie zu verstehen, sollte man sich zunächst mit den Basics vertraut machen, die zu dem umfangreichen Lösungsportfolio von VMware Tanzu gehören. Die wichtigsten Grundbegriffe sind Container, Docker und Kubernetes.

Container: Was haben Applikations-Container mit Schiffscontainern gemeinsam?

Der Begriff „Container“ ist, wie man sich vielleicht denken kann, nicht ganz zufällig gewählt. Tatsächlich haben IT-Applikations-Container viel mit Schiffscontainern gemeinsam. Wie auf einem Schiffsverladeplatz ist eine Gruppe von Arbeitern verantwortlich für das Befüllen eines Containers, eine andere für den Transport und das Handling des Containers. In der IT ist es ähnlich: Auch hier sind auf der einen Seite Developer und Admins für den Inhalt der Container-Applikation verantwortlich und auf der anderen Seite Infrastruktur-Admins für die Hülle, also den Container selber.

container-tanzu-einfach-1

Vor der Einführung von Schiffscontainern wurde Fracht in unregelmäßig geformten Holzkisten ein- und ausgeladen. Wie ineffizient das war, kann man sich aus heutiger Sicht gut vorstellen. Das alles änderte sich schlagartig, bis er kam: Malcom McLean. Der ehemalige Lastwagenfahrer entwickelte 1956 den Standardcontainer und gilt damit als Erfinder des mulitmodalen Verkehrs. Dank ihm sanken die Verladekosten von 5 Dollar pro Tonne auf nur wenige Cent pro Tonne.

Die Einführung von standardisierten Containern bedeutet für die Logistik also ein effizienteres Management und Handling, wodurch Kosten deutlich reduziert werden. Und genau so ist es auch in der IT. Applikations-Container, die von extern kommen, sind quasi schon passend, sodass sie ohne Probleme auf der eigenen oder fremder Hardware betrieben werden können. Dadurch kann man sie einfach entwickeln (oder extern entwickeln lassen), ohne das es zu Reibungen beim späteren Betrieb kommt. Das spart immens Zeit und Kosten.

Was genau ist ein Container?

Eine kurze Definition

Ein Container ist ein Prozess, der von Tarballs aus Ihrer Anwendung und deren Abhängigkeiten extrahiert wird. Er ist in Namespaces verankert, was für eine erfolgreiche Isolation sorgt. Und er wird von cgroups gesteuert, was uns beim Management der Ressourcenauslastung hilft.

Es folgen noch mehr Fachbegriffe, auf die wir im Folgenden genauer eingehen.

Ein Container hat sehr ähnliche Eigenschaften wie eine Virtuelle Machine (VM). Ein Vergleich gestaltet sich dennoch als schwierig, da beide oftmals miteinander agieren. Container sind ein standardisierter Weg um Anwendungen, deren Einstellungen und Abhängigkeiten, zusammen in ein logisches Objekt zu packen. Man spricht hierbei auch von Standard Packaging: Die Paketierung sorgt für eine logische Trennung zwischen Anwendungen. Die Isolation zwischen den Anwendungen sorgt für Effizienz, da viele Anwendungen auf einem einzigen Host ausgeführt werden können. Container sind also „portable“, weil sie zusammen als eine Einheit paketiert wurden und so überall lauffähig sind. Ein Container Runtime Engine kann in einer VM, auf einem Hypervisor OS oder auch auf BareMetal laufen!

Container existieren eigentlich nicht wirklich. Sie nutzen Namespaces und Kontrollgruppen, bekannt als cgroups. Das sind Linux-Kernel Funktionen. Namespaces gestatten es dem Betriebssystem einzuschränken, was es „sehen“ kann, z.B. andere Prozesse, das Dateisystem und mehr. Dabei sind Datei/Filesystem, Isolation und Prozessisolation nur einige Einschränkungen von vielen, aber wohl die wichtigsten. Cgroups dagegen sind Ressourcen, Einschränkungen von CPU,Memory, I/O.

Zusammengefasst haben Container also folgende drei wichtigen Vorteile:

  1. Schnelleres Deployment mit Container als mit VMs
  2. Mehr Sicherheit durch Hardening, weniger Patches
  3. Effizienteres Mangement durch Kubernetes/Tanzu

Was ist ein Container aus IT Sicht?

Bei Containern handelt es sich um eine Virtualisierung auf Betriebssystemebene. Sie leben oberhalb des Betriebssystem. Container sind voneinander isoliert und bündeln ihre eigene Software, Bibliotheken und Konfigurationsdateien. Sie werden meist durch automatisierte Prozesse bereit gestellt und durch IT Administratoren verwaltet.

container-tanzu-einfach-2

Und was ist ein Docker?

Im Jahre 2014 war Docker das Unternehmen, welches den Einsatz von Containern populär machte und den Aufstieg von Containern als skalierbares, tragbares und effizientes Mittel zur Ausführung von Workloads sah. Docker-Container stellen abgekapselte Einheiten dar, die unabhängig voneinander ausgeführt werden können, egal wo sie sich gerade befinden. Vergleichen wir sie mit Frachtcontainern, in denen ein oder mehrere „Männchen“ sitzen und arbeiten. Diese Männchen sind in Wirklichkeit Applikationen wie beispielsweise php, mysql oder Apache und sitzen gemeinsam in einem Container (Beispiel; siehe Abbildung). Für die Männchen macht es keinen Unterschied, ob der Frachtcontainer nun in München, New York oder Sydney steht, da dieser von innen immer gleich aussieht. Entsprechend herrschen dieselben Bedingungen. Dasselbe gilt auch für die Applikationen im Software-Container.

Was ist der Unterschied zwischen Docker und Kubernetes? Hier möchte ich auf eine hervorragende Erklärung und Zusammenfassung von Geekflare verweisen, um hier nicht den Rahmen zu sprengen. Was Sie auf jeden Fall im Hinterkopf behalten sollten: Die Docker-Datei enthält eine Reihe von Anweisungen für die Erstellung und Ausführung Ihres Containers. Dieser läuft dann als isolierter Prozess mit den notwendigen Variablen und Abhängigkeiten.

Was wird wofür eingesetzt?

Docker: Docker ist am besten geeignet, wenn ein Benutzer eine komplexe Anwendung hat, die das Verpacken eines Pakets und die Konfiguration in einen tragbaren Container erfordert.

Kubernetes: Kubernetes ist gut, wenn Sie sicherstellen müssen, dass Ihre Anwendung so ausgeführt wird, wie sie sein sollte. Falls ein Container nicht reagiert oder ausfällt, sollte er sich selbst „heilen“ und einen neuen Container starten. Kubernetes bietes somit ein zusätzliche „Selbstheilung“ und vereinfachte Tools für das Container Management.

Docker vs. Kubernetes

Docker und Kubernetes sind unterschiedliche Technologien. Es ist also etwas unfair, diese beiden zu vergleichen oder zu fragen, welcher Priorität eingeräumt werden sollte. Diese beiden sind keine direkten Rivalen. Sie sind jedoch verwandt! Docker ist eine Containerplattform, während Kubernetes ein Container Orchestrator für Containerisierungsplattformen wie Docker ist.

Kubernetes ist ein Containerverwaltungstool, dass die Bereitstellung automatisiert. Es handelt sich um eine tragbare Open-Source-Plattform, die von Google entwickelt und jetzt von einer Cloud-nativen Computing-Stiftung verwaltet wird. Es hilft bei der einfacheren und schnelleren Aktualisierung der Anwendungen ohne Ausfallzeiten und übernimmt die Planung von Containern im Cluster sowie die Verwaltung der Arbeitslast.

Kubernetes ist auch unter folgendem Namen bekannt: "k8s" und "Kube".

Die Orchestrierungsplattform Kubernetes automatisiert viele manuelle Prozesse wie die Bereitstellung, Verwaltung und Skalierung der Anwendungen im Container.

Kubernetes Funktionen

  • Automatisiert manuelle Prozesse: Beschreibt nur den gewünschten Status mithilfe von Kubernetes und ändert die vorhandene Veränderung in den gewünschten Soll-Zustand.
  • Lastausgleich: Kubernetes eignet sich gut für den Lastausgleich, falls mehr Verkehr zum Container vorhanden ist. Es verteilt den Netzwerkverkehr und hält die Bereitstellung stabil.
  • Selbstheilung: Dies ist eine der besten Eigenschaften von „Kube“. Es startet die ausgefallenen Container neu, ersetzt sie und beendet auch denjenigen, der nicht auf das benutzerdefinierte Muster reagiert.
  • Speicher-Orchestrierung: Benutzer können mithilfe von Kubernetes automatisch ein Speichersystem ihrer Wahl bereitstellen.
container-tanzu-einfach-3

Noch einmal zusammengefasst: Docker kann u.a. verwendet werden, um Anwendungen in Container zu isolieren. Kubernetes ist ein Container Scheduler / Orchestration-Tool und wird für die Bereitstellung und das Management verwendet.

container-tanzu-einfach-4

Docker Funktionen:

  • Einfache und schnelle Konfiguration
  • Steigert Produktivität
  • Anwendungsisolation
  • Sicherheitsmanagement

Kubernetes Funktionen:

  • Automatisiert Prozesse
  • Lasten-Ausgleich
  • Selbstheilung
  • Speicher-Orchestrierung

Container-Technologie mit VMware

Container werden über VMware vSphere durch das Operations Team bereit gestellt. Hierbei bedienen Sie sich entweder durch manuelle Images/Vorlagen oder fertige Container aus einer Library. Diese werden dann in sogenannten Container Cluster (Namespaces) betrieben. Die Entwickler arbeiten eng mit den Operations Team zusammen, sind aber inhaltlich für die Applikation und den Code verantwortlich und nicht für die Bereitstellung der Infrastrukturfunktionen.

container-tanzu-einfach-5

Kurz gesagt: Infrastructure Operations und Anwendungsentwickler greifen beide über eine Plattform auf dieselben Workloads zu, haben aber unterschiedliche Tools und Sichtweisen für Ihre Aufgaben.

Das VMware Tanzu Portfolio und Container

container-tanzu-einfach-6

Im bisherigen Artikel wurde nur ein kleiner Teil von Begriffen und Funktionen rund um Container erklärt – aus der Phase RUN (siehe Abbildung oben). Tanzu von VMware kann aber, je nach Edition und Zusatzmodulen, noch viel mehr. Weitere Teile des Tanzu Lösungsportfolio sind z.B. Modern Application, Migration, App Container-Konvertierung und Service Mesh, Tanzu Mission Control. All das sind weitere Lösungsbausteine, um Container in einer Multi Cloud und/oder Cloud Native zu betreiben.

container-tanzu-einfach-7

Mit Tanzu startet man am einfachsten und schnellsten mit Tanzu für vSphere dem TKG-S (Tanzu Kubernetes Grid Service) in der Basic Edition. Hier sind die meisten Grundfunktionen zur Bereitstellung und den ersten Kontakt mit Containern enthalten. Sollen später die Container auch in einer Multi Cloud betrieben werden, kommt man um die Standard Edition nicht herum. Die Advanced Edition wird dagegen meist für den Bereich in der Entwicklung, also der Container Herstellung und Konvertierung, benötigt. Hier alle Tanzu Editionen im Vergleich.

Container in einer Microservice-Applikations-Architektur

container-tanzu-einfach-8

Microservices, auch bekannt als Microservice-Architektur, stellt eine neue Applikationsbereitstellung dar. Sie löst die monolithische Bereitstellung auf und kapselt die einzelnen Module in Container, um so effizienter und skalierbarer zu werden. Dabei handelt es sich um einen Architekturstil, der eine Anwendung als eine Sammlung von Diensten strukturiert, die dann hochgradig wartbar und testbar sein soll mit folgenden Eigenschaften:

  • lose gekoppelt
  • unabhängig implementierbar
  • um Geschäftsfunktionen herum organisiert

Die Microservice-Architektur ermöglicht die schnelle, häufige und zuverlässige Bereitstellung großer komplexer Anwendungen. Sie ermöglicht es einem Unternehmen auch, seinen Technologie-Stack weiterzuentwickeln.

Cloud Native – Was ist Cloud Native aus technischer Sicht?

container-tanzu-einfach-9

Cloud Native Applications, OnPremises oder in der Cloud, wird oftmals als die höchste Form der Servicebereitstellung mit den folgenden vier Punkten bezeichnet (wobei Schnelligkeit und Effizienz im Vordergrund stehen):

  • DevOps wird oftmals als Infrasturktur und Automatisierung gesehen. Es ist aber mehr als das und eine neue Sichtweise auf Infrastructure as a Code.
  • Continuous Integration / Continuous Delivery (CI/CD) sorgen für eine fehlerfreie und auch automatisierte Service-Fortführung.
  • Microservices sind Herangehensweisen, um große Anwendungen in kleine Teile aufzuteilen.
  • Container erlauben uns, Anwendungen und Abhängigkeiten zu paketieren.

Von Mainframe bis Cloud Native – Die Evolution von Anwendungsbereitstellungen

container-tanzu-einfach-10

Früher wurden zentralisierte Anwendung auf Mainframe betrieben. Später wurden die Applikationen auf eine Client Server und Middleware-Architektur migriert. Das Resultat war mit der Skalierung oftmals langsamer als ursprünglich auf einer Mainframe.

Durch die Zerkleinerung großer Anwendungen mit Microservices erlangt man wieder Schnelligkeit und Effizienz jedoch einen Mangel an Managementmöglichkeiten. Ein Lösungsansatz für dieses Dilemma ist es, Cloud Native-Anwendungen auf Basis Container-Technologie und Kubernetes zu portieren.

A pink, blue, and purple abstract background.

Überzeugen Sie sich doch einfach selbst!

Wir erarbeiten mit Ihnen gemeinsam die bestmögliche Strategie für die Integration einer Container-Lösung in Ihrem Rechenzentrum oder als Service in der Cloud. Zugeschnitten auf Ihre Anforderungen identifizieren wir gemeinsam schrittweise die notwendigen Features sowie Funktionen und beraten Sie basierend auf Best Practices für den erfolgreichen Start mit VMware Tanzu.

SoftwareOne blickt auf eine 20-jährige Partnerschaft mit VMware zurück und hält als Principal Partner den höchsten erreichbaren Status. Wir unterstützen Sie bei der Optimierung Ihrer VMware Workloads, der Planung und Durchführung von Cloud-Projekten sowie dem Management Ihrer VMware Lizenzen und deren Compliance. Gemeinsam finden wir die passende Lösung für Ihre Anforderungen und unterstützen Sie bei jedem Schritt.

Überzeugen Sie sich doch einfach selbst!

Wir erarbeiten mit Ihnen gemeinsam die bestmögliche Strategie für die Integration einer Container-Lösung in Ihrem Rechenzentrum oder als Service in der Cloud. Zugeschnitten auf Ihre Anforderungen identifizieren wir gemeinsam schrittweise die notwendigen Features sowie Funktionen und beraten Sie basierend auf Best Practices für den erfolgreichen Start mit VMware Tanzu.

SoftwareOne blickt auf eine 20-jährige Partnerschaft mit VMware zurück und hält als Principal Partner den höchsten erreichbaren Status. Wir unterstützen Sie bei der Optimierung Ihrer VMware Workloads, der Planung und Durchführung von Cloud-Projekten sowie dem Management Ihrer VMware Lizenzen und deren Compliance. Gemeinsam finden wir die passende Lösung für Ihre Anforderungen und unterstützen Sie bei jedem Schritt.

Autor

SoftwareOne blog editorial team

SoftwareOne Redaktionsteam
Trend Scouts

IT Trends und branchenbezogene Neuigkeiten