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