Statement

Applikations-Container fördern Zusammenwachsen von Entwicklung und Betrieb

3. Dezember 2015, 15:20 Uhr | Lars Herrmann, General Manager Red Hat Enterprise Linux, Red Hat Enterprise Virtualization and Container Technology, Red Hat
Lars Herrmann, General Manager Red Hat Enterprise Linux, Red Hat Enterprise Virtualization and Container Technology, Red Hat
© Red Hat

Container haben sich in kurzer Zeit in der Linux-Welt zu einer zentralen Methode für Application-Packaging und Delivering herausgebildet. Entwickler verwenden sie, weil sie Applikationen einfach und schnell bereitstellt und sich als Katalysator für das Devops-Konzept erweist.

Linux-Container vereinen zwei unterschiedliche Ansätze: Erstens bieten sie eine Möglichkeit zur Softwarepaketierung, mit der Entwickler Applikationen zusammen mit ihren Laufzeit-Abhängigkeiten zusammenfassen und ausführen können. Solche Container sind schnell betriebsbereit und portabel, da sie die komplette Applikationsumgebung enthalten. Zweitens bieten sie die Möglichkeit, Applikationen isoliert und performant unter einem Host-Betriebssystem bereitzustellen. Gemeinsam ist den beiden Ansätzen, dass den Containern die benötigten Systemressourcen fest zugeordnet werden. Der Linux-Kernel wird dabei von allen auf einem System laufenden Instanzen geteilt, dadurch ist der Verwaltungsaufwand sehr gering. Erforderlich sind lediglich die gewohnten Systemauf-
rufe des Betriebssystems.

Das Konzept von Containern ist schon seit einiger Zeit bekannt, war aber bislang eher ein Thema für eine kleine Gruppe von Experten und für Nischenanwendungen. Erst mit dem Open-Source-Projekt Docker des gleichnamigen US-Unternehmens hat sich das geändert. Docker beschleunigt die Verbreitung von Linux-Containern. Es stellt eine API für die Interaktion mit Containern und ein Image-Format bereit. Mit dem Kommando „docker pull“ bringen Entwickler beispielsweise einen Java-, Ruby- oder Python-Stack zum Laufen. Red Hat integriert Docker, nutzt dabei Kerntechnologien wie Control-Groups (cGroups), Resource-Management, SELinux sowie Network-Namespaces und ermöglicht damit eine sichere Mandantenfähigkeit der Anwendungen.

Um Applikationen in einem Container bereitzustellen, kommen Eigenschaften des Linux-Kernels zum Einsatz. Sie lassen sich weitgehend – einschließlich der Prozesse, der Dateisysteme oder Netzwerke – von der jeweiligen Umgebung trennen und damit autonom betreiben. Da Applikationsabhängigkeiten innerhalb des Containers residieren, können sie Administratoren autonom über ein Linux-Betriebssystem hinweg verschieben – vorausgesetzt die Betriebssystemkomponenten im Container sind kompatibel zum Container-Host. Ein Linux-Container kapselt die eigentliche Anwendung und ihre notwendigen Abhängigkeiten wie Bibliotheken in einen Container, der sich dann auf einem Linux-Server als Container-Host ausführen lässt. Dies erhöht die Flexibilität und fördert die Portabilität.

Linux-Container werden als Softwarepakete installiert. Sie enthalten die Applikationen und alle erforderlichen Runtime-Komponenten. Die wichtigsten Vorteile im Überblick:

  • Agilität: Container starten deutlich schneller als virtuelle Maschinen und können weitgehend automatisiert werden, was IT-Prozesse erheblich beschleunigt.
  • Eingebaute Portabilität: Entwickler können die Applikations-Container auf kompatiblen Host-Systemen installieren.
  • Geringer Platzbedarf: Applikations-Container vermeiden den Overhead von Virtual-Machine-Images, die ein vollständiges Betriebssystem benötigen.
  • Vereinfachte Verwaltung: Applikations-Container reduzieren den Aufwand und das Fehlerrisiko im Betrieb, da sie komplett mit all ihren Abhängigkeiten gepatcht werden.
  • Geringere Entwicklungskosten: Die Entwicklung, der Test und die Zertifizierung von Applikationen erfolgen mit nur einer Runtime-Umgebung.
  • Aufgrund dieser Vorteile werden Container-Technologien bei der Verbreitung von Devops-Infrastrukturen in der Linux-Welt eine zentrale Rolle bei der Bereitstellung und Verwaltung von Applikationen spielen.

Das Betriebssystem wird praktisch in zwei Teile zerschnitten. Die Systemkomponenten, von denen die Anwendung abhängen, werden gemeinsam mit der Anwendung im Container-Image paketiert. Darunter liegend, stellt der Container-Host die Laufzeitumgebung für alle kompatiblen Container bereit. Der Host kann somit in der Form eines Standard-Image für alle Applikationen betrieben werden und muss nicht spezifisch für einzelne Applikationen optimiert werden. Anforderungen wie höchste Sicherheit, Performance-Optimierung, Zuverlässigkeit und Zertifizierungen gelten auch für die Container-Welt, nun separat für die Anwendungen in Containern und die Container-Hosts.

Die IT bewegt sich in Richtung einer Architektur, in der Laufzeitabhängigkeiten mit der Applikation und nicht mehr mit einem kompletten Betriebssystem gebündelt sind. Das Betriebssystem wird künftig Multi-Host-Anwendungen unterstützen und für diese als Orchestrator und Scheduler dienen.

Anbieter zum Thema

zu Matchmaker+

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Red Hat GmbH

Weitere Artikel zu Server, Datacenter

Matchmaker+