Menü

Was sind Container?

Themen
DevOps-Lösungen

Diese Seite teilen

Container sind eine Form der Betriebssystemvirtualisierung. Mit einem einzelnen Container kann alles ausgeführt werden – von einem kleinen Microservice oder Softwareprozess bis hin zu einer größeren Applikation. In einem Container befinden sich alle notwendigen ausführbaren Dateien, Binärcode, Bibliotheken und Konfigurationsdateien. Im Vergleich zu den Ansätzen für Server- oder Maschinenvirtualisierung enthalten Container jedoch keine Betriebssystem-Images. Dadurch sind sie leichter und portabler, und der Overhead ist deutlich geringer. Für größere Implementierungen von Applikationen können mehrere Container als ein oder mehrere Container-Cluster bereitgestellt werden. Diese Cluster können von einem Container-Orchestrator wie Kubernetes gemanagt werden.

Vorteile von Containern

Container sind eine optimierte Methode zum Erstellen, Testen, Bereitstellen und Neuimplementieren von Anwendungen in mehreren Umgebungen – vom lokalen Laptop eines Entwicklers bis hin zu einem On-Premises-Rechenzentrum und sogar der Cloud. Die Vorteile von Containern umfassen:

  • Weniger Overhead
    Container benötigen weniger Systemressourcen als herkömmliche Umgebungen oder Hardware-Umgebungen mit Virtual Machines, da keine Betriebssystem-Images enthalten sind.
  • Bessere Portabilität
    Applikationen, die in Containern laufen, können leicht auf mehreren verschiedenen Betriebssystemen und Hardware-Plattformen bereit gestellt werden.
  • Konsistentere Betriebsabläufe
    DevOps-Teams wissen, dass Applikationen in Containern immer auf gleiche Weise ausgeführt werden, unabhängig davon, wo sie implementiert sind.
  • Höhere Effizienz
    Container ermöglichen schnelleres Implementieren, Patchen und Skalieren von Applikationen.
  • Bessere Applikationsentwicklung
    Container unterstützen agile DevOps-Prozesse und beschleunigen so Entwicklungs-, Test- und Produktionszyklen.

Anwendungsfälle für Container

Unternehmen verwenden Container folgendermaßen:

  • Vorhandene Applikationen mit „Lift and Shift“-Ansatz in moderne Cloud-Architekturen verlagern
    Einige Unternehmen verwenden Container, um vorhandene Applikationen in modernere Umgebungen zu migrieren. Diese Praxis bringt zwar einige der grundlegenden Vorteile der Betriebssystemvirtualisierung mit sich, jedoch nicht alle Vorteile einer modularen, containerbasierten Applikationsarchitektur im vollen Umfang.
  • Vorhandene Applikationen für Container-Refactoring nutzen
    Ein Refactoring ist zwar wesentlich intensiver als die Migration mit Lift-and-Shift, bietet jedoch alle Vorteile einer Container-Umgebung.
  • Neue container-native Applikationen entwickeln
    Wie das Refactoring erschließt dieser Ansatz alle Vorteile von Containern.
  • Bessere Unterstützung für Microservices-Architekturen bieten
    Dezentrale Applikationen und Microservices lassen sich mithilfe einzelner Container-Bausteine einfacher isolieren, implementieren und skalieren.
  • DevOps-Support für kontinuierliche Integration und Implementierung (CI/CD) bereitstellen
    Die Container-Technologie unterstützt das optimierte Erstellen, Testen und Implementieren ausgehend von denselben Container-Images.
  • Implementierung von Routineaufgaben vereinfachen
    Container werden implementiert, um einen Prozess oder mehrere ähnliche Prozesse zu unterstützen, die häufig im Hintergrund ausgeführt werden, wie ETL-Funktionen oder Batch-Jobs.

Welcher Zusammenhang besteht zwischen Docker und Kubernetes und Containern?

Benutzer, die mit Container-Umgebungen arbeiten, werden wahrscheinlich von zwei beliebten Tools und Plattformen für die Erstellung und das Management von Containern hören. Dies sind Docker und Kubernetes.

Docker ist eine beliebte Laufzeitumgebung, in der Software in Containern erstellt und entwickelt wird. Die Software verwendet Docker-Images (Copy-on-Write-Snapshots) und implementiert Container-Applikationen oder Software in diversen Umgebungen, von der Entwicklung bis zu Test und Produktion. Docker basiert auf offenen Standards und Funktionen in den gängigsten Betriebsumgebungen, wie z. B. Linux, Microsoft Windows und anderen Infrastrukturen vor Ort oder in der Cloud.

Container-Applikationen können jedoch kompliziert werden. In der Produktion können viele von ihnen Hunderte bis Tausende separate Container in der Produktion erfordern. An dieser Stelle profitieren Container-Laufzeitumgebungen wie Docker vom Einsatz anderer Tools zur Orchestrierung oder zum Management aller laufenden Container.

Einer der beliebtesten Tools für diesen Zweck ist Kubernetes, ein Container-Orchestrator, der mehrere Container-Laufzeitumgebungen erkennt, einschließlich Docker.

Kubernetes orchestriert den Betrieb mehrerer Container gemeinsam. Es verwaltet Bereiche, die die zugrunde liegenden Infrastrukturressourcen für Container-Applikationen verwenden, etwa die dafür erforderlichen Computing-, Netzwerk- und Storage-Ressourcen. Orchestrierungs-Tools wie Kubernetes erleichtern die Automatisierung und Skalierung container-basierter Workloads für Live-Produktionsumgebungen.

Container im Vergleich zu Virtual Machines (VMs)

Manchmal verwechseln Menschen Container-Technologie mit Virtual Machines (VMs) oder Server-Virtualisierungstechnologie. Obwohl es einige grundlegende Ähnlichkeiten gibt, unterscheiden sich Container von VMs sehr.

Virtual Machines werden in einer Hypervisor-Umgebung ausgeführt, in der jede Virtual Machine ihr eigenes Gastbetriebssystem umfassen muss, zusammen mit zugehörigen Binärdateien, Bibliotheken und Applikationsdateien. Sie verbraucht eine große Menge an Systemressourcen und Overhead, insbesondere wenn mehrere VMs auf demselben physischen Server ausgeführt werden, wobei jeder über sein eigenes Gastbetriebssystem verfügt.

Im Gegensatz dazu verwendet jeder Container dasselbe Host-Betriebssystem oder denselben System-Kernel und ist viel leichter in der Größe, häufig nur im Megabyte-Bereich. Dies bedeutet oft, dass der Container in wenigen Sekunden gestartet werden kann (im Gegensatz zu den Gigabyte und Minuten, die für eine typische VM erforderlich sind).

NetApp und Container

Wir bei NetApp sind von der Container-Technologie überzeugt und arbeiten an bewährten Tools und an Innovationen, die persistenten Storage für jede Applikation bereitstellen und managen – an jedem Ort. Ein wichtiges Beispiel dafür ist die Entwicklung von Trident. Mit Trident war es noch nie so einfach, persistenten Storage für Container-Applikationen nach Bedarf zu nutzen.

Wir arbeiten aktiv an Möglichkeiten, DevOps zu beschleunigen, indem wir in der Software-Entwicklung für noch mehr Geschwindigkeit und Flexibilität sorgen. Der Verbrauch von Infrastrukturressourcen, wie etwa Storage, sollte einfach sein. NetApp hat es sich zum Ziel gemacht, dies mit Container-Management-Lösungen und anderen zu ermöglichen, sodass Applikationen einfacher und über eine Vielzahl von Plattformen hinweg skaliert werden können.

Verwandte Lösungen und Produkte

DevOps-Lösungen

Kundenreferenzen vom weltweit führenden Anbieter von Datenmanagement und Storage

Sicherheitskommunikation, mit der Kunden wertvolle Erkenntnisse gewinnen

Der API-Plattformanbieter Bandwidth bietet Sprach-, Messaging- und Notrufservices, die täglich Millionen Menschen erreichen. Entwickler von Bandwidth arbeiten unermüdlich an Innovationen, um die Plattform des Unternehmens weiter zu verbessern und die Markteinführung neuer Services zu beschleunigen.

Die Schweizer Bank pflegt ihre omnipräsenten Dateien mit NetApp Flash und MetroCluster IP

PostFinance setzt auf zukunftsorientierte Tools und Technologien, die speziell für den Schweizer Markt entwickelt oder angepasst werden. NetApp Systeme stellen Dateidaten für sichere Bankgeschäfte bereit und beschleunigen die Entwicklung von Finanzprodukten und -Services mit persistentem Storage.  

Person, die auf einen Bildschirm blickt und eine Analyse durchführt
Drift chat loading