Container sind eine Methode zur Betriebssystem-Virtualisierung, mit dessen Hilfe Sie eine Anwendung und ihre Abhängigkeiten in Ressourcen-isolierten Prozessen ausführen können. Mit Containern können Sie Code, Konfigurationen und Abhängigkeiten einer Anwendung in einfach zu handhabende Bausteine verpacken, die Umgebungskonsistenz, operative Effizienz, Entwicklerproduktivität und Versionskontrolle bieten. Container können gewährleisten, dass Anwendungen schnell, zuverlässig und konsistent bereitgestellt werden, unabhängig von der Bereitstellungsumgebung. Container bieten Ihnen auch eine präzise Steuerung der Ressourcen, sodass Ihre Infrastruktur effizienter wird. Wenn Sie Container in einer AWS-Cloud ausführen, können Sie robuste, skalierbare Anwendungen und Services aufbauen, indem Sie die Vorteile der AWS-Cloud wie Elastizität, Verfügbarkeit, Sicherheit sowie Größenvorteile nutzen. Sie bezahlen auch nur für die Ressourcen, die Sie nutzen.

monolith_2-VM-vs-Containers

Amazon Elastic Container Service

Erste Schritte

EkoSystem-Tag: Entwicklung moderner Apps mit AWS Container Services

Jetzt registrieren
Site-Merch_PAC_Fargate

Webinare: Partner-Container-Lösungen auf AWS

Weitere Informationen
Containers_Benefit_EnvironmentConsistency

Container ermöglichen die Portabilität und helfen, die organisatorischen und technischen Reibungspunkte beim Durchlaufen der Entwicklungs-, Test- und Produktionszyklen einer Anwendung zu reduzieren. In Containern werden alle erforderlichen Anwendungsdateien und Software-Abhängigkeiten verkapselt. Sie dienen als Baustein, der auf jeder beliebigen Computerressource bereitgestellt werden kann, unabhängig von Software, Betriebssystem oder Hardware-Konfigurationen (beispielsweise können Sie den gleichen Container auf Ihrem Ubuntu-Laptop und auf Ihren Produktionsservern mit Red Hat Enterprise Linux ausführen). Alles, was Sie lokal als Container verpacken, wird bereitgestellt und auf die gleiche Weise ausgeführt, sei es beim Testen oder in der Produktion. Dies ist von großem Vorteil für Sie und für Ihre Organisation, weil Sie eine Anwendung zuverlässig und konsistent bereitstellen können, ganz gleich in welcher Umgebung. So vermeiden Sie, jeden einzelnen Server manuell konfigurieren zu müssen, und können neue Funktionen schneller freigeben.

Containers_Benefit_OperationalEfficiency

Container können Ihnen helfen, Ihre Computerressourcen besser zu nutzen, weil Sie bequem mehrere Anwendungen auf der gleichen Instance ausführen können. Mit Containern können Sie genaue Werte für Arbeitsspeicher, Festplattenkapazität und CPU festlegen, die ein Container auf einer Instance nutzen soll. Container bieten kurze Boot-Zeiten, weil jeder Container auf einem Betriebssystem nur ein Prozess ist, der eine Anwendung und ihre Abhängigkeiten ausführt. Aufgrund des geringen Ressourcenverbrauchs können Sie Anwendungen und Aufgaben, die in einem Container verkapselt sind, schnell erstellen und beenden. Außerdem können Sie Anwendungen problemlos skalieren. Sie können blaugrüne Bereitstellungsmuster verwenden, um neue Anwendungsversionen einzuführen (etwa mit Amazon Elastic Container Service), weil die gesamte Anwendung und alle ihre Abhängigkeiten in einem Abbild enthalten sind. Container bieten auch Prozessisolation. So können Sie jede einzelne Anwendung und ihre Abhängigkeiten in einen separaten Container platzieren und sie auf ein und derselben Instance ausführen. Es gibt keine freigegebenen Abhängigkeiten oder Kompatibilitätseinschränkungen, weil die einzelnen Container voneinander isoliert sind (zum Beispiel können Sie zwei Container, die verschiedene Bibliotheksversionen verwenden, auf derselben Amazon EC2-Instance ausführen).

Sie können auch Container-Abbilder erstellen, die als Grundlage für weitere Abbilder dienen. Operative Teams können ein Basisabbild erstellen, das aus dem Betriebssystem, Konfigurationen sowie den verschiedenen benötigten Dienstprogrammen besteht. Entwicklungsteams können anschließend ihre Anwendung auf der Grundlage dieses Basisabbilds aufbauen. So vermeiden Sie die Komplexität der Serverkonfiguration.

Containers_Benefit_DeveloperProductivity

Container erhöhen die Entwicklerproduktivität, weil Service-übergreifende Abhängigkeiten und Konflikte entfallen. Jede einzelne Anwendungskomponente kann in verschiedene Container aufgeteilt werden, die unterschiedliche Mikrodienste ausführen. Container sind voneinander isoliert. Sie brauchen sich also keine Gedanken darüber zu machen, ob Bibliotheken oder Abhängigkeiten für jeden einzelnen Service synchron sind. Entwickler können jeden einzelnen Service unabhängig aktualisieren, weil es keine Bibliothekskonflikte gibt.

Containers_Benefit_VersionControl

Anhand von Containern können Sie die Versionen Ihres Anwendungscodes und der Abhängigkeiten verfolgen. Docker-Container-Abbilder haben eine Manifestdatei (Dockerfile), mit der Sie Versionen eines Containers einfach pflegen und verfolgen, Versionsunterschiede prüfen und zu früheren Versionen zurückkehren können.