Die Nutzung von Containern

Andy Okt 9, 2017

Vielleicht haben Sie in letzter Zeit schon von Containern gehört – DAS aktuelle Thema und Schlagwort in der Cloud Computing-Branche. „Aber was sind Container eigentlich und welchen Mehrwert haben sie für mein Unternehmen und meine bestehende Cloud-Infrastruktur?“, fragen Sie sich vielleicht.

Container

Zunächst einmal lohnt es sich, einen Blick auf virtuelle Maschinen (VM) zu werfen, um zu verstehen, was Container sind und warum sie an Bedeutung zugenommen haben.

Container und VM dienen ähnlichen Zwecken, nämlich der Verpackung einer Anwendung und aller zu ihrer Ausführung erforderlichen Dateien in einer abgeschlossenen Einheit, die in jeder beliebigen Umgebung läuft.

Der Bedarf an physischer Hardware fällt sowohl bei Containern als auch bei VM weg, was für einen geringeren Energieverbrauch und für Kosteneffizienz sorgt.

Der zentrale Unterschied zwischen Containern und VM jedoch liegt in ihrer Architektur. Eine VM ist im Grunde eine Emulation eines echten Computers, die wie ein echter Computer Programme ausführt. VM werden mithilfe eines Hypervisor, der entweder auf einem Host-Betriebssystem oder direkt auf der Hardware läuft, auf einer physischen Maschine ausgeführt.

Auf Ebene der gehosteten privaten Cloud und der öffentlichen Hyperscale-Cloud, wo es um Tausende VM geht, von denen viele Workloads haben, die vom Unternehmen in die Cloud verlagert wurden, bekommen Sie zwangsweise irgendwann Probleme mit der Skalierbarkeit.

Langfristig entgegenwirken kann man der Überhandnahme von VM mit Containern.  Das Prinzip von VM ist die Virtualisierung von Hardware, während das Prinzip von Containern die Virtualisierung des Betriebssystems durch Abstraktion des „Userspace“ ist. Der Unterschied besteht darin, dass Container sich den Kernel des Host-Betriebssystems mit anderen Containern teilen. Ein ganzer Container-Stack – ob dieser nun aus Dutzenden, Hunderten oder sogar Tausenden Containern besteht – kann auf einer einzigen Instanz des Host-Betriebssystems laufen und braucht nur einen winzigen Bruchteil des Platzes, den eine vergleichbare VM benötigt, die dieselbe Anwendung ausführt. Die Erstellung weiterer Container dauert nur Mikrosekunden – im Gegensatz zu VM, wo derselbe Vorgang Minuten dauert.

Das nachstehende Schaubild zeigt, dass jeder Container seinen eigenen abgegrenzten Userspace hat, sodass eine Vielzahl von Containern auf einer einzigen Host-Maschine laufen kann. Man sieht, dass sich die Container die gesamte Architektur des Betriebssystems teilen.

Virtuelle Maschinen vs. Managed Containers

Container erlauben es Anwendungsentwicklern und Systemadministratoren, Anwendungskomponenten mit einer garantierten Plattform-Parität über verschiedene Umgebungen hinweg zu verpacken, auszuliefern und laufen zu lassen.

Es gibt also Potenzial für eine containerbasierte Virtualisierung zur Schaffung einer umfassend portierbaren Cloud-Umgebung. Dafür werden weniger Ressourcen und eine besser skalierbare und flexiblere Virtualisierungsschicht als bei VM benötigt.

Wann kommt Docker ins Spiel?

Docker ist eine Containerisierungstechnologie. Sie bietet die Möglichkeit, komplexe Anwendungen zu „verpacken“ und sie auf ein öffentliches Repository hochzuladen und dann auf öffentliche oder private Clouds, in denen Docker-Hosts ausgeführt werden, herunterzuladen – dies ist vergleichbar mit dem Verfahren, mit dem Apps aus dem App Store auf Ihr Smartphone heruntergeladen werden.

Container-Angebote wie Docker führen zu einer „Demokratisierung“ der Virtualisierung, indem sie Entwicklern in nutzbarer, anwendungsorientierter Form bereitgestellt werden. Während der Zugang zur Virtualisierung virtueller Maschinen tendenziell über Gatekeeper in der Infrastruktur und im Betrieb bereitgestellt und gesteuert wird, führen Entwickler Docker von Grund auf und unter Anwendung eines DevOps-Ansatzes ein.

Während VM immer seltener zum Einsatz kommen, sorgen Container für eine erheblich höhere Rechendichte, wodurch die Kosten für das Cloud Computing insgesamt sinken.

Während sich Docker und ähnliche Containertechnologien immer weiter entwickeln, sollten Sie eine Erneuerung der Architektur oder Modernisierung Ihrer Anwendungen im Hinblick auf eine Containerisierung zwecks Nutzung in öffentlichen und privaten Clouds erwägen. Meiner Meinung nach wird die Einbeziehung von Containern in Ihre Infrastruktur Ihrem Unternehmen in vielerlei Hinsicht zugute kommen. Durch ihre Portierbarkeit – sowohl intern als auch in die Cloud – und ihre geringen Kosten sind sie eine tolle Alternative zum reinen Einsatz virtueller Maschinen.

Sie möchten sich weiter über Container austauschen oder mehr über nine.ch und darüber erfahren, wie wir Ihnen helfen können? Dann besuchen Sie unsere Website www.nine.ch oder kontaktieren Sie uns!