Trace Id is missing
Zum Hauptinhalt wechseln

Was ist ein Container?

Standardisierte, portierbare Paketierung für Ihre Anwendungen

Einfach erklärt: Container

So wie Frachtunternehmen physische Container verwenden, um verschiedene Ladungen für den Transport per Schiff oder Bahn zu trennen, kommt bei Softwareentwicklungstechnologien zunehmend das Konzept der „Containerisierung“ zum Einsatz.

Ein Standardsoftwarepaket – der so genannte Container – bündelt Anwendungscode mit den zugehörigen Konfigurationsdateien, Bibliotheken und den für die Anwendungsausführung erforderlichen Abhängigkeiten. So können Entwickler und IT-Fachkräfte Anwendungen nahtlos in verschiedenen Umgebungen bereitstellen.

Container – ein Thema, das jeden angeht

Das Problem, dass eine Anwendung nicht mehr fehlerfrei läuft, sobald sie in einer anderen Umgebung eingesetzt wird, ist so alt wie die Softwareentwicklung selbst. Solche Probleme entstehen in der Regel durch unterschiedliche Konfigurationen, die den Bibliotheksanforderungen und anderen Abhängigkeiten zugrunde liegen.

Container lösen dieses Problem, indem sie eine unveränderliche Lightweight-Infrastruktur für die Paketierung und Bereitstellung von Anwendungen bieten. Eine Anwendung oder ein Dienst wird zusammen mit den zugehörigen Abhängigkeiten und Konfigurationen in einem Containerimage paketiert. Die containerisierte Anwendung kann als Einheit getestet und als Containerimageinstanz auf dem Hostbetriebssystem bereitgestellt werden.

Entwickler und IT-Fachkräfte profitieren also von Containern, um Anwendungen mit wenigen oder gar keinen Änderungen in verschiedenen Umgebungen bereitzustellen.

Erfahren Sie mehr über die Entstehung und Vorteile von Containern.

Eine Person, die mit einem weißen Marker Diagramme zeichnet

Container oder virtueller Computer?

Beim Begriff „Virtualisierung“ fallen einem sofort virtuelle Computer bzw. Virtual Machines (VMs) ein. Tatsächlich hat die Visualisierung viele Facetten, und Container sind eine davon. Worin unterscheiden sich also VMs und Container?

Allgemein ausgedrückt, virtualisieren VMs die zugrunde liegende Hardware, sodass mehrere Betriebssysteminstanzen auf der Hardware ausgeführt werden können. Jede VM führt ein Betriebssystem aus und erhält Zugriff auf virtualisierte Ressourcen, die die zugrunde liegende Hardware repräsentieren.

VMs bieten viele Vorteile. Dazu zählt die Möglichkeit, verschiedene Betriebssysteme auf demselben Server auszuführen, physische Ressourcen besonders effizient und kostengünstig zu nutzen und Server sehr schnell bereitzustellen. Auf der anderen Seite enthält jede VM ein Betriebssystemimage, Bibliotheken, Anwendungen und vieles mehr und kann daher ziemlich groß werden.

Ein Container virtualisiert das zugrunde liegende Betriebssystem und lässt die containerisierte App annehmen, dass sie allein über das Betriebssystem sowie CPU, Arbeitsspeicher, Dateispeicher und Netzwerkverbindungen verfügen kann. Da die Unterschiede im Betriebssystem und in der Infrastruktur abstrahiert werden, kann der Container überall eingesetzt und bereitgestellt werden – solange das Basisimage konsistent ist. Davon profitieren vor allem Entwickler.

Container nutzen dasselbe Hostbetriebssystem und müssen daher kein Betriebssystem starten oder Bibliotheken laden. Dadurch sind Container sehr effizient und einfach zu handhaben. Containerisierte Anwendungen können innerhalb weniger Sekunden gestartet werden. Darüber hinaus lassen sich auf dem Computer wesentlich mehr Anwendungsinstanzen ausführen als in einem VM-Szenario. Die gemeinsame Nutzung des Betriebssystems bietet darüber hinaus den Vorteil, dass Wartungsmaßnahmen wie das Aufspielen von Patches und Updates weniger Aufwand erfordern.

Container sind zwar portierbar, aber auf das Betriebssystem beschränkt, für das sie definiert wurden. Beispielsweise kann ein Linux-Container nicht unter Windows ausgeführt werden und umgekehrt.

Was spricht für Container?

Flexibilität

Wenn Entwickler ihre Anwendungen in Containern paketieren, die sie der IT-Abteilung zur Ausführung auf einer standardisierten Plattform zur Verfügung stellen, lassen sich der Gesamtaufwand für die Anwendungsbereitstellung reduzieren sowie der gesamte Entwicklungs- und Testzyklus beschleunigen. Dadurch arbeiten operative und Entwicklerteams besonders effizient zusammen, um Apps schneller bereitzustellen.

Portierbarkeit

Container bieten ein standardisiertes Format zum Paketieren aller Komponenten, die zum Ausführen der gewünschten Anwendung erforderlich sind. Damit wird das typische Problem „Läuft die Anwendung auf meinem Computer?“ gelöst und Portierbarkeit zwischen Betriebssystemplattformen und Clouds ermöglicht. Wann und wo immer ein Container bereitgestellt wird, läuft er einer konsistenten Umgebung, die zwischen Bereitstellungen unverändert bleibt. Somit verfügen Sie von der Dev-Box bis hin zur Produktion über ein konsistentes Format.

Schnelle Skalierbarkeit

Da bei Containern der für VMs typische Aufwand entfällt (z. B. separate Betriebssysteminstanzen), können in derselben Infrastruktur wesentlich mehr Container unterstützt werden. Aufgrund ihrer unkomplizierten Nutzung können Container schnell gestartet und angehalten werden und ermöglichen so schnelles Hoch- und Herunterskalieren.

Anwendungsfälle

Cloudnative Anwendungen

Cloudnative Anwendungen nutzen Container für ein einheitliches Betriebsmodell in unterschiedlichen Umgebungen – einschließlich Public, Private und Hybrid Cloud. Durch den geringen Mehraufwand und die hohe Dichte können viele Container auf demselben virtuellen Computer gehostet werden. Daher sind Container ideal für die Bereitstellung cloudnativer Anwendungen.

Lift & Shift

Eine Organisation kann durch die Migration in die Cloud erhebliche Vorteile erzielen, möchte vorhandene Anwendungen aber nicht unbedingt neu programmieren. Mit Containern können Sie Ihre Anwendungen in die Cloud migrieren, ohne Code umschreiben zu müssen.

Batch

Der Begriff „Batchverarbeitung“ bezieht sich auf Aktivitäten, die ohne menschliches Eingreifen oder basierend auf der Ressourcenverfügbarkeit ausgeführt werden können. Hierzu zählt beispielsweise das Generieren von Berichten, das Ändern der Imagegröße und die Konvertierung in ein anderes Dateiformat. Container bieten eine einfache Möglichkeit zum Ausführen von Batchaufträgen, ohne eine Umgebung und Abhängigkeiten verwalten zu müssen. Dynamische Computeoptionen wie Azure Container Instances (ACI) bieten sich an, um Quelldaten effizient zu erfassen, zu verarbeiten und in einem dauerhaften Speicher wie etwa Azure Blob Storage abzulegen. Ein solcher Ansatz kann gegenüber statisch bereitgestellten virtuellen Computern zu erheblichen Kosteneinsparungen führen, nämlich durch sekundengenaue Abrechnung.

Machine Learning

Beim Machine Learning werden Algorithmen auf Daten angewendet und Vorhersagen basierend auf den in den Daten gefundenen Mustern getroffen. Durch Container laufen Machine-Learning-Anwendungen unabhängig und lassen sich in jeder Umgebung problemlos skalieren.

Zurück zu Registerkarten

Container optimieren

Um die Vorteile von Containern zu optimieren, empfehlen sich Komplettlösungen – mit containeroptimierten Tools und Diensten, die die nötige Flexibilität, Sicherheit und Skalierbarkeit sicherstellen.

Orchestrierung

Die Ausführung von Containern im großen Stil erfordert die Orchestrierung und Verwaltung von verteilten, containerisierten Anwendungen über eine Orchestrierungsplattform wie Kubernetes.

Sicherheit

Die Nutzung von Containern erfordert einen mehrstufigen Ansatz – vom Containerimage bis hin zur Clusterisolation. Diese Schutzmaßnahmen lassen sich am besten über CI/CD-Pipelines konfigurieren.

Serverlose Container

On-Demand-Container bieten eine noch höhere Flexibilität. Mit Technologien für serverlose Container lassen sich Container mühelos ausführen, ohne dass Sie Server verwalten und Bursts von Kubernetes-Clustern bewältigen müssen, wenn der Datenverkehr Spitzenwerte erreicht.

Azure DevOps

DevOps

Mit Containern können Entwickler Software und Abhängigkeiten ganz einfach in verschiedenen IT- und Produktionsumgebungen nutzen. In Kombination mit DevOps-Methoden können Sie Code schnell und effizient bereitstellen und Softwareentwicklungszyklen verkürzen.

Sind Sie bereit? Dann testen Sie Container und Kubernetes kostenlos mit Azure. 
Kostenlos starten