Was sind Container in der IT?

Container sind einer der aktuellen großen Trends in der IT. Denn sie können den Rollout von Anwendungen erheblich beschleunigen und vereinfachen. In diesem Beitrag werfen wir einen genaueren Blick auf diese nützlichen “Behälter” und erläutern den Unterschied zu virtuellen Maschinen.

Transportcontainer in der Logistik ermöglichen es, Waren jeglicher Art in einer standardisierten “Verpackung” flexibel und schnell mit unterschiedlichen Verkehrsmitteln zu verschicken und zu verteilen – ob Schiff, Flugzeug, Bahn oder LKW. Ähnlich operieren Container in der IT. Sie verpacken eine Anwendung und alle zu ihrer Ausführung erforderlichen Dateien in ein handliches Paket.

Das vereinfacht sowohl die Installation und den Betrieb von Server-Anwendungen als auch deren Management und Verteilung. Somit erleichtern Container den Umgang mit komplexen Server-Anwendungen und ermöglichen eine weitgehende Automatisierung von Rollout-Prozessen im Rechenzentrum. Das ist besonders bei der Bereitstellung von skalierbaren, verteilten Anwendungen innerhalb von Cloud-Umgebungen wichtig.

Warum Container?

Eine wesentliche Problematik beim Rollout von neuen Anwendungen oder neuen Releases ist es, dass jede Anwendung von gewissen Elementen ihrer Umgebung abhängt. Hierzu zählen beispielsweise lokale Einstellungen oder Funktionsbibliotheken. Oft unterscheiden sich die Einstellungen in der Entwicklungsumgebung von denen der Testumgebung und der Produktion. Dann kann es schnell sein, dass eine Anwendung in der Produktion wider erwarten anders oder gar nicht funktioniert. Weitere Faktoren, die einen reibungsloses Rollout stören können, sind das der Anwendung zugrunde liegende Betriebssystem, dessen Version und Einstellungen, alle hinzugefügten Pakete und Module oder die Konfiguration des Netzwerks. Die Bereitstellung mehrerer Anwendungen über unterschiedliche Plattformen ist also eine Herausforderung.

Container Whitepaper previewNoch mehr über Container und Microservices in der IT : Jetzt kostenfreies Whitepaper downloaden.

Hier bietet der Einsatz von Containern unmittelbare Vorteile: Entwickler verpacken so ihre Anwendungen inklusive aller Abhängigkeiten wie Bibliotheken und Konfigurationsdateien in einem Container. Die Anwendungen werden also nicht mehr direkt auf den Zielsystemen installiert. Die Container stellen somit die komplette Laufzeitumgebung der Applikation in einem Paket bereit.

So haben Entwickler die Möglichkeit, Anwendungen zwischen verschiedenen Umgebungen hin- und herzuschieben – zum Beispiel für Tests in einem spezifischen Hardware-Umfeld und den Betrieb in einem anderen. Oder sie betreiben Applikationen erst auf einer physikalischen Maschine und dann in einer Private, Public oder Hybrid Cloud.

Container im Vergleich zur Virtual Machine

Container machen Anwendungen unabhängiger von der Umgebung, in der sie ausgeführt werden. Sie agieren damit ähnlich einer virtuellen Maschine (VM). Während eine VM jedoch ein vollständiges Betriebssystem sowie Applikationen enthält, teilen sich Container einen Betriebssystemkern mit anderen Containern. Jede Anwendung erhält lediglich einen neuen User Space und damit eine komplett isolierte Umgebung.

VM vs ContainerContainer verbrauchen also im Vergleich zu VMs deutlich weniger Ressourcen wie Rechenleistung, Hauptspeicher und Speicherplatz. Und es dreht sich hier um Megabytes bei Containern im Vergleich zu Gigabytes bei VMs. Daher passen auf einen Server sehr viel mehr Container als virtuelle Maschinen. Zudem sind Container schneller einsatzbereit: Während VMs manchmal mehrere Minuten zum Start benötigen, stehen Anwendungen im Container beinahe sofort zur Verfügung.

Container ergänzen die Virtualisierung

Trotzdem werden Container Virtualisierungslösungen weder komplett ersetzen noch überflüssig machen, da sie nicht für alle Anwendungsszenarien passen. So eignen sich Container zum Beispiel sehr gut für Infrastrukturen, in denen eine große Zahl von Applikationsinstanzen parallel laufen. Sie sind zudem ideal für Anwendungen, welche häufigen Updates und funktionalen Erweiterungen unterliegen. Bei Applikationen, die aus unterschiedlichen Komponenten bestehen und auf einer Microservices-Architektur basieren, bieten Container ebenfalls eine effiziente Möglichkeit, neue Rollouts ohne großen Overhead zu implementieren.

Für andere Anwendungsfelder hingegen ist die Virtualisierung mit Hypervisoren nach wie vor die bessere Wahl: Beispielsweise für die Bereitstellung und den Betrieb von Standard-Serverdiensten wie Datenbankservern, Directory Servern oder auch Webservern –  also im Prinzip für standardisierte Anwendungen, die längeren Aktualisierungszyklen unterliegen und von Dritten bereitgestellt werden. Somit sind Container eher eine sinnvolle Ergänzung zur Virtualisierung als ein Ersatz.

Weitere Entwicklung

Beschäftigten sich in den letzten Jahren vorwiegend Entwickler mit der Thematik von Containern, so gewinnt sie jetzt auf Entscheiderebene immer mehr an Bedeutung. Vorangetrieben wird diese Entwicklung durch steigende Anforderungen an Agilität, Flexibilität, Verfügbarkeit und Leistungsfähigkeit in der IT-Landschaft: So müssen Unternehmen zunehmend in der Lage sein, Geschäftsmodelle und Geschäftsprozesse möglichst schnell zu digitalisieren, um konkurrenzfähig zu bleiben. Dazu benötigen sie IT-Abteilungen, die in der Lage sind, schnell und kostenoptimiert neue mobile und cloudbasierte Anwendungen zu entwickeln.

Auch Kunden erwarten rund um die Uhr Zugriff auf Anwendungen und Daten sowie die schnelle Bereitstellung neuer Funktionen oder wichtiger Updates. Dabei gestaltet sich die zugrundeliegende IT-Infrastruktur zunehmend heterogen: Anwendungen liegen in Clustern, in Private-, Public- oder Hybrid-Cloud-Umgebungen.

Vor diesem Hintergrund wird es in Zukunft noch wichtiger, dass Entwickler und IT-Betrieb enger zusammenarbeiten, um schnell und effizient leistungsfähige Anwendungen bereitzustellen. So unterstützen Container-Technologien besonders die Entwicklung im Bereich DevOps (Development, IT Operations), bei der es genau um diese Thematik geht. Denn während Entwickler daran arbeiten, schnell neue Releases zu entwickeln, zu testen und auszurollen, steht für den IT-Betrieb die stabil laufende hochsichere IT-Infrastruktur im Vordergrund, die nach Möglichkeit nur wenn nötig verändert wird.

Beide Fachbereiche stehen hier vor der großen Herausforderung, ein Gleichgewicht zwischen Stabilität und schnellem Rollout innovativer Neu- oder Weiterentwicklungen von Applikationen zu finden.

Container as a Service

Darüber hinaus gewinnen Angebote wie Container as a Service (CaaS) an Bedeutung. Sie unterstützen Unternehmen dabei, ihre Anwendungen in Containern zu erstellen, zu organisieren, zu skalieren, zu verwalten und vor allem zu orchestrieren. Damit können Unternehmen ihre Anwendungen schnell und flexibel über heterogene und verteilte Umgebungen inklusive Cloud bereitstellen und bezahlen jeweils nur die CaaS-Ressourcen, die sie auch tatsächlich benötigen.

Das könnte Sie auch interessieren

Container Whitepaper preview
Erfahren Sie mehr über Containering im kostenfreien Whitepaper.
Gartner-Report über Container
Gartner-Report zum Herunterladen: „Answering the 10 Biggest Questions About Containers, Microservices and Docker“.