dem vollständigen Verpacken eines komplett möblierten Zimmers in einer Transportbox vorstellen, die man an praktisch jedem Ort wieder auspacken und unverändert nutzen kann
Was steckt dahinter?
Containerisierung lässt sich am besten mit dem vollständigen Verpacken eines komplett möblierten Zimmers in einer Transportbox vorstellen, die man an praktisch jedem Ort wieder auspacken und unverändert nutzen kann. Bei der Containerisierung wird eine Anwendung zusammen mit allen benötigten Abhängigkeiten – Programmiersprache, Bibliotheken, Konfigurationsdateien – in einem abgeschlossenen “Container” verpackt, der dann auf jedem System, das die passende Container-Laufzeitumgebung unterstützt, identisch funktioniert. Dieses Prinzip löst ein jahrzehntealtes Problem der Softwareentwicklung, das umgangssprachlich oft als “Aber bei mir auf dem Rechner hat es doch funktioniert” bezeichnet wird: Unterschiede zwischen Entwicklungsumgebung, Testumgebung und Produktionsserver führten früher häufig zu Fehlern, die sich nur schwer reproduzieren ließen. Ein Container eliminiert diese Unterschiede, weil er buchstäblich überall dieselbe, in sich geschlossene Umgebung mitbringt. Das mit Abstand bekannteste Werkzeug für Containerisierung ist Docker, das die Erstellung, Verteilung und Ausführung solcher Container stark vereinfacht hat. Bei größeren Projekten mit vielen Containern kommt häufig zusätzlich Kubernetes zum Einsatz, um diese Container im großen Maßstab zu verwalten, automatisch neu zu starten und je nach Last zu skalieren.