Linux-Container

Gordon Haff | Lukas Dehling,

Für eine einfache und schnelle Bereitstellung

Container haben sich in der Linux-Welt zu einer zentralen Methode für die Paketierung und Bereitstellung von Applikationen herauskristallisiert. Auch in der Industrie finden sie Verwendung: Dort vereinfachen und beschleunigen sie die Entwicklung und Verteilung neuer Anwendungen.

© Fotolia / eyetronic

Heute kommen auch in der industriellen Automatisierung verstärkt Technologien aus der klassischen IT-Welt zum Einsatz. Das zeigt gerade das Internet der Dinge, das auf einer Kombination unterschiedlichster Lösungen basiert: von kostengünstigen und stromsparenden Pro­zessoren für Sensoren über drahtlose Netzwerke bis hin zu Systemen für die Speicherung und Analyse großer Datenmengen, sei es dezen-tral oder in zentralen Rechenzentren. Da das Internet der Dinge ein großes Potenzial für die Informationsgewinnung und Automatisierung eröffnet, bieten sich auch erhebliche Chancen für Innovationen, Umsatzwachstum oder effizientere Prozesse.

Kapselung von Anwendungen

Eine wichtige Technologie auf diesem Weg sind im Bereich der Applikationsentwicklung die so genannten Linux-Container. Generell ermöglichen sie die einfache und schnelle Bereitstellung von Anwendungen. Dabei werden die Anwendungen mit allen benötigten Komponenten in einem Paket, das mit wenig Overhead arbeitet (lightweighted), gekapselt und isoliert. Der Grund: Linux-  Container schonen Ressourcen, da sie kein eigenes Gast-Betriebssystem mit zusätzlichen Bibliotheken benötigen, sondern sich direkt auf dem Host-Betriebssystem ausführen lassen. Die Kapselung vermeidet Konflikte zwischen den Anwendungen, da diese anderenfalls auf zentrale Komponenten des zugrundeliegenden Host-Betriebssystems zugreifen müssen.

Laut einer Studie, die Forrester Consulting im Auftrag vom Software-Hersteller Red Hat erstellt hat, bieten Container eine Reihe von Vorteilen. Die befragten Unternehmen gaben die höhere Qualität der Software-Releases (31 %), die bessere Skalierbarkeit der Anwendungen (29 %) und das einfachere Management (28 %) als Hauptgründe für den Einsatz von Containern an. Forrester stellt fest: „Die Verteilung dieser wichtigsten Vorteile zeigt, dass sich der Einsatz von Containern für Unternehmen mit den verschiedensten Zielen lohnt“.

Anzeige

Perfekt für Mikroservices

Linux-Container vereinfachen auch in der industriellen Automatisierung die Entwicklung und Verteilung neuer Anwendungen. Da Container Anwendungen vollständig von der jeweiligen Umgebung inklusive der Prozesse, Dateisysteme oder des Netzwerks trennen, eignen sie sich sehr gut, um lose gekoppelte Services zu kapseln, die nur eine einzige, einfache Funktion ausführen. Beispiele sind etwa das Auslesen von Sensoren, das Sammeln von Daten oder der Versand von Nachrichten. Diese kleinen Dienste, die ­unabhängig voneinander arbeiten ­können, werden oft auch als ‚Mikroservices‘ bezeichnet.

Mikroservices vermeiden viele der Fallstricke von monolithischen und komplexen Anwendungen, da die Schnittstellen zwischen den einzelnen Funktionen eindeutiger definiert sind und sich die Services unabhängig ­voneinander ändern lassen. Jeder Service stellt aus Sicht der anderen Ser­vices tatsächlich eine Art Blackbox dar. Solange sich ihre Schnittstellen nicht ändern und sie den angeforderten Prozess umsetzen, kann der Entwickler die jeweiligen Services im eigenen ­Ermessen ändern. Die anderen Dienste werden und sollten nichts über das Innenleben des Services erfahren.

Zusammenspiel mit DevOps

Generell erleichtert der Mikroservices-Ansatz kleinen Teams die Entwicklung und den Test individueller Dienste sowie die schnelle und iterative Bereitstellung der Releases. Dies wiederum vereinfacht die Implementierung von DevOps, einem Konzept, das auf Prozessen und Tools für die enge Verzahnung von IT-Entwicklung und Betrieb basiert, um häufige Bruchstellen zwischen den beiden Bereichen zu überwinden. Da Dev-Ops die schnelle und schrittweise Bereitstellung von qualitativ hochwertigen Services ermöglicht, gelangen Anwendungen rascher auf den Markt und die Geschäfts-Chancen steigen. Auf diese Weise ergänzen sich Container, Mikroservices und DevOps gegenseitig. Das Trio erzeugt eine flexiblere und effizientere Infrastruktur, liefert Anwendungen, die diese Infrastruktur optimal nutzen, und etabliert Prozesse, mit denen diese Anwendungen schnell und mit hoher Qualität entwickelt und bereitgestellt werden können.

Die angeführte Studie von Forrester zeigte auch, dass Container in Verbindung mit zusätzlichen Tools „die Implementierung von DevOps vereinfachen“. Forrester konstatierte, dass „Unternehmen durch den Einsatz von Konfigurations- und Cluster-Management-Tools über den kompletten Software-Entwicklungs-Lebenszyklus hinweg Silos abbauen können.“

Container schonen Ressourcen

Aus technischer Sicht werden Services, die in einem Linux-Container laufen, in einer einzigen Instanz des Host-Betriebssystems isoliert, die sich auf einem physischen Server befindet (oder möglicherweise auch auf einer virtuellen Maschine). Dieser Ansatz steht im Gegensatz zur Hypervisor-basierten Virtualisierung, in der jeder isolierte Service an ein komplettes Gast-Betriebssystem wie Linux gebunden ist. Das Ergebnis: ­Container verbrauchen nur sehr wenige System-Ressourcen wie Speicher und bürden der Anwendung keinerlei Performance-Overhead auf.

Ein weiterer Vorteil von Containern: Mehrere Container teilen sich auf einem System den Kernel des Betriebssystems, die Abhängigkeiten der Anwendungen selbst sind im Container verpackt. Im Unterschied zur bisherigen Praxis wird das Betriebssystem nicht mehr für eine einzige Anwendung konfiguriert, optimiert und integriert; das Betriebssystem verliert durch diesen Wandel aber nicht an Bedeutung. Im Gegenteil: Da das Betriebssystem das Framework für alle Container vorhält, die auf ihm laufen, spielt es als Host sogar eine größere Rolle als der Hypervisor bei der Server-Virtualisierung.

Auch für die Container-Welt gelten rund um Themen wie Sicherheit, Leistungsoptimierung, Zuverlässigkeit und Zertifizierungen die gleichen Anforderungen wie in der virtualisierten Welt. Während der Hypervisor bei der Vir­tualisierung nur einen Teil dieser ­Aufgaben übernimmt, trägt das Betriebssystem eine größere Verantwortung für die Sicherheit und Isolation der Ressourcen.

Betriebssystem orchestriert Multi-Host-Anwendungen

Ein Container kapselt die Anwendung und ihre Abhängigkeiten wie Bibliotheken oder Skripts in einem abgeschlossenen Paket. Er wird als isolierter Prozess auf dem Host-Betriebssystem ausgeführt.

© Red Hat

Administratoren sollten daher für den Betrieb der Container-Dienste Funk-tionen des Linux-Betriebssystems wie SELinux (Security Enhanced Linux) verwenden, das Zugriffskontrollen auf Ressourcen implementiert.

Damit folgen sie denselben Best Practices wie beim Betrieb auf einem herkömmlichen Bare-Metal-Host (Typ-1-Hypervisoren), der ohne ein Hosting-Betriebssystem auf der jeweiligen Hardware installiert werden. Dazu gehört die Maßnahme, Privilegien (Root-Modus) im System so schnell wie möglich aufzuheben und die Services im Nicht-Root-Modus zu betreiben, wann immer das möglich ist.

Zukünftig wird das Betriebssystem Multi-Host-Anwendungen unterstützen und dabei als Orchestrator und Scheduler für sie fungieren, das heißt, es koordiniert und steuert verschiedene Services. Das schließt die Modellierung von Applikationen über verschiedene Hosts und Container hinweg ein, ebenso die Bereitstellung von Services und APIs, um die Applikationen geeigneten Systemressourcen zuzuordnen. Mit anderen Worten: Linux entwickelt sich und unterstützt Umgebungen, in der der ‚Computer‘ zunehmend aus einem ­Komplex vernetzter Systeme besteht und nicht mehr aus einem einzelnen Server.

Zunehmende Abstraktion im Betriebssystem-Umfeld

Generell ist eine zunehmende Abstraktion im Betriebssystem-Umfeld zu erkennen. Der Trend geht weg von den maßgeschneiderten Betriebssystem-Instanzen, die jede Applikations-Instanz begleiten – genauso wie man sich in der Vergangenheit von Betriebssystem-Instanzen verabschiedet hat, die auf jeden einzelnen individuellen physischen Server zugeschnitten waren. Anwendungen, die viele Betriebssystem-Ressourcen benötigen, eignen sich nur eingeschränkt für eine Container-Umgebung. Einer der Trends, der Container heute im Gegensatz zu früher so interessant macht, ist die Verschiebung hin zu einfacher portierbaren und leicht- gewichtigeren Anwendungsinstanzen. Die Rolle des Betriebssystems bleibt dabei zentral. Es gibt jetzt nur ein Stan- dard-Image für alle Applikationen und keine spezifisch optimierten Images für jede einzelne Applikation mehr.

Das Betriebssystem sorgt nicht nur für die automatisierte Sicherheit und Orchestrierung der Anwendungen in den Containern, sondern auch für die notwendige Konsistenz und damit Portabilität (Grad der Plattform-Unabhängigkeit). So muss es möglich sein, die Container auf physischer Hardware, virtuellen Umgebungen (Hypervisor) und in der Private Cloud oder Public Cloud bereitzustellen. Eine weitere Voraussetzung bildet eine integrierte Plattform für die Verteilung von Anwendungen, die vom Anwendungs-Container bis hin zum Zielort der Implementierung auf offenen Standards basiert.

All diese Faktoren führen dazu, dass Anwendungen leichter an Veränderungen der Infrastruktur und Geschäftsprozesse anpassbar sind. Sie werden zudem leichtgewichtiger, mobiler und lassen sich besser verteilen. Und nicht zuletzt lässt sich ihre Bereitstellung besser automatisieren.

Autor: Gordon Haff ist Senior Cloud Product Manager bei Red Hat.

Technologie für die Container-Optimierung

‚Red Hat Enterprise Linux Atomic Host‘ beispielsweise kombiniert die flexiblen, modularen Funktionen von Linux-­Containern und verwandten Technologien mit der Zuverlässigkeit und Sicherheit einer kommerziellen Linux-Distribution. Atomic enthält folgende Open-Source-Komponenten:

■ Die Software ‚Docker‘ für das Erstellen von kleinen (leichtgewichtigen), portierbaren und unabhängigen Anwendungs-Containern.
■ Das Verwaltungstool ‚Kubernetes‘ für die Verwaltung eines Clusters von Linux-Containern als einzelnes System.
■ Das Tool ‚rpm-ostree‘ für die Verwaltung von bootfähigen, unveränder-baren und versionierten Dateibäumen und Images aus Upstream-Content.
■ Das Programm ‚systemd‘ für Linux-Systeme.

  • Xing Icon
  • LinkedIn Icon
Anzeige
Anzeige

Das könnte Sie auch interessieren

Anzeige
Anzeige
Anzeige
Anzeige

NürnbergMesse

Der Wissenshub der Embedded-Community

Vom 11. bis 13. März trifft sich die Embedded-System-Branche. In sieben Messehallen informieren die Aussteller in Nürnberg über Hardware, Software, Services und Tools. Zwei begleitende Konferenzen, Expert Panels und Ausstellerforen vermitteln...

mehr...
Anzeige
Anzeige
Anzeige

Inonet

Sicherer Embedded PC für industrielle Anwendungen

Der Embedded-PC ‚ReliaCOR 54-13‘ von Inonet ist laut Hersteller als einer der ersten Embedded Computer made in Germany für KI-Anwendungen nach IEC 62443-4-2 zertifiziert. Damit erfüllt er die Anforderungen industrieller Sicherheitsstandards, wie von...

mehr...
Jetzt Newsletter abonnieren