Technische Konzepte

Eine Container Engine ist Software, die ein Container Image aus einer Container Registry herunterlädt und den Container ausführt. Die Container Engine virtualisiert das darunterliegende Host-Betriebssystem. Das bedeutet, dass der Container nicht direkt mit dem Betriebssystem interagiert, sondern alle Aufrufe durch die Container Engine gehen. Somit isoliert die Container Engine den Container vom Rest des Systems, dies trägt zu besserer Sicherheit bei.

Ein Containerverwaltungsservice (engl. Container Orchestrator) ist Software, die im Kontext vom Ausführen von Containern auftaucht. Ein Containerverwaltungsservice ist nicht zwingend notwendig zum Ausführen von einem Container, dafür ist die Container Engine zuständig. Dennoch macht ein Containerverwaltungsservice das Betreiben von Container einfacher. Meistens soll nicht nur ein Container ausgeführt werden. Oft werden mehrere Container mit dem gleichen oder unterschiedlichen Container Images ausgeführt. Im Zusammenhang von Cloud Computing hast du bereits Anforderungen wie hohe Verfügbarkeit und Elastizität kennengelernt. Diese Anforderungen können durch das Ausführen von mehreren Containern erfüllt werden. Ein Containerverwaltungsservice kontrolliert die Anzahl der Container. Zum Beispiel kann ein Containerverwaltungsservice, wenn am Black Friday mehr Kunden als normal gleichzeitig shoppen, mehr Container starten, damit alle Anfragen bearbeitet werden (Elastizität). Ein Containerverwaltungsservice kann einen Container neu starten, falls dieser gecrasht ist und trägt somit zur Hohen Verfügbarkeit bei.

Lass uns all diese neuen Konzepte mithilfe von einer Analogie besser verstehen. Ein musikalisches Blasorchester besteht aus einem Dirigenten, Musikinstrumenten (z.B. Trompete, Tuba, …), Menschen, und Notenbüchern. Ein Notenbuch beinhalten den Text der Musik beschreibt. Ein Notenbuch ist wie ein Container Image, das Container Image beinhaltet den Code, der die Applikation beschreibt. Die Notenbücher werden in einem Bücherregal gespeichert. Genauso werden Container Images in einer Container Registry gespeichert. Das Bücherregal ist also die Analogie für eine Container Registry. Um eine Aufführung durchzuführen, wählen die Menschen, die im Orchester mitspielen, verschiedene Notenbücher für die verschiedenen Instrumente. Die Menschen sind also wie eine Container Engine, die Container Images herunterlädt. Die Menschen in einem Blasorchester blasen Luft in die Musikinstrumente und die Musikinstrumente produzieren Töne. Vergleichbar führt die Container Engine (Menschen) die Container aus und gibt die Eingabe (Luft) an die Container (Musikinstrumente). Die Bühne, auf der die Menschen mit den Musikinstrumenten stehen, kann unsere Serverhardware mit Host-Betriebssystem darstellen. Auf der Bühne können mehrere Trompeten gleichzeitig gespielt werden und es können auch andere Musikinstrumente zeitgleich auf der Bühne gespielt werden. Genauso kann die Container Engine auf dem Host-Betriebssystem mehrere Instanzen von einem Container Image gleichzeitig ausführen und auch Container mit einem anderen Container Image zeitgleich ausführen. Zum Beispiel können mehrere Backend-Container und mehrere Frontend-Container gleichzeitig ausgeführt werden. Zuletzt steht der Dirigent in unserer Analogie stellvertretend für den Containerverwaltungsservice. Der Dirigent leitet das Orchester und sagt den Menschen, die Instrumente nicht zu spielen oder weiterzuspielen. Auch der Containerverwaltungsservice sendet der Container Engine Befehle, um Container zu stoppen oder zu starten.