Intersim AG – Zur Startseite
Kontakt

"Aber bei mir funktioniert es!" - Containerisierung

Container in einem Frachthafen als Symbolbild für die Informatik

"Aber bei mir funktioniert es!" Wer hat dies nicht auch schon mal gehört? Wahrscheinlich alle.

Autor:in
Joep Neijt
Veröffentlicht

“Aber bei mir funktionier es!”

Es kommt wohl bei uns allen im ganz normalen IT-Alltag vor, wenn wir auf verschiedenen Geräten eigentlich das Gleiche machen wollen. Zum Beispiel, wenn der Drucker beim Kollegen perfekt druckt, und bei sich selber nur Schwarz-Weiss drucken will. Am liebsten sind dann die Geräte, auf denen der Drucker installiert ist, noch vermeintlich identisch, die Konfiguration auch, und dann ist die Verwirrung optimal.

Dies ist leider ein nur allzu häufiges Problem in der Informatik. Wie kann sichergestellt werden, dass die neue Software auf dem Server genau gleich funktioniert, wie in der lokalen Entwicklungsumgebung der Entwicklerin?

Containerisierung

In der IT setzt man dazu aktuell auf die Technologie der sogenannten Containerisierung. Dabei werden Pakete geschnürt, welche die gesamte Umgebung möglichst genau definieren. Das Paket wird dann auf den verschiedenen Systemen (Produktivumgebung, Entwicklungsumgebung, etc.) ausgeführt und repliziert so die definierte Umgebung. Funktioniert die Software innerhalb dieses Pakets, so kann man sich sicher sein, dass die Software auf jedem Gerät korrekt funktioniert. Natürlich unter der Bedingung, dass das Gerät überhaupt weiss, wie dieses Paket auszuführen ist.

Docker

Docker ist eines der führenden Containerisierungs-Systemen, welches aktuell im Einsatz ist. Es erlaubt uns, ein komplettes Betriebssystem mit all den installierten Applikationen, Konfigurationen, Updates, etc. in ein sogenanntes “Image” zu verpacken und später als “Container” auszuführen. Es ist optimiert für Linux Betriebssysteme, da damit bestimmte Teile des Betriebssystems von den Containern direkt genutzt werden können. Das erlaubt Docker, die Images relativ klein zu halten und ist auch der grosse Unterschied zur Virtualisierung. Bei der Virtualisierung wird die Hardware einem virtuellen System zur Verfügung gestellt und simuliert damit ein physisches Gerät. Bei der Containerisierung basiert die Virtualisierung im Gegensatz dazu nicht auf der Teilung der Hardware sondern auf der Teilung der Software (Betriebssystem), es wird daher auch Software-basierte Virtualisierung genannt.

Diagramm Containerisierung für Web

Obwohl Docker für Linux optimiert wurde, kann es mittlerweile auch unter nicht-Linux Betriebssystemen genutzt werden. In diesem Fall installiert Docker einfach die fehlenden Linux-Teile nach und lässt die (Linux-)Container damit laufen. Ebenso sind mittlerweile Windows-Container möglich.

Das Image besteht übrigens aus verschiedenen Schichten, den “Layern”, welche jeweils ein Schritt zur Konfiguration der Umgebung darstellen. Wird also in einem bestehenden Image eine zusätzliche Applikation installiert, so würde dies als weitere Schicht hinzugefügt werden und das neue Image besteht aus allen bisherigen und der neuen Schicht.

Da die Wahrscheinlichkeit nun gross ist, dass ein anderes Image bis zu einem gewissen Punkt die gleiche Umgebung haben wird (zum Beispiel das gleiche grundlegende Betriebssystem), kann dieses zweite Image alle Schichten des ersten nutzen, bis zu dem Punkt, an dem sich die Konfiguration ändert. So teilen sich Images immer jene Schichten, welche identisch sind. Dies wiederum erlaubt es die eigentliches Images klein zu halten.

Das Image wird idealerweise automatisiert erstellt, getestet und in einer “Container Registry”, einer Ablage für Docker Images abgelegt. Von dieser Registry aus kann es dann wieder auf den verschiedenen Umgebungen wie “Dev” für die interne Entwicklung, “Integration” für Kundentests oder die produktive “Live” Plattform ausgerollt werden.

Ausserdem können die Images nun auch einfach in einem komplexeren System wie Kubernetes oder ausgeklügelten DevOps-Zyklen verwendet werden. Doch dazu beim nächsten Mal mehr.

Verwandte Themen

Weiterführende Projekte und Inhalte zum Thema

Website Coaching