
Container sind gekapselte, virtuelle Server und stellen eine Umgebung für die Ausführung (schlanker) Softwaremodule mit einem eng abgegrenzten Funktionsbereich bereit. In diesen Container-Anwendungen sind alle benötigten Komponenten als Bibliothek enthalten. So ist sichergestellt, dass die Ausführung unabhängig von externen Komponenten und der Umgebung möglich ist und sich die Container-Anwendung, unabhängig von ihrer jeweiligen Ausführungsumgebung, immer identisch verhält. Kommen mehrere Container-Anwendungen auf einer Hardwareplattform zum Einsatz, laufen diese als unabhängige Instanzen und sind voneinander und vom Gesamtsystem getrennt. Sie teilen sich aber das Betriebssystem und gegebenenfalls bestimmte Hardwareressourcen, sie können auch aufeinander aufbauen oder Daten untereinander austauschen. Die 2013 als Open-Source-Projekt gestartete Docker-Laufzeitumgebung (Docker Engine) hat sich in der Zwischenzeit zum De-facto-Standard für Container-Umgebungen entwickelt.

Unterschied zu virtuellen Maschinen
Wie virtuelle Maschinen greift auch die Container-Technik über eine Abstraktionsschicht auf die Nachbildung eines Hardware- oder Softwareobjekts zu. Der Unterschied ist allerdings, dass für die Ausführung von Containern die Virtualisierung eine Ebene höher aufsetzt und statt der physikalischen Hardware das Betriebssystem emuliert wird, das dann auch die Container-Laufzeitumgebung bereitstellt. So wird es möglich, dass sich mehrere Container-Anwendungen ein Betriebssystem mit den vorhandenen Ressourcen ohne feste Reservierung teilen. Da außerdem in jeder Container-Anwendung nur die benötigten Betriebssystemkomponenten und Bibliotheken enthalten sein müssen, gilt die Container-Technik als besonders leichtgewichtig und ressourcenschonend. Git, CI/CD-Pipelines, automatisierte Builds, Code-Reviews im Team: in der Softwareentwicklung seit Jahren Standard, in der SPS-Programmierung bisher kaum umsetzbar. ‣ weiterlesen
SPS-Entwicklung trifft DevOps: Wie CODESYS 4 IT-Methoden in die Automatisierung bringt

Lokal oder in der Cloud lauffähig
Ursprünglich wurde die Container-Technik für Linux-Betriebssysteme entwickelt. Seit der Einführung von Hyper-V können auch die Betriebssysteme ab Windows 10 und Windows Server 2016 für Virtualisierungsaufgaben und damit für Container-Anwendungen genutzt werden. Daneben unterstützen auch Cloud-Plattformen wie z.B. Amazon Web Services (AWS), Microsoft Azure oder Google Cloud Computing den Einsatz von Containern, sodass heute eine Container-Laufzeitumgebung auf Hosts oder in Serverumgebungen, lokal oder in der Cloud, aufsetzend auf den Betriebssystemen Windows, Linux oder Mac OS genutzt werden kann. Aufgrund ihrer geringen Größe können Container-Anwendungen je nach Bedarf auch problemlos aus lokalen Architekturen in Bare-Metal-Systeme sowie in Public-, Private-, Hybrid- und Multi-Cloud-Umgebungen verschoben werden.
Vor- und Nachteile von Container-Anwendungen
Ein großer Vorteil von Container-Anwendungen ist die Bereitstellung innerhalb weniger Sekunden: Nach dem Pull (Herunterladen) ist nur noch der Start über die Ausführung eines einzelnen Befehls notwendig. Auf diesem Weg lassen sich auch neue Versions- und Konfigurationsstände in Sekundenschnelle übernehmen. Ändert sich die Auslastung, kann die Arbeit schnell auf mehrere Container-Anwendungen verteilt werden, sofern diese Funktion unterstützt wird. Weitere Vorteile sind die Verwendung identischer Hardwareressourcen bei einem parallelen Einsatz und die Unterstützung verschiedener Betriebssystemumgebungen sowie hybrider Architekturen, sodass die Verwendung auch in einer Cloud-Umgebung möglich ist. Maschinen kommunizieren, reagieren und steuern Prozesse. Nur ihr Licht wird oft noch als passive Komponente behandelt. Dabei zeigen SPS-Anbindung, IO-Link und Signalfunktionen: Intelligentes Licht kann längst mehr als leuchten. ‣ weiterlesen
Wie intelligent ist Licht?

















