Docker und Kubernetes
Warum Container die Zukunft der Fabrik-IT sind
Mit Docker und Kubernetes entstanden vor gut 10 Jahren die ersten Open-Source-Plattformen für Software-Container. Jetzt stehen sie vor dem Durchbruch auch in der Fertigungs-IT. Warum Container die Infrastruktur komplett verändern:
Die Idee der Containerisierung von Software ist eigentlich schon Jahrzehnte alt, aber lange auf proprietäre Systeme wie das Solaris-Betriebssystem beschränkt. Mit der Entwicklung der Opensource-Plattformen Docker und Kubernetes Mitte des vergangenen Jahrzehnts hat eine Demokratisierung begonnen, die jetzt voll zum Tragen kommt. Das Markforschungsunternehmen MMR erwartet, dass das Markvolumen für Applikations-Container von knapp 4 Mrd. US-Dollar 2023 auf nahezu 31 Mr. US-Dollar im Jahr 2030 regelrecht explodieren wird.
Automation NEXT hat sich mit Sebastian Scheele, CEO des deutschen Kubernetes-Spezialisten Kubermatic über die Zukunft der Container in der Fertigungs-IT unterhalten.
Kubermatic ist spezialisiert auf die Containerisierung von IT-Softwarekomponenten. Was versteht man darunter?
Sebastian Scheele: Die Containerisierung in der IT lässt am besten mit der Nutzung von Containern in der Schifffahrt vergleichen. Die standardisierten Überseecontainer haben den Warentransport revolutioniert. Man musste Waren nicht mehr einzeln auf Schiffe verladen, sondern konnte sie vorab in den Container packen und damit das Be- und Entladen der Schiffe viel einfacher und schneller gestalten.
Der gleiche Gedanke stand bei der Entwicklung der Software-Container im Mittelpunkt. Es entstand ein standardisiertes Format, in das man jegliche Software hineinpacken und vom Laptop über lokale Server bis in die Cloud gleichermaßen betreiben kann, ohne auf Abhängigkeiten Rücksicht nehmen zu müssen.
Was ist mit Abhängigkeiten gemeint?
Scheele: Ein Beispiel: Bei einem Java-Programm ist zum Beispiel wichtig, dass die passende Version der Java Runtime Engine (JRE) installiert ist. Beim Container-Konzept wird die richtige JRE einfach mit in den Container gepackt und muss nicht auf jeder Maschine extra installiert werden. Der Container wird dadurch komplett portabel.
Geht das Gleiche nicht auch mit einer virtuellen Maschine (VM)?
Scheele: Im Prinzip ja, aber es gibt wichtige Unterschiede zwischen einem Container und einer VM. Das große Problem mit VMs ist, dass es viele Anbieter gibt, und VMs längst nicht so standardisiert sind, wie es Container heute sind. Und bei VMs habe ich den Nachteil, dass ich immer das Betriebssystem mit hineinpacken muss. Der Container hat dagegen standardisierte Anknüpfungspunkte an das vorhandene Betriebssystem der jeweils ausführenden Hardware und ist dadurch viel schlanker. Das nimmt Komplexität aus den Update-Prozessen heraus. Um noch einmal den Vergleich mit der Schifffahrt zu bemühen: VMs sind ein komplettes Boot, während die Container nur einen Behälter für die Ladung darstellen.
Welche weiteren Vorteile hat es, Anwendungen in einen Container zu packen?
Scheele: In vielen Bereichen der IT geht der Trend weg von einer monolithischen Architektur, also eine große Applikation auch als ein einzelnes IT-System zu sehen. Stattdessen lässt sich eine Anwendung in mehrere Komponenten aufteilen.
Mit welchem Ziel?
Scheele: Jede dieser Komponente kann unabhängig voneinander entwickelt und in einen Container gepackt werden. Auf diese Weise lässt sich viel Flexibilität sowohl in der Entwicklung als auch im Betrieb dieser Anwendung erzeugen.
Welche Vorteile bringt denn eine Container-Infrastruktur speziell für die Industrie?
Scheele: Zum einen, dass ich durch diese feine Granularisierung und Kapselung von IT-Komponenten geplante Veränderungen in der Produktion sehr gut vorab simulieren und dann auch ausprobieren kann, ohne dass dafür die ganze Produktion stillstehen muss. Zum anderen, dass ich in meiner Produktion auch einfacher Komponenten updaten kann, ohne dass jemand mit einem USB-Stick durch die Fabrikhallen laufen muss. Und falls ein Update nicht funktioniert, lässt sich bei einer Containerlösung alles schnell wieder auf eine alte Version zurückrollen.
Container-Management in der Cloud braucht auch leistungsfähige Hardware, wie sie etwa Hyperscaler wie Microsoft oder Amazon bereitstellen. Die Industrie gibt Daten aber ungern aus der Hand. Eine Hürde für Container-Lösungen?
Scheele: Es stimmt schon, Kubernetes ist populär geworden in der Cloud. Aber Container-Lösungen müssen nicht zwangsläufig in der Cloud laufen, das ist das Schöne an diesem Konzept. Man muss sich sehr genau ansehen, was man mit den Containern konkret machen will. Oft kann das dann auch in einem On-Premise-Datacenter oder auf einem Server auf dem Factory Floor stattfinden. Der Container gibt mir ein standardisiertes Paketierungsformat und Kubernetes gibt mir einen standardisierten Weg, wie ich diese Container sehr effizient managen kann.
Das Thema Container nimmt in der industriellen Fertigung langsam Fahrt auf in der Industrie, aber dabei ist meist von Docker die Rede, noch nicht so sehr von Kubernetes. Woran liegt das?
Scheele: Docker hat ohne Frage das Thema Container populär gemacht, hat seinen Schwerpunkt aber auf dem Erstellen und Bearbeiten von Container-Images, oder um Container lokal zu managen. Wenn es aber darum geht, eine Vielzahl von Container-basierten Komponenten über eine breite Palette an Host-Systemen zu orchestrieren, kommt Kubernetes als Plattform ins Spiel. Ich glaube, in der Industrie haben schon viele das Potenzial von Docker erkannt und arbeiten mit lokalen Instanzen. Sie stehen aber oft vor einer Hürde, um mit Kubernetes den nächsten Schritt zu gehen und Container in größerem Umfang ausrollen.
Welche Hürde ist das?
Scheele: Was wir oft sehen ist, dass die Anwender die Hersteller ihrer Software dazu drängen, ihre Applikationen als Containerlösung bereitzustellen. Dort wird aber oft noch einfach die monolithische Anwendung eins zu eins in den Container gepackt, was den Anwendern nicht die erhofften Vorteile bringt.
Woran liegt das?
Scheele: Dort sind in der Regel Entwickler am Werk, die auf Business- oder Industriesoftware spezialisiert sind. Die Herausforderung ist, hier das nötige Bewusstsein für die darunter liegende Infrastruktur-Ebene zu vermitteln - und die hat sich mit Themen wie der Containerisierung in den letzten Jahren eben stark gewandelt.
Apropos Know-how. Wie kann ein sinnvoller Einstieg für Industrieanwender in das Thema Container aussehen?
Scheele: Um Erfahrungen zu sammeln, sollte man mit einer Anwendung beginnen, die zum einen nicht systemkritisch ist und zum anderen auch eher modern ist. Das ist dann einfacher im Container zum Laufen zu bringen als eine Applikation, die schon 20 oder 30 Jahre auf dem Buckel hat. Grundsätzlich sollte man sich die Frage stellen: wie lange will ich eine Anwendung noch betreiben. Wenn sie in ein, zwei Jahren sowieso abgelöst wird, kann ich mir den Aufwand für eine Containerisierung eigentlich sparen.
Ist die Containerisierung nur ein Thema für die IT-Nerds in den Unternehmen?
Scheele: Absolut nicht. Ich glaube, es ist wichtig zu verstehen, dass die Container-Infrastruktur nicht einfach nur eine technologische Veränderung ist. Man muss zwei weitere Bausteine bei dem ganzen Thema berücksichtigen: Zum einen muss ich meine Prozesse bezüglich der Entwicklung und Verwaltung von Software grundlegend ändern. Zum anderen muss ich meine Mitarbeiter bei diesem Thema mitnehmen, sie dafür begeistern und entsprechend schulen. Wenn ich nur auf die Technologie schaue, ohne meine Prozesse anzupassen und die Menschen mitzunehmen, dann ist das Risiko eines Scheiterns sehr hoch.