Was ist Containerisierung?

Containerisierung ist eine IT-Strategie die Container, Container-Technologien und DevOps-Methoden nutzt. Mittels Containerisierung werden Container-basierte Prozesse für das Deployment von IT-Infrastruktur und Anwendungen etabliert.

Wozu dient Containerisierung?

Eine solche Container-Strategie dient dazu Code und Anwendungen mitsamt aller erforderlichen Komponenten wie den Software-Libraries, Frameworks und weiteren Abhängigkeiten in Containern isoliert bereitzustellen.

Die Containerisierung ist deutlich effizienter als die Virtualisierung und deren technologische Weiterentwicklung. Während die Virtualisierung für die Verteilung mehrerer Betriebssysteme (OS) auf einem einzigen Server unerlässlich ist, ist die Containerisierung flexibler und granularer.

Prozess der Containerisierung als Paket-Management

Der Prozess der Containerisierung gleicht einer Organisation in Paketen und wird mitunter auch als Paketierung bezeichnet.

Diese Container lassen sich dann spielend leicht in die Cloud oder Cloud-native Betriebsumgebungen verlagern.

Software mit Containern in beliebigen Betriebsumgebung betreiben

Somit kann Software innerhalb eines Containers in jede beliebige Betriebsumgebung verschoben und konsistent auf jeder Infrastruktur ausgeführt werden.

Container machen Code unabhängig von der Umgebung oder dem Betriebssystem der Infrastruktur.

Container realisieren leicht portierbare Betriebsumgebungen für Code Artefakte

Der Container kapselt Software. Dieses Konzept der Kapselung macht die Software-Anwendung unabhängig von ihrem technischen Umfeld.

Ein Container ist also eine leicht portierbare und voll funktionsfähige Betriebsumgebung.

Vorteile der Containerisierung

  • ✅ Code unabhängig von Infrastruktur oder Betriebssystemen betreiben
  • ✅ Software mit Containern leicht portabel gestalten
  • ✅ Schnelle Release-Zyklen für Software-Releases verwirklichen
  • ✅ Deployment automatisieren
  • ✅ IT-Infrastruktur Ressourcen optimal ausnutzen
  • ✅ Horizontale und Vertikale Skalierung in Echtzeit realisieren
  • ✅ Anwendungen in die Cloud oder Cloud-Native Umgebungen verlagern

Wie funktioniert die Containerisierung?

Ein Container-Deployment ist ebenfalls eine Form der Betriebssystem-Virtualisierung, bei der Du  Anwendungen in isolierten Bereichen, den sogenannten Containern, ausführst.

Ein solcher Anwendungscontainer ist eine vollständig verpackte und portable Computerumgebung:

Der Paket-Container enthält alles, was eine App zum Ausführen benötigt, einschließlich ihrer Binärdateien, Bibliotheken, Abhängigkeiten und Konfigurationsdateien – alles gekapselt und isoliert in einem Container.

Abstraktion vom Host-Betriebssystem

Die Containerisierung einer Anwendung abstrahiert den Container vom Host-Betriebssystem (OS) – mit begrenztem Zugriff auf die zugrunde liegenden Ressourcen. Das ist ein ähnliches Konzept wie eine leichtgewichtige, Ressourcen schonende virtuelle Maschine, aber noch deutlich effizienter.

Infrastruktur-unabhängiger Betrieb

Dabei kannst Du die containerisierte Anwendung auf jeder Art von Infrastrukturen ausführen:

  • auf Bare Metal / OnPremise
  • in der Cloud
  • innerhalb von Virtuell Machines (VMs)

All das ist möglich ohne die jeweilige containerisierte Anwendung für jede Umgebung neu anpassen zu müssen

Die Automatisierung erfolgt dann mit DevOps-Tools wie Ansible oder Terraform.

Containerisierung mit Docker und Kubernetes

Wenn Du die Container-Technologie mit Docker & Kubernetes nutzen möchtest, erfährt Du mehr  unter Containerisierung mit Docker und Kubernetes.