Provokant nachgefragt

Sind Container die besseren Clouds?

| Autor / Redakteur: Dietmar Müller / Florian Karlstetter

Container zur Anwendungsvirtualisierung halten immer mehr Einzug, auch in Cloud-Umgebungen. Allerdings sind sie mehr als sinnvolle Ergänzung als vollständiger Ersatz zu VMs zu sehen.
Container zur Anwendungsvirtualisierung halten immer mehr Einzug, auch in Cloud-Umgebungen. Allerdings sind sie mehr als sinnvolle Ergänzung als vollständiger Ersatz zu VMs zu sehen. ( © kamonrat - Fotolia.com)

Application Container waren im vergangenen Jahr der neuste Schrei in der IT-Szene, 2016 müssen sich Docker und Co beweisen. Sollten Sie als Cloud-Anwender sich in die Materie einarbeiten? Lohnt sich der Einsatz dieser „neuen“ Technologie? Kann sie möglicherweise sogar die Cloud ersetzen?

Seit das Open-Source-Projekt Docker im März 2013 von der Cloud-Entwicklungs-Plattform dotCloud veröffentlicht wurde, sorgt es zunehmend für Furore. Das Projekt versprach die IT genauso umzukrempeln, wie das die Virtualisierung vor einigen Jahren bereits getan hat.

In diesem Jahr müssen sich Container beweisen. Sind sie die besseren Clouds oder nur ein weiteres, vielleicht zu kompliziertes Verfahren, Anwendungen zu virtualisieren? Dass sowohl Microsoft als auch Red Hat und IBM sich an Docker beteiligt haben, lässt allerdings vermuten, dass es sich um eine vielversprechende Technologie handelt.

Was also sind Container und wofür kann man sie einsetzen? Nun, in allererster Linie sind sie dafür gedacht, Software verlässlich laufen zu lassen, nachdem sie von einer Umgebung in eine andere versetzt worden ist. Gerne schicken beispielsweise Entwickler ihren neusten Code von ihrem Rechner in eine Testumgebung. Von dort wandert er später in die Produktion. Natürlich könnte er auch von einem Rechenzentrum auf eine virtuelle Maschine (VM) in einer privaten oder öffentlichen Cloud verschoben werden.

Der Teufel steckt im Detail

Hört sich erstmal praktisch und einfach an, der Teufel steckt jedoch im Detail. Sollten die Betriebssystem- und Entwicklungsumgebungen vor und nach dem Verschieben nicht identisch sein, kommt es in der Regel zu nicht unerheblichen Problemen. Nutzt der Programmierer etwa Python 2.7, die Produktion jedoch Python 3, dann kann bei der Ausführung der Anwendung einiges schief gehen. Ähnlich verhält es sich, wenn zum Programmieren Suse zum Einsatz kam, die Produktion aber Red Hat nutzt. Das gilt übrigens auch für die genutzten Bibliotheken. Die Umgebung einer Anwendung in einem Container muss also zwingend identisch sein! Und bitte vergessen Sie dabei nicht die Netzwerktopologie, Sicherheitsbestimmungen und die genutzten Storage-Systeme. Kleinste Abweichungen können große Probleme nach sich ziehen.

Docker und Co. lösen das Problem dadurch, dass sie in den Container auch gleich die komplette Runtime-Umgebung mit hineinpacken, Die Applikation ist dann fest mit der Bibliothek und anderen Binär- und Konfigurationsdateien sowie Konfigurationsfunktionen verzurrt. Diese sogenannte Containerisierung der Applikationsplattform und ihrer Anhängsel macht die Unterschiede in den diversen Betriebssystemdistributionen unwichtig. Das alles kann auch mittels einfacher Virtualisierung erreicht werden.

Wieso also Container?

Nun, bei der Virtualisierung besteht das Paket aus einer Virtual Machine (VM) inklusive Betriebssystem und Applikation. Ein physikalischer Server mit drei virtuellen Maschinen würde über einen Hypervisor und darauf drei separate Betriebssysteme bestehen. Im Unterschied dazu läuft auf einem Server mit drei containerisierten Applikationen nur ein Betriebssystem, das sich alle drei Container teilen.

Das bedeutet, dass die von allen dreien genutzten Teile des Betriebssystems nur einmal gelesen werden müssen, wodurch Container deutlich weniger Ressourcen verbrauchen als VMs - wir sprechen von Megabytes bei Containern im Gegensatz zu Gigabytes bei VMs. Daher passen auf einen Server auch sehr viel mehr Container als auf eine VM. Ein weiterer großer Vorteil von Containern: Sie booten extrem schnell. Während VMs manchmal mehrere Minuten zum Hochfahren benötigen, stehen Apps im Container beinahe sofort zur Verfügung.

Warum haben sich Container noch nicht flächendeckend durchgesetzt?

Angesichts dieser Vorteile fragt man sich, warum Container die Virtualisierungsverfahren noch nicht komplett abgelöst haben. Der Grund ist einfach: Container sind nicht so sicher wie VMs, und zwar, weil eine potentielle Sicherheitslücke im Kernel Auswirkungen auf alle Container hat, die daran hängen. Damit offerieren Container grundsätzlich nicht denselben Level an Isolation, wie man das von der Hardware-Virtualisierung her gewohnt ist.

Abhilfe kann hier SELinux (Security-Enhanced Linux) schaffen. Die Erweiterung des Linux-Kernels setzt sich aus einem Kernel-Patch und diversen Erweiterungen für Systemprogramme zusammen. Das Red Hat-Projekt Fedora hat als erste Distribution SELinux-Unterstützung mitgeliefert, mittlerweile findet sie sich aber auch zum Beispiel in openSuse. Einigen Anwendern ist SELinux dennoch zu heiß, basiert die Erweiterung doch auf dem FLASK-Konzept des US-amerikanischen Geheimdienstes NSA. Überhaupt spielt die NSA bei der Entwicklung von SELinux eine große Rolle. Das findet nicht jeder CIO gut.

Das ist auch der Grund, wieso Container in nächster Zeit den VMs nicht den Gar ausmachen werden. Zudem tun sich die bestehenden Orchestrierungs-Tools mit einer großen Anzahl an Container schwer. Orchestrierungssoftware wie VMwares vCenter oder Microsofts System Center tun sich da in virtuellen Infrastrukturen viel leichter.

Mehr sinnvolle Ergänzung als Ersatz zu VMs

So sollte man denn auch Container eher als Ergänzung zu VMs sehen denn als Konkurrenz. Container können beispielsweise in leichtgewichtigen VMs laufen, wodurch sie eine weitere Isolationsschicht einbringen und die Sicherheit erhöhen. Auch muss die Hardware – also Netzwerke, Server und Storage - mittels Virtualisierung gemanagt werden. Container ändern daran nichts. Container können also gar kein vollwertiger Ersatz für Virtualisierung genutzt werden, sie setzen vielmehr – ganz ähnlich der Cloud – auf sie auf.

Weiter geht es mit den verschiedenen Spielarten von Containern

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43841443 / Technologien)