Zum Inhalt springen

Glossar · C

Cloud-Container

Virtuelle Container, die in der Cloud bereitgestellt werden und Anwendungen in isolierten Umgebungen ausführen.

Definition

Cloud-Container sind virtuelle Container, die in Cloud-Umgebungen bereitgestellt werden, um Anwendungen und deren Abhängigkeiten isoliert auszuführen. Sie ermöglichen die Verpackung von Software in eine standardisierte Einheit, die auf verschiedenen Infrastrukturen konsistent läuft. Dabei enthalten Cloud-Container neben dem Anwendungscode auch Bibliotheken, Frameworks und Konfigurationsdateien, die für den Betrieb notwendig sind.

Im Gegensatz zu klassischen virtuellen Maschinen teilen sich Container den Betriebssystemkern des Host-Systems, was zu einer effizienteren Ressourcennutzung führt. Cloud-Container werden typischerweise über Container-Orchestrierungssysteme verwaltet, die Skalierung, Verteilung und Ausfallsicherheit gewährleisten. Die Bereitstellung in der Cloud erlaubt eine flexible Nutzung von Rechenressourcen und erleichtert DevOps-Prozesse.

Hintergrund und Entwicklung

Die Idee von Containern geht auf Technologien wie FreeBSD Jails und Solaris Zones zurück, wurde aber durch die Einführung von Docker im Jahr 2013 populär. Docker standardisierte die Container-Technologie und schuf ein Ökosystem für die Erstellung, Verteilung und Ausführung von Containern. Parallel dazu entwickelten Cloud-Anbieter wie Amazon Web Services, Microsoft Azure und Google Cloud Plattform eigene Dienste zur Verwaltung von Containern in der Cloud.

Die Kombination aus Containern und Cloud-Infrastruktur entstand aus dem Bedarf, Anwendungen portabel, skalierbar und effizient zu betreiben. Container bieten gegenüber traditionellen Virtual Machines einen geringeren Overhead und schnellere Startzeiten. Die Cloud ermöglicht es, Container dynamisch bereitzustellen und zu verwalten, was insbesondere für Microservices-Architekturen und Continuous-Integration-/Continuous-Delivery-Pipelines relevant ist.

Funktionsweise von Cloud-Containern

Cloud-Container basieren auf Betriebssystemvirtualisierung, bei der mehrere isolierte Benutzerbereiche auf einem gemeinsamen Betriebssystemkern laufen. Jeder Container besitzt eine eigene Laufzeitumgebung, die Prozesse, Netzwerk und Dateisysteme voneinander trennt. Die Container laufen auf einem Host-System, das in der Cloud betrieben wird, und nutzen dessen Ressourcen wie CPU, Arbeitsspeicher und Speicherplatz.

Zur Verwaltung der Container werden häufig Orchestrierungstools wie Kubernetes eingesetzt, die Aufgaben wie Lastverteilung, Skalierung und Fehlerbehandlung übernehmen. Container-Images werden in Registries gespeichert und können bei Bedarf von verschiedenen Cloud-Diensten heruntergeladen und gestartet werden. Die Isolierung stellt sicher, dass Anwendungen in Containern unabhängig voneinander laufen und sich nicht gegenseitig beeinflussen.

Einsatzgebiete

Cloud-Container finden breite Anwendung in der Softwareentwicklung und im Betrieb von Anwendungen, insbesondere bei Microservices-Architekturen. Sie erleichtern die Entwicklung, das Testen und die Bereitstellung von Software durch konsistente Laufzeitumgebungen. Zudem unterstützen sie DevOps-Praktiken und Continuous Deployment, indem sie schnelle und reproduzierbare Deployments ermöglichen.

Darüber hinaus werden Cloud-Container in Bereichen wie Big Data, maschinelles Lernen und serverlosen Architekturen eingesetzt. Sie ermöglichen es, komplexe Anwendungen modular aufzubauen und flexibel auf veränderte Lastanforderungen zu reagieren. Auch im Bereich der Multi-Cloud-Strategien spielen Container eine Rolle, da sie die Portabilität zwischen verschiedenen Cloud-Anbietern erhöhen.

Abgrenzung zu verwandten Technologien

Cloud-Container unterscheiden sich von klassischen virtuellen Maschinen dadurch, dass sie keinen eigenen Betriebssystemkern besitzen, sondern den Kernel des Host-Systems gemeinsam nutzen. Dies führt zu geringeren Ressourcenanforderungen und schnelleren Startzeiten. Im Gegensatz zu serverlosen Funktionen (Function as a Service) bieten Container mehr Kontrolle über die Laufzeitumgebung und die zugrundeliegende Infrastruktur.

Im Vergleich zu traditionellen On-Premises-Containern werden Cloud-Container direkt in Cloud-Infrastrukturen ausgeführt, was Skalierbarkeit und Verfügbarkeit verbessert. Bekannte Container-Orchestrierungssysteme wie Kubernetes, Docker Swarm oder Apache Mesos verwalten sowohl lokale als auch Cloud-Container, unterscheiden sich jedoch in Funktionsumfang und Komplexität.