Schauen Sie mal rein: Anwendungsfälle, Beispiele und Anwendungen für Container
29. Februar 2024
Lesedauer: 5 Minuten

Das Container-Management hat große Fortschritte gemacht. Jahrzehntelang war die Verwaltung von Containerumgebungen eine relativ einfache Angelegenheit. Die moderne Idee eines Computercontainers tauchte erstmals in den 1970er Jahren auf, als das Konzept erstmals zur Definition von Anwendungscode auf Unix-Systemen verwendet wurde.

Die moderne Containerisierungstechnologie hat sich seit ihren frühen Anfängen stetig weiterentwickelt, und wenn Unternehmen heute Container einsetzen, erzielen sie einen viel höheren Nutzen für ihre Investition. Von kleinen Startups bis hin zu großen, etablierten Unternehmen – Container-Frameworks haben sich als äußerst fähig erwiesen, stabile Workflows mit optimierten Laufzeiten und kontinuierlicher Bereitstellung zu generieren.

Was ist ein Container?

Container sind ausführbare Softwareeinheiten, in denen der Anwendungscode mit seinen Bibliotheken und Abhängigkeiten verpackt ist. Sie werden auf standardisierte Weise verpackt, so dass der Code überall ausgeführt werden kann, ob auf dem Desktop, in der traditionellen IT oder der Cloud.

Dies geschieht durch eine Form der Betriebssystemvirtualisierung, bei der Funktionen des Betriebssystemkernels (z. B. Linux-Namespaces und Cgroups, Windows-Silos und Jobobjekte) genutzt werden können, um Prozesse zu isolieren und die Menge an CPU, Speicher und Festplatte zu steuern, auf die diese Prozesse zugreifen können.

Container und Docker

Die Containertechnologie hat sich mit der Einführung von Docker im Jahr 2013 grundlegend verändert und hat auch in diesem Jahrzehnt unvermindert an Popularität und Benutzerakzeptanz gewonnen. Es bestand eindeutig eine starke, aber nicht erfüllte Nachfrage nach einer Containerisierungssoftware dieser Art, wie der schnelle Erfolg von Docker und seine inzwischen überwältigende Marktüberlegenheit belegen.

Eine IBM-Umfrage aus dem Jahr 2021 ergab, dass 61 % der Befragten angaben, in mindestens 50 % der neuen Anwendungen, die sie in den letzten 2 Jahren entwickelt hatten, Container verwendet zu haben. Eine noch größere Gruppe von Befragten (64 %) gab an, sie erwarte, Container für mindestens 50 % der Apps zu verwenden, die sie in den nächsten 2 Jahren erstellen werde.

Bei Containern geht es um die Verteilung und den Schutz von Daten und die Ausführung von Anwendungen. Daher ist es nur logisch, dass die IT-Branche der Hauptnutzer von Containerisierungssoftware ist, wobei die folgenden Branchen zu den drei Hauptnutzern gehören (Link befindet sich außerhalb von ibm.com):

  1. Maschinelles Lernen
  2. Softwareentwicklung
  3. Künstliche intelligenz (KI)
Docker und Kubernetes

Der Markt für Containeranwendungen wird derzeit von zwei Unternehmen dominiert:

Docker

Die am häufigsten verwendete Containerisierungsplattform ist Docker. Docker-Container wurden ursprünglich 2013 um die Docker Engine herum gebaut und laufen über eine Anwendungsprogrammierschnittstelle (API). Docker ist eigentlich eine Platform-as-a-Service (PaaS) und ihr Hauptvorteil ist ihre Flexibilität. Docker kann jede Anwendung und die damit verbundenen Abhängigkeiten in einen virtuellen Container umwandeln, der dann auf jedem Computer mit Windows, macOS oder Linux ausgeführt werden kann. Das System verwendet Docker-Images, d. h. schreibgeschützte Vorlagen, die für die Erstellung von Containern verwendet werden, und „Dockerfiles“, d. h. Textdateien, die Docker-Images begleiten und erläutern. Docker-Images und andere Container-Images benötigen Speicherplatz für die Ausführung. Dies wird von der Container-Runtime verwaltet – einer Softwarelösung, die mit dem Betriebssystem interagiert, um den erforderlichen Speicherplatz für die Ausführung von Container-Images bereitzustellen.

Kubernetes

Die beliebteste Plattform zur Container-Orchestrierung ist Kubernetes, das 2014 von Google erstellt wurde und immer noch für die robuste Art und Weise bekannt ist, in der es die Bereitstellung von Software automatisiert, Skalierbarkeit ermöglicht und die Containerverwaltung unterstützt. Darüber hinaus ist Kubernetes ein Open-Source-System und fördert die rege Beteiligung von Mitwirkenden (die das Projekt jetzt beaufsichtigen), wobei jeder Softwareanbieter seine eigene Variante zu Kubernetes einsetzt. Bei einigen Diensten können Benutzer beispielsweise nicht nur Kubernetes-Cluster erstellen, sondern auch skalierbare Web-Apps bereitstellen und Protokolle analysieren.

Derzeit sind Docker und Kubernetes die mit Abstand am häufigsten verwendeten Tools im Umgang mit Computercontainern. Jüngsten Prognosen zur Containerisierung (Link führt zu einer Seite außerhalb von ibm.com) für 2024 zufolge kontrolliert Dockers jetzt beachtliche 82,8 % dieses Marktes, während Kubernetes einen Marktanteil von 11,52 % hat.

Weitere Informationen zum Zusammenhang zwischen Kubernetes und Docker finden Sie unter „Kubernetes vs. Docker: Warum nicht beides?“.

Anwendungsfälle für Container

Es gibt keinen Mangel an entsprechenden Anwendungsfällen für Container, da diese insbesondere in Cloud-Computing-Umgebungen oder -Ökosystemen immer wichtiger werden. Viele Unternehmen ziehen Container sogar als Ersatz für virtuelle Maschinen (VMs) in Betracht, wenn es um die Wahl einer universellen Cloud-Computing-Plattform für ihre Anwendungen und Workloads geht. Aber innerhalb dieses sehr breiten Spektrums gibt es wichtige Anwendungsfälle, in denen cloudnative Container besonders relevant sind:

  • Microservices: Container sind klein, leicht und portabel, was sie zur idealen Wahl für Microservices-Architekturen macht, bei denen containerisierte Anwendungen aus vielen, lose gekoppelten und unabhängig voneinander einsetzbaren kleineren Services bestehen. Ein Hypervisor wird verwendet, um Microservice-Vorgänge zu überwachen, wenn auf einem Computer mehr als eine virtuelle Maschine verwendet wird.
  • DevOps: Die Kombination von Microservices als Architektur und Containern als Plattform ist eine starke Kombination und eine gemeinsame Grundlage für viele Teams, die DevOps und Entwicklungsumgebungen für ihre Softwareentwicklung nutzen.
  • Hybride Multicloud: Da Sie Container überall konsistent ausführen können – auf Laptops, lokal und in Cloudumgebungen – stellen sie eine ideale Basisinfrastruktur und Architektur für Cloud-Provider sowie jede Hybrid Cloud und alle Hybrid-Cloud- und Multicloud-Szenarien dar, in denen Unternehmen mit einer Mischung aus mehreren Public Clouds und Private Clouds in Kombination mit einem lokalen Rechenzentrum arbeiten.
  • Serverless: Serverless befreit cloudnative Entwickler, die an der Erstellung von Apps arbeiten, davon, sich über Serveranforderungen und -beschränkungen Gedanken zu machen, die im Hintergrund verbleiben. Ein großer Vorteil der serverlosen Methode besteht darin, dass sie die notwendige geistige Konzentrationsfähigkeit eines Entwicklers beim Erstellen von Apps fördert, ohne ihn mit unzähligen Details zu überfordern.

Verwandte Anwendungsfälle und Lösungen

Container, Containerisierung oder Containerorchestrierung spielen auch eine Rolle in den folgenden verwandten Lösungen:

  • Anwendungsmodernisierung und -migration: Einer der häufigsten Ansätze für die Anwendungsmodernisierung ist es, zuerst die Anwendungen zu optimieren und zu containerisieren, um sie für eine spätere Migration in eine Cloud-Architektur vorzubereiten. Dieser Prozess sollte vor der Erstellung des Anwendungscodes erfolgen, bei dem es sich um den Quellcode handelt, der alle Anweisungen für diese Anwendung enthält.
  • Separate Container: Separate Container sind weit verbreitet, weil sie die Benutzer von Microservices so gut unterstützen. Wie der Name schon sagt, werden separate Container in erster Linie verwendet, um Microservices besser zu organisieren, indem sie es Benutzern ermöglichen, verschiedene Aspekte eines „überfüllten“ Containers in mehreren partitionierten Containern zu behalten. Separate Container werden auch als Steigerung der Betriebseffizienz angesehen, da notwendige Updates schnell und einfach durchgeführt werden können.
  • Mandantenfähigkeit: Mandantenfähigkeit (Multi-Tenancy) ist ein eigenes Architektursystem, das um ein System von Benutzern (sogenannte Mandanten (Tenants)) herum strukturiert ist, die alle eine einzelne Anwendung in einer gemeinsamen Umgebung betreiben. Obwohl in einem mandantenfähigen System einige Anpassungsoptionen verfügbar sind, werden diese Optionen absichtlich eingeschränkt, damit das System einfach und leicht zu bedienen ist. Container eignen sich gut für die Verwaltung von mandantenfähigen Bereitstellungen, da mehrere Anwendungen auf einem einzigen Host ausgeführt werden können.
Container-Typen

Es gibt zwei grundlegende Arten von Containern, die jeweils eine andere Gruppe von Containertechnologien bedienen:

Systemcontainer

Systemcontainer, die auch als „Betriebssystemcontainer“ bezeichnet werden, ermöglichen die gleichzeitige Ausführung vieler verschiedener Prozesse. Systemcontainer sind ideal für die Verwaltung traditioneller Apps und die Handhabung monolithischer Anwendungen, die für die Ausführung einer einzigen Funktion ausgelegt sind, wie sie durch eine logische ausführbare Datei ausgedrückt wird. Diese Container sind auch für das Hosting der Architektur, der Konfigurationen und der Tools ausgestattet, die für die Ausführung von VMs erforderlich sind. Systemcontainer verbieten standardmäßig geschichtete Dateisysteme.

Unterstützte Container-Technologien: BSD Jails, Linux VServer, LXC, OpenVZ, Solaris Zones

Anwendungscontainer

Anwendungscontainer sind nicht annähernd so vielseitig wie Systemcontainer, die mehrere Prozesse gleichzeitig ausführen können. Anwendungscontainer tragen diesen Namen sogar, weil sie dazu gedacht sind, eine Anwendung zu bedienen, indem sie eine und nur eine ausführbare Aktion ausführen. Anwendungscontainer sind dazu da, einen einzelnen Dienst zu verpacken und zu betreiben. Sie unterstützen keine mehrschichtigen Dateisysteme.

Unterstützte Container-Technologien: Docker, Rocket

IBM und Container

Die Containerisierung erfordert einige zusätzliche Anstrengungen und Geräte, zahlt sich aber aus. Container-Orchestrierungstools können eine einfachere Container-Erfahrung für Ihre Produktionsumgebungen ermöglichen – unabhängig davon, wo sich Ihre Produkte in ihren jeweiligen Lebenszyklen befinden.

Mit den Container-Services von IBM, die auf Open-Source-Technologien wie Kubernetes basieren, können Sie schneller, sicherer und produktiver in die Cloud wechseln.

Autor
Phill Powell Writer