The Doppler Quarterly (DEUTSCHE) Frühjahr 2018 | Page 61
„Die Argumentation meines Gegners erinnert mich
an den Ungläubigen, der gefragt wird, worauf die
Welt steht, und der antwortet: ‚Auf einer Schild-
kröte.‘ ‚Aber worauf steht die Schildkröte?‘ ‚Auf
einer anderen Schildkröte.‘ Auch bei Mr. Barker
sind es lauter Schildkröten, die bis ganz nach unten
reichen.“ (Starker und lauter Applaus.)
– Second Evening: Remarks of Rev. Dr. Berg
Sie haben vielleicht schon von Containern gehört und
halten sie für eine weitere Methode für die Virtuali-
sierung von Anwendungen und ihre Entkopplung von
Hardware. Noch wichtiger ist jedoch, dass Container
eine weitere Ebene in einem sich ständig weiterent-
wickelnden Stack von Tools und Technologien dar-
stellen, die von den meisten Entwicklern moderner
Cloud-nativer Anwendungen verwendet werden, um
ihren Kunden schneller einen Nutzen zu bieten. Eric
Pearson, CIO der Intercontinental Hotels Group, fasst
dies gut zusammen:
„Heute geht es nicht mehr darum, dass große
Unternehmen die kleinen übertreffen, sondern
dass die schnellen Unternehmen die langsamen hin-
ter sich lassen.“
Wie jeder weiß, der schon einmal Cloud-native
Anwendungen erstellt hat, geht es bei der Migration
in die Cloud nicht um die Kostenoptimierung, son-
dern um eine schnelle und agile Bereitstellung. Cont-
ainer sind der Motor für die Entwicklung moderner
Anwendungen. Sie sind nur die Spitze des Eisbergs
und die Open-Source-Community treibt Innovation
voran wie nie zuvor. Als IT-Experte sollten Sie wissen,
warum Container wichtig sind, wie sie mit der Virtu-
alisierung zusammenhängen und welches Ökosys-
tem auf den Schultern von Riesen erstellt wird.
VMs und Container
Virtuelle Maschinen (VMs) haben die IT-Branche revolu-
tioniert. Zu den wichtigsten Angeboten gehören: der
VMware ESX Hypervisor, der Linux KVM Hypervisor,
auf dem OpenStack basiert, Microsoft Hyper-V und der
Xen Hypervisor, der größtenteils die Grundlage der
AWS IaaS bildet. Diese Angebote haben es Unternehmen
ermöglicht, eine komplette verteilte Betriebsumgebung
unabhängig von der zugrunde liegenden Hardware aus-
zuführen. Die Virtualisierung ist jedoch nichts Neues.
Mainframe-Systeme nutzen die Virtualisierung schon
seit Jahrzehnten. Time-Sharing-Systeme wurden von
IBM bereits Ende der 1960er und Anfang der 1970er
Jahre entwickelt. Davor waren Mainframe-Computer
Systeme für die Einzelnutzung. Doch innovative Pro-
dukte wie die Systeme IBM 360 und 370 und das
Time-Sharing-Betriebssystem CP/CMS brachten bahn-
brechende Technologien auf den Markt und markierten
den Wandel von Einzelnutzungssystemen zu Systemen
für mehrere Benutzer und mehrere Aufgaben. Die Ein-
führung von x86-Prozessoren mit MMUs und die Kom-
merzialisierung der Hypervisor-Technologie von
VMware führten dazu, dass die Mainframe-Virtualisie-
rung der breiten Masse zur Verfügung stand.
Die Docker- und Container-Technologie ist momentan
der letzte Schrei, aber viele halten Container fälschli-
cherweise für einen Ersatz für virtuelle Maschinen.
Container können jedoch problemlos auf jedem
Betriebssystem genutzt werden, unabhängig davon,
ob es in einer VM ausgeführt oder auf einem Bare-Me-
tal-Server gebootet wird. Container sind eine Methode
für die Entkopplung der Runtime-Umgebung einer
Anwendung und ihrer Abhängigkeiten vom zugrunde
liegenden Betriebssystem-Kernel und damit eine
Lösung für das Problem der Softwareportierbarkeit
(siehe Abbildung 1). Mit Containern können Sie eine
Anwendung einmal erstellen und überall ausführen.
Im Kern basiert Docker auf Linux Containers (LXC).
Ein Linux-Container besteht aus sogenannten
cgroups, die Limitkontrollen für eine Gruppe von
Ressourcen (Hauptspeicherlimits, Priorisierung etc.)
und Namensbereichen bereitstellen. Diese Kontrol-
len stellen eine eigene Sandbox für eine Reihe von
Prozessen bereit – über Konstrukte wie PID-Isola-
tion, ein gerootetes Dateisystem (d. h. einen
beschreibbaren Snapshot, der mittels chroot in den
Container geändert wird) und private Benutzer-/
Gruppen-ID-Bereic he. Docker-Container erstellen
auf diesen Linux-Kernel-Funktionen ein anwen-
dungsorientiertes Packaging-System, mit dem Sie
Ihren Code und alle Abhängigkeiten in einem einzel-
nen Artefakt bündeln können, das auf jede Docker-fä-
hige Maschine portiert werden kann. Darüber hinaus
können Container ähnlich wie Objekte in objektorien-
FRÜHJAHR 2018 | THE DOPPLER | 59