Was sind Cloud-Container?
Cloud-Container sind Software-Codepakete, die den Code einer Anwendung, ihre Bibliotheken und andere Abhängigkeiten enthalten, die er für die Ausführung in der Cloud benötigt. Jeder Software-Anwendungscode benötigt zusätzliche Dateien, die als Bibliotheken und Abhängigkeiten bezeichnet werden, bevor er ausgeführt werden kann. Bisher musste Software in mehreren Formaten gepackt werden, um in verschiedenen Umgebungen wie Windows, Linux, Mac und Mobilgeräten ausgeführt werden zu können. Ein Container verpackt jedoch die Software und all ihre Abhängigkeiten in einer einzigen Datei, die überall ausgeführt werden kann. Der Betrieb des Containers in der Cloud bietet zusätzliche Flexibilität und Leistungsvorteile in großem Maßstab.
Welche Vorteile bieten Cloud-Container?
Anwendungen können aus Dutzenden, Hunderten oder sogar Tausenden von Containern bestehen. Mit Cloud-Containern können Sie diese Container auf viele verschiedene Cloud-Server oder Instances verteilen und verwalten. Die Cloud-Container funktionieren so, als ob sie sich an einem Ort befinden würden. Verteilte Cloud-Computing-Anwendungsarchitekturen bieten viele Vorteile.
Mehr über Cloud-Server erfahren
Vereinfachte Anwendungsbereitstellung
Container sind einzigartig, weil mit ihnen Software in fast jeder Umgebung bereitgestellt werden kann – ohne dass die Software speziell für die zugrundeliegende Architektur und das Betriebssystem gebündelt werden muss. Bevor die Containerisierung weit verbreitet war, mussten Anwendungen mit bestimmten Bibliotheken gebündelt werden, um auf bestimmten Plattformen ausgeführt zu werden. Das bedeutete, dass die Bereitstellung einer Software auf mehreren Betriebssystemen zu mehreren Softwareversionen führen würde. Mit Cloud-Containern können Anwendungen auf jeder zugrundeliegenden Architektur ausgeführt werden, solange die Containerisierungsplattform darüber ausgeführt wird. Jetzt benötigen Sie nur noch eine Version des produktionsreifen Containers.
Flexibilität
Bei der Cloud-Containerisierung sind die zugrundeliegenden virtuellen Maschinen (VM) allesamt Cloud-Instances. Cloud-Instances sind in verschiedenen Konfigurationen erhältlich, mit schnellem Einrichtung, Auflösung und Cloud-Computing-Preisen „On-Demand“. Diese Rekonfigurierbarkeit bedeutet, dass Sie je nach Bedarf Maschinen austauschen können, je nachdem, was die Anwendung erfordert. Sie können die Ressourcennutzung optimieren, indem Sie containerbasierte Anwendungen auf verschiedene Cloud-Instances statt auf einzelne Server verteilen.
Mehr über Load Balancing lesen
Belastbarkeit
Cloud-Container bieten mehr Zuverlässigkeit und Verfügbarkeit für Anwendungen. Sollte in einer verteilten, containerisierten Architektur eine Maschine ausfallen, kann eine andere schnell die verlorenen Container einrichten und so die Ausfallsicherheit der Anwendung erhöhen. Sie können eine neue Version eines einzelnen Containers in der Anwendung aktualisieren, ohne den Rest der Anwendung zu beeinträchtigen. Dies führt zu längeren Betriebszeiten.
Skalierbarkeit
In herkömmlichen Produktionsumgebungen für Anwendungen ist die Anwendung auf eine einzige Serverressource beschränkt. Mit dem richtigen Anwendungsdesign und dem richtigen Ansatz für die Cloud-Containerisierung werden die Datenverarbeitung und die Ein- und Ausgabe einer Anwendung nicht mehr durch die Beschränkungen eines einzelnen Servers gedrosselt. Sie sind auf verschiedene Rechner verteilt, so dass Sie unbegrenzt skalieren können und eine konstante Leistung und Benutzererfahrung gewährleisten.
Was sind die Anwendungsfälle von Cloud-Containern?
Cloud-Container sind für jedes Unternehmen nützlich, das containerisierte Anwendungen erstellt oder betreibt und Cloud-Computing-Ressourcen nutzen möchte.
Microservices
Mithilfe der Microservices-Architektur können Sie Anwendungen in kleinere unabhängige Komponenten zerlegen, die eine einzige Funktion erfüllen. Das sorgt für Flexibilität und fördert Code-Wiederverwendung und -Effizienz. Cloud-Container ermöglichen die Ausführung großer Anwendungen mit Hunderten oder sogar Tausenden von Microservices über ein verteiltes Netzwerk von Cloud-Instances. Indem Sie den Workload auf mehrere Instances verteilen, können Sie Ihre Abläufe kostenoptimal gestalten und die Kontinuität der Services sicherstellen, wenn eine Maschine ausfällt.
DevOps
DevOps bezeichnet die Automatisierung und Verwaltung der Erstellung, des Testens und des Betriebs von Softwareanwendungen. Der Prozess selbst ist wiederholbar, versioniert und als Code verfügbar. Das spart Zeit bei der Entwicklung und reduziert die Anzahl der manuellen Fehler, die auftreten können. Der Containerisierungs- und Bereitstellungsprozess ist ähnlich und lässt sich gut mit den traditionellen DevOps-Prozessen und -Tools kombinieren. Cloud-Container-Dateien sind versionierbar und unterstützen DevOps-Praktiken der Continuous Integration/Continuous Deployment (CI/CD).
Weitere Informationen über DevOps
Weitere Informationen zu Continuous Integration
Hybrid-Cloud
Es kann sein, dass Sie containerbasierte Anwendungsarchitekturen auf Servern vor Ort und in der Cloud betreiben möchten. Der Einsatz von Cloud-Containern eignet sich gut für die Hybrid-Cloud-Kombination. Container-Services benötigen nur die richtige Netzwerkeinrichtung und den Containerisierungsservice, der auf allen Maschinen läuft, um gemeinsam zu funktionieren.
Wie funktionieren Cloud-Container?
Ein Cloud-Container ist schlicht ein Container, der auf einer Cloud-Infrastruktur und nicht auf einem lokalen Rechner oder in einem Rechenzentrum ausgeführt wird. Container im Cloud Computing sind Image-Dateien, die alles enthalten, was zur Ausführung von Software benötigt wird: Code, Laufzeit, Bibliotheken, Umgebungsvariablen und Konfigurationsdateien. Die Images werden schichtweise aufgebaut, ausgehend von einem Basis-Image – in der Regel eine Minimalversion eines Betriebssystems – und dann entsprechend den Anweisungen in einer Container-Konfigurationsdatei um weitere Schichten ergänzt. Eine der wichtigsten Eigenschaften von Container-Images ist ihre Unveränderlichkeit: Einmal erstellt, ändern sie sich nicht mehr. Sie können Images in einem Container-Registry speichern und sie in verschiedenen Cloud-Umgebungen einheitlich wiederverwenden.
Im Folgenden finden Sie einen Überblick über verschiedene Aspekte der Container-Technologie.
Container-Laufzeit
Container-Laufzeiten sind für die eigentliche Ausführung von Containern verantwortlich. Sie verwalten den Betrieb, den Lebenszyklus und die Ressourcen-Isolierung von Containern. Container arbeiten als isolierte Prozesse im Benutzerbereich des Betriebssystems der Cloud-Instance. Sie teilen sich das Host-Betriebssystem, bleiben aber voneinander und vom Host getrennt. Diese Isolierung ermöglicht eine effiziente Ressourcenzuweisung, bei der die Laufzeit Einschränkungen durchsetzt, um Ressourcenkonflikte zwischen Containern zu vermeiden.
Networking
Sie können Cloud-Container mit eigenen isolierten Netzwerk-Stacks konfigurieren und so sicherstellen, dass sich Anwendungen, die in separaten Containern ausgeführt werden, nicht gegenseitig stören. Die Kommunikation mit der Außenwelt und zwischen den Containern wird durch Port-Zuordnung und vordefinierte Netzwerkkanäle gesteuert.
Speicher
Cloud-Container verwenden in der Regel flüchtige Speicher, d. h. alle Daten, die in die beschreibbare Schicht des Containers geschrieben werden, gehen verloren, wenn der Container angehalten wird. Sie können Cloud-Speicher-Volumes für persistenten Speicher verwenden. Diese Volumes sind vom Lebenszyklus des Containers unabhängig und können von verschiedenen Containern gemeinsam genutzt werden.
Orchestrierung
In großen Systemen automatisieren Orchestrierungs-Tools die Bereitstellung, Skalierung und Verwaltung mehrerer Container. Die Tools verteilen diese Container über einen Cluster von Cloud-Servern, gleichen die Last aus und verwalten Failover-Prozesse. Die Automatisierung vereinfacht die Verwaltung von containerisierten Anwendungen in komplexen Umgebungen erheblich. Sie können fortschrittliche, umfangreiche containerisierte Anwendungen in hybriden Cloud-Architekturen bereitstellen und verwalten, ohne dass Sie Operationen auf jeder einzelnen Cloud Instance durchführen müssen. Anstatt eine Container-Image-Datei manuell auf jede Instance zu übertragen, können Sie die Orchestrierungs-Tools so programmieren, dass sie die Image-Dateien aus der Container-Registrierung abrufen und sie automatisch auf den Cloud-Instances bereitstellen.
Was ist der Unterschied zwischen Cloud-Containern und Cloud-Instances?
Eine Cloud-Instance ist eine VM, deren zugrundeliegende physische Ressource vollständig von einem Cloud-Anbieter verwaltet wird. Cloud-Instances funktionieren wie physische Server und lassen sich vollständig konfigurieren, so dass Sie sie wie einen Server vor Ort nutzen können. Sie erfordern jedoch keine Verwaltung von Hardware und Betriebssystem. Cloud-Instances können schnell und einfach instanziiert und heruntergefahren werden. Sie können Cloud-Container auf Cloud-Instances einsetzen, um ihre verteilten, cloudbasierten Anwendungen auszuführen. Der Begriff Cloud-Container bezieht sich auf einen Container, der auf Cloud-Instances ausgeführt wird.
Mehr über Cloud-Instances erfahren
Mehr zum Unterschied zwischen Containern und virtuellen Maschinen erfahren
Wie kann AWS Ihre Cloud-Container-Anforderungen unterstützen?
Fast 80 Prozent aller Cloud-Container werden heute in Amazon Web Services (AWS) ausgeführt. Die AWS-Container-Services bieten viele System-Tools für die Verwaltung Ihrer zugrundeliegenden Container-Infrastruktur, so dass Sie sich auf Innovationen und Ihre Geschäftsanforderungen konzentrieren können.
- AWS Copilot ist eine Befehlszeilenschnittstelle (CLI) zum schnellen Starten und Verwalten von containerisierten Anwendungen in AWS
- Amazon Elastic Container Service (Amazon ECS) ist ein vollständig verwalteter Container-Orchestrierungsservice und ein Systemwerkzeug für die effiziente Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen
- Amazon Elastic Kubernetes Service (Amazon EKS) ist ein verwalteter Kubernetes-Service für die Ausführung der Kubernetes-Container-Orchestrierung in der AWS-Cloud und in On-Premises-Rechenzentren.
- Amazon Elastic Container Registry (Amazon ECR) ist ein vollständig verwaltetes Container-Registry für die einfache Verwaltung von und den Zugriff auf Container-Images und Artefakte
- AWS Fargate ist eine Serverless-Compute-Engine für Container, mit der Sie sich auf die Entwicklung von Anwendungen konzentrieren können, anstatt die Infrastruktur zu verwalten
Die folgende Abbildung zeigt die Optionen für AWS Container-Lösungen nach Ebenen: Bereitstellung, Orchestrierung und Kapazität.
Beginnen Sie mit Cloud-Containern in AWS, indem Sie noch heute ein Konto anlegen.
Nächste Schritte in AWS
Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.
Beginnen Sie mit der Entwicklung mit AWS in der AWS-Managementkonsole.