Was ist eine Container-Bereitstellung?

Container werden häufig eingesetzt, um Microservices zu erstellen, zu paketieren und bereitzustellen. Ein Container enthält den gesamten Code, die Laufzeitumgebung, die Bibliotheken und alles, was sonst noch für die Ausführung des containerbasierten Workloads benötigt wird.

Container-Bereitstellung ist das Verschieben von Containern in ihre Zielumgebung, z. B. in eine Cloud oder auf einen On-Premises-Server. Ein Container kann zwar eine komplette Anwendung enthalten, tatsächlich handelt es sich bei den meisten Container-Bereitstellungen aber um Multi-Container-Bereitstellungen, d. h., Sie übertragen mehrere Container in die Zielumgebung. Für dynamischere, große Systeme können Sie Hunderte oder sogar Tausende von Containern pro Tag bereitstellen.

Container sind so konzipiert, dass sie je nach Anwendung schnell gestartet und gestoppt werden können. Der Grund dafür ist, dass Container häufig eingesetzt werden, um Microservices zu erstellen, zu paketieren und bereitzustellen. Microservices sind eine Softwarearchitektur, die eine große Lösung – auch als Monolith oder monolithische Anwendung bezeichnet – in kleinere logische Einheiten aufteilt. Jeder dieser Microservices wird dann unabhängig in einem eigenen Container ausgeführt. Diese moderne Softwareentwicklungsmethode bietet unzählige Vorteile, einschließlich der Möglichkeit, Bereitstellungen und nachfolgende Codeänderungen zu beschleunigen.

Statusbericht zu Kubernetes

7 Wege zum Verbessern der Entwicklererfahrung und Beschleunigen der Softwarebereitstellung auf Kubernetes

Welche Vorteile bietet Container-Bereitstellung?

Container und zugehörige Technologien wie Orchestrierungstools bieten mehrere Vorteile und sind daher für moderne Softwareentwicklungsteams interessant. Dies gilt insbesondere für Teams, die an Zielen für die digitale Transformation arbeiten oder Softwareprodukte schneller und häufiger als bisher bereitstellen müssen. Container-Bereitstellungen bieten die folgenden Vorteile:

Geschwindigkeit: Container können den Weg zu einer schnelleren Entwicklung und zu häufigeren Bereitstellungen ebnen, insbesondere wenn sie in CI/CD-Pipelines verwendet werden. Container vereinfachen in Kombination mit Container-Orchestrierung und der zunehmenden Automatisierung über CI/CD den operativen Aufwand beim Bereitstellen von Code in der Produktion, u. a. in Bereichen wie Infrastrukturbereitstellung und -tests.

Agilität und Flexibilität: Container sind so konzipiert, dass sie bei Bedarf schnell eingerichtet und später wieder stillgelegt werden können. Sie sind daher dafür geeignet, dynamische Business-Ziele und -Bedingungen zu unterstützen. Ihr isolierter Charakter bietet insbesondere in Verbindung mit einer Microservices-Architektur weitere Vorteile, z. B. eine verbesserte Sicherheitskontrolle und die Möglichkeit, einen containerbasierten Workload zu aktualisieren, ohne die gesamte Anwendung neu bereitstellen zu müssen.

Ressourcenauslastung und -optimierung: Container werden von ihrem zugrunde liegenden Betriebssystem und ihrer Infrastruktur abstrahiert. Daher sind sie schlank und verbrauchen weniger Systemressourcen. Dies ist ein wesentlicher Unterschied zu virtuellen Maschinen, bei denen jede Anwendung über ein eigenes Gastbetriebssystem verfügen muss. In Containern können mehrere Anwendungen dasselbe Betriebssystem verwenden. Dadurch ist es möglich, mehrere Anwendungen auf gemeinsam genutzten Ressourcen auf derselben Maschine auszuführen. Die Möglichkeit, viele Container auf demselben Host auszuführen, wird auch als Dichte bezeichnet.

Ortsunabhängige Ausführung: Da Container vom zugrunde liegenden Betriebssystem und ihrer Infrastruktur abstrahiert werden, können sie in jeder Umgebung konsistent ausgeführt werden. Der Code (und alles, was sonst zum Betreiben von Containern erforderlich ist) wird unabhängig davon, wo Ihr Container bereitgestellt wird, auf dieselbe Weise ausgeführt. Ob Public oder Private Cloud, On-Premises- oder gehosteter Server oder Entwickler-Laptop – Container sind so konzipiert, dass sie überall konsistent ausgeführt werden.

Was spricht für Container-Bereitstellungen?

Container-Bereitstellungen eignen sich gut für eine Vielzahl moderner Software- und Infrastrukturstrategien, einschließlich des oben genannten Microservice-Ansatzes. Sie werden von den Umgebungen abstrahiert, in denen sie ausgeführt werden, und können so die Anwendungsentwicklung beschleunigen und das Budget von IT-Operations-Teams reduzieren.

Infolgedessen sind containerbasierte Anwendungen beliebt bei DevOps-Teams und anderen Abteilungen, die von herkömmlichen monolithischen Ansätzen (Legacy-Konzepten) auf Softwareentwicklung umgestiegen sind. Container-Bereitstellungen funktionieren auch gut mit CI/CD-Prozessen und -Tools (Continuous Integration und Continuous Delivery). (CD steht auch für „Continuous Deployment“, einen verwandten, aber eigenständigen Bereich, der einen Schritt weiter geht und Code komplett automatisch in der Produktion bereitstellt, ohne dass eine manuelle Genehmigung erforderlich ist.)

Containerbasierte Technologie und Container-Bereitstellungen eignen sich auch gut für Umgebungen mit einer dezentralen oder heterogenen Infrastruktur wie Multi-Cloud- und Hybrid-Cloud-Umgebungen.

Wie werden Container bereitgestellt?

Für die Container-Bereitstellung gibt es eine Vielzahl von Tools. Docker ist beispielsweise eine beliebte Container-Plattform und -Laufzeit, mit der Mitarbeiter und Teams Container erstellen und bereitstellen. Eine Container-Bereitstellung mit Docker beginnt mit dem Erstellen eines Docker-Image für Ihren Container. Sie können auch ein vorhandenes Docker-Image aus dem Docker Hub-Repository verwenden. Dort werden vorgefertigte Images für gängige Services und Anwendungsanforderungen geteilt. In der Docker-Dokumentation finden Sie detaillierte technische Anweisungen für die ersten Schritte.

Mit verschiedenen Tools für das Konfigurationsmanagement oder für Infrastructure as Code können Sie Skripts erstellen, die Container-Bereitstellungen vollständig oder teilweise automatisieren. Dabei wird häufig auch auf eine Container-Plattform wie Docker zurückgegriffen. Jedes dieser Tools verfügt über eigene Methoden und technische Anweisungen, um eine Container-Bereitstellung oder die Konfiguration einer Anwendung zu automatisieren. Verwenden Sie Konfigurationsmanagement- oder Infrastructure-as-Code-Tools, um Skripts zu schreiben – diese haben der jeweiligen Plattform entsprechend unterschiedliche Namen –, die bestimmte Aufgaben für Container-Bereitstellung und -Management automatisieren und dabei Best Practices für die Konfiguration berücksichtigen.

Zugehörige Lösungen und Produkte

VMware Tanzu for Kubernetes Operations

Die Grundlage für eine moderne Multi-Cloud-Container-Infrastruktur

VMware Tanzu Application Platform

Unvergleichliche Multi-Cloud-Entwicklererfahrung auf Kubernetes

VMware Tanzu Community Edition

VMware Tanzu jetzt testen