Docker & Co.: Über die zunehmende Virtualisierung im Betriebssystem-Umfeld

Warum Container ein Betriebssystem brauchen

Gordon Haff
© Shutterstock/Federico Rostagno

Das Interesse an Container-Lösungen hat erst in letzter Zeit deutlich zugenommen. Teilweise ist das auf neue Entwicklungen zurückzuführen, die eine umfassendere und einfachere Nutzung der Technologien ermöglicht haben. Ein weiterer Grund ist, dass heutige Betriebssystem-Umgebungen relativ standardisiert sind, zumindest innerhalb eines Unternehmens, und nicht mehr auf individuelle Workloads zugeschnitten, wie es früher der Fall war.

Auch wenn Betriebssystem-Umgebungen immer stärker standardisiert werden, so ändert das doch nichts daran, dass sie unternehmenskritischen Charakter haben. Es ist nicht das Betriebssystem, das weniger wichtig wird. Es sind vielmehr die einzelnen Betriebssystem-Instanzen, die konfiguriert, optimiert und in einer einzigen Applikation zusammengefasst sind, an Bedeutung verlieren.

Generell ist nämlich eine zunehmende Abstraktion im Betriebssystem-Umfeld zu erkennen. Der Trend geht weg von den maßgeschneiderten Betriebssystem-Instanzen, die jede Applikations-Instanz begleiten – genauso wie man sich in der Vergangenheit von Betriebssystem-Instanzen verabschiedet hat, die auf jeden einzelnen individuellen physischen Server zugeschnitten waren.
Auf Container-Lösungen bezogen heißt das, dass das Betriebssystem immer noch das Framework für alle Container bereitstellt, die auf dem Betriebssystem laufen. Es ist nur so, dass es jetzt ein Standard-Image für alle Applikationen und keine spezifisch optimierten Images für jede einzelne Applikation gibt. Alles, was hinsichtlich Security Hardening, Performance-Optimierung, Zuverlässigkeits-Engineering und Zertifizierungen in der virtualisierten Welt gilt, betrifft ebenso die Container-Welt.

In der IT bewegen wir uns heute in Richtung einer Architektur, in der Laufzeitabhängigkeiten mit der Applikation gebündelt sind und nicht mehr mit einem kompletten Betriebssystem-Image. Ebenso sehen wir eine Zukunft vor uns, in der das Betriebssystem Multi-Host-Anwendungen unterstützt und dabei als Orchestrator und Scheduler für sie fungiert. Das schließt die Modellierung von Applikationen über verschiedene Hosts und Container hinweg ein, ebenso die Bereitstellung von Services und APIs, um die Applikationen geeigneten Systemressourcen zuzuordnen.

Atomic: ein Betriebssystem für (Docker-)Container

Das Atomic-Projekt verfolgt das Ziel, Technologien für die Optimierung von Container-Hosts bereitzustellen. Auf Basis von Atomic Hosts der Fedora und CentOS Community sowie von Red Hat fokussiert sich das Atomic-Projekt auf das Vorantreiben von Technologieinnovationen. Die Strategie umfasst die Bereitstellung von Applikations-Containern für Open Hybrid Clouds, einschließlich der Portierbarkeit über Bare-Metal-Systeme, virtuelle Maschinen und Private sowie Public Clouds hinweg. Zu nennen ist hier auch die Mitwirkung von Red Hat an Kubernetes, einem Framework zur Verwaltung von Docker-Container-Clustern.

Wichtig ist festzuhalten, dass das prinzipielle Konzept einer Softwarepaketierung nichts völlig Neues ist. Verschiedene Virtualisierungs- und Partitionierungstechnologien zielen ebenfalls auf das Packaging und die Portabilität von Applikationen ab. Zu nennen wäre hier beispielsweise die Applikationsvirtualisierung. Als Lösungsansatz hat sie in der Vergangenheit nur Nischencharakter gehabt, aber in letzter Zeit hat sie im Hinblick auf Clients als „App Store“ an Bedeutung gewonnen.

Bezüglich Container-Lösungen kommt vor allem dem Open-Source-Projekt Docker eine besondere Bedeutung zu. Docker stellt ein wohl durchdachtes API für die Interaktion mit Containern und ein Image-Format bereit, das definiert, wie Inhalte einem Container hinzugefügt werden. Mit Docker steht Entwicklern eine einfache Möglichkeit offen, die hohe und schnell steigende Technologievielfalt im Bereich der Laufzeitumgebungen für ihre Applikationen zu nutzen. Mit einem simplen Kommando „docker pull“ können sie sehr schnell einen Java-, Ruby- oder Python-Stack zum Laufen bringen. Einfach und schnell können Entwickler Applikationen auch mit einer PaaS-Lösung wie Red Hat OpenShift konzipieren. Auch diese Lösung, bei der viele Prozesse in einem System parallel und voneinander isoliert laufen, nutzt bereits Container.

Insgesamt betrachtet zeigt sich, dass Applikationen in der Zukunft zunehmend anpassungsfähiger, mobiler und kleiner (leichtgewichtiger) werden. Dabei darf eines allerdings nicht vergessen werden: Sie „laufen“ immer noch irgendwo. Und dieses „Irgendwo“ ist ein Betriebssystem.

Aufmacherbild: Large container ship in mediterranean coast von Shutterstock / Urheberrecht: Federico Rostagno

Geschrieben von
Gordon Haff
Gordon Haff
Gordon Haff ist Senior Cloud Product Manager bei Red Hat
Kommentare

1
Hinterlasse einen Kommentar

avatar
4000
1 Kommentar Themen
0 Themen Antworten
0 Follower
 
Kommentar, auf das am meisten reagiert wurde
Beliebtestes Kommentar Thema
1 Kommentatoren
Thomas Junk Letzte Kommentartoren
  Subscribe  
Benachrichtige mich zu:
Thomas Junk
Gast
Thomas Junk

Der Vollständigkeit halber sollte man das CoreOS-Projekt (https://coreos.com/) und der Docker-Alternative Rocket (https://coreos.com/blog/rocket/) erwähnen.