Ein Container ist eine Virtualisierungstechnologie, die Anwendungen in ein portables Format verpackt und so deren einfache Bereitstellung auf verschiedenen Plattformen ermöglicht. Ein Container bündelt alle für die Anwendung erforderlichen Komponenten – den Anwendungscode selbst, Abhängigkeiten wie die zum Ausführen der Anwendung benötigten Bibliotheken sowie die Laufzeitumgebung für die Anwendung und ihre Abhängigkeiten – in einem Format, das sich plattformübergreifend übertragen und unabhängig ausführen lässt. Container abstrahieren eine Anwendung von der typischen Betriebssystem-Laufzeitumgebung.

Docker ist das bekannteste Format für die Implementierung von Containern. Es gibt jedoch auch andere Container-Technologien wie rkt/CoreOS, containerd und Hyper-V-Container sowie grundlegende Technologien wie cgroups und Namespaces (beide dienen ähnlich wie Container-Engines der Anwendungsisolierung, bieten jedoch nicht dieselbe isolierte Portabilität wie Container). Sie können Plattformtools wie Docker oder rkt verwenden, um Container direkt zu verwalten. Die meisten Bereitstellungen nutzen für die Containerverwaltung jedoch ein Orchestrierungstool wie Kubernetes . Kubernetes ist zwar nicht zwingend erforderlich, entwickelt sich aber zum Standardtool für produktionsreife Container-Bereitstellungen.

Container sind zu einer sehr beliebten Architekturentscheidung geworden, da sie es ermöglichen, eine Anwendung in kleinere, eigenständige Komponenten aufzuteilen – und so die Zuständigkeiten von Infrastrukturverantwortlichen und Entwicklern voneinander zu trennen. Dies ist während der Entwicklung von Vorteil, da separate Teams parallel an den verschiedenen Komponenten arbeiten können, und bei der Bereitstellung, da ein bestimmter Container zwischen Plattformen übertragen werden kann. Container bieten außerdem ein effizienteres Werkzeug für Anwendungs- und Infrastrukturverantwortliche, da sie unveränderliche Plattformen bereitstellen können, auf denen Entwickler Anwendungscontainer gemäß festgelegten Anforderungen veröffentlichen können, ohne selbst für diese Anforderungen verantwortlich zu sein.

Der Begriff Anwendungscontainerisierung bezeichnet häufig den Prozess der Migration einer Anwendung aus einer standardmäßigen Linux-Laufzeitumgebung in eine eigenständige Form, die in vielen Umgebungen ausgeführt werden kann. Viele Unternehmen sind auf ihrem Weg zur Containerisierung bereits weit fortgeschritten und haben schon mit der Migration zu einfachen Containern oder zu einer umfassenderen Container-Management-Strategie mithilfe eines Tools wie Kubernetes begonnen.

Wie kann NGINX helfen?

Alle NGINX-Produkte können entweder in Containern ausgeführt werden – darunter NGINX Open Source, NGINX Plus (optional mit NGINX App Protect), NGINX Unit, NGINX Service Mesh, NGINX Ingress Controller – oder basieren auf Containertechnologien (NGINX Controller).

Kontaktieren Sie uns noch heute und erfahren Sie, wie wir Sie bei der Bereitstellung moderner Anwendungen unterstützen können.