Sie sind hier: HomeDatacenter

Clouds, Container, Kubernetes: Warum Sie eine intelligente Datenplattform benötigen

Neben den herkömmlichen Frameworks für die Nutzung von Big Data gibt es inzwischen eine ganze Reihe neuer Technologien. Und obwohl sich die Anwendungsbereiche für Big Data stark unterscheiden, gehören eine zuverlässige, skalierbare Speicherlösung und Flexibilität zu den wichtigsten Anforderungen.

Schmuckbild Künstliche Intelligenz Bildquelle: © vs 148 - shutterstock.com

Deshalb ist man gut beraten, bei einem Big-Data-Projekt mit der Ermittlung der Speicheranforderungen zu beginnen. So können Sie sicherstellen, dass Ihre Anwendungsumgebung Ihren Anforderungen gerecht wird und die Daten ununterbrochen für alle Kundenanwendungen verfügbar sind. Dabei spielt es keine Rolle, ob Sie Ihre Umgebung für die schnelle Ausführung, die Portabilität oder die Flexibilität Ihrer Anwendungen optimieren möchten. Sie benötigen in jedem Fall eine Speicherlösung, die Ihren Anwendungen Zugriff auf große Datenmengen gewährt und den Status der Anwendung erhält. Die Erhaltung des Anwendungsstatus ist eine wichtige Voraussetzung für die uneingeschränkte Portabilität und Skalierbarkeit containerisierter Anwendungen.

Grundlagen der Containerisierung

Anwendungscontainer und Kubernetes sind zwei relativ neue Technologien, mit denen Unternehmensanwendungen effizienter entwickelt und bereitgestellt werden können. Beide wurden für die Cloud konzipiert und bieten zahlreiche Vorteile.
Ein Anwendungscontainer ist ein hardwareunabhängiges All-in-One-Paket, das alle zur Ausführung einer bestimmten Anwendung erforderlichen Komponenten enthält: den Binärcode der Anwendung, die zum Betrieb erforderliche Software (Software-Abhängigkeiten) und die Hardware-Spezifikationen.

Wenn ein Anwendungscontainer auf einem System installiert wird, nutzt er die dort vorhandene Hardware und das Betriebssystem, um die Anwendung auszuführen. Da sämtliche erforderliche Software im Container enthalten ist, läuft die Anwendung in jeder Umgebung gleich – unabhängig davon, ob der Container auf einem Laptop, einem Server, einer virtuellen Maschine, in der Cloud oder auf einem beliebigen anderen kompatiblen System installiert wird. Zudem kann ein Container problemlos auf ein anderes System verschoben oder sogar auf einen Software-Hub hochgeladen werden, um ihn anderen zugänglich zu machen.

Container und virtuelle Maschinen im Vergleich

Container und virtuelle Maschinen sind vergleichbar, aber nicht identisch. Ein Container ist ein Paket, das eine Anwendung und deren Abhängigkeiten enthält. Er kann auf einem beliebigen System ausgeführt werden, vorausgesetzt, dass dessen Betriebssystem und Hardware mit dem Container kompatibel sind. Daher sollte ein Container alle zur Ausführung der Anwendung erforderlichen Komponenten enthalten – und sonst nichts.

Eine virtuelle Maschine enthält hingegen eine vollständige Kopie eines Betriebssystems mit diversen Anwendungen und Software-Abhängigkeiten. Außerdem erfolgt die Kommunikation zwischen einer virtuellen Maschine und dem Hostsystem nicht direkt, sondern über eine Hypervisor-Ebene. Mit einer virtuellen Maschine können möglicherweise komplexere Aufgaben ausgeführt werden als mit einem Container. Allerdings ist das zu installierende Softwarepaket in der Regel auch wesentlich größer und die Ausführung nimmt mehr Serverzeit und -ressourcen in Anspruch als bei einem Anwendungscontainer.

Ein Anwendungscontainer ist also ein schlankes, effektives Paket, das nur eine Anwendung, ihre Software-Abhängigkeiten und eine kleine YAML-Datei mit den Hardware-Spezifikationen enthält. Bei der Ausführung werden das Betriebssystem und die Infrastruktur des Systems genutzt, auf dem der Container installiert wurde. Daher nimmt ein Container wesentlich weniger Ressourcen in Anspruch als eine virtuelle Maschine oder andere Virtualisierungsmethoden. Außerdem kann er mit wenig Aufwand für eine andere Umgebung portiert und in Sekundenschnelle bereitgestellt, geklont oder (wenn es Probleme gibt) gestoppt und neu gestartet werden.

Obwohl ein Container mehr als eine Anwendung enthalten kann, wird das im Allgemeinen nicht empfohlen. Denn wie bereits erwähnt, besteht der Zweck eines Anwendungscontainers darin, eine Anwendung so effizient wie möglich auszuführen. Wenn Sie weitere Anwendungen in den Container einfügen, steigt die Komplexität und es kommt möglicherweise zu Konflikten zwischen den Software-Abhängigkeiten. Dennoch ist es mitunter ratsam, zwei oder mehr eng miteinander verkoppelte Anwendungen in einem Container unterzubringen. Das ist jedoch die Ausnahme. In der Regel sollte jede Anwendung ihren eigenen Container haben.