Suche
Interview mit Dieter Reuter

Container sind die Antwort auf die Probleme in der IoT-Softwareentwicklung

Melanie Feldmann

Dieter Reuter

Die Softwareentwicklung für Anwendungen im Internet of Things hat mit zwei Problemen zu kämpfen: Updates auf verteilten Systemen und Hardwarewechsel während des Entwicklungsprozess. IoTCon-Sprecher Dieter Reuter (Hypriot) erläutert im Interview, wie Container beide Probleme lösen können und zusätzlich noch die Security verbessern.

JAXenter: Warum passen Container und IoT-Anwendungen so gut zusammen?

Dieter Reuter: Container sind eine ideale Möglichkeit, komplette Anwendungen zu kapseln und portabel auf verschiedene Geräte zu deployen. Besonders wichtig sehe ich dies für IoT-Anwendungen, da sich diese so sicher und einfach verteilen und im Bedarfsfall schnell austauschen lassen. Updates und Sicherheits-Patches lassen sich so sehr einfach realisieren, ein wichtiger Aspekt für einen langfristigen Support gerade im industriellen Bereich.

Container sind eine ideale Möglichkeit, komplette Anwendungen zu kapseln und auf verschiedene Geräte zu deployen.

JAXenter: Wie können Container dabei helfen die Software vom Prototypen bis zur finalen, produktiven Hardware mitzunehmen?

Dieter Reuter: In der Regel kann man mit Containern bereits die Entwicklung starten, bevor die Ziel-Hardware zur Verfügung steht. Anstatt auf einem teuren Entwicklungssystem im vier- bis fünfstelligen Bereich, lassen sich so im Extremfall auf einem ARM-System wie dem Raspberry Pi die Container für ARMv7 oder ARM64 entwickeln und realitätsnah testen. Ein Deployment auf die endgültige Hardware lässt sich später recht einfach anpassen. Das spart Zeit und Geld und hilft so die Gesamtlösung schneller auf den Markt zu bekommen. Notwendig ist dazu aber eine gute Isolation von der speziellen Hardware. Das sollte aber bei entsprechendem Softwaredesign nicht allzu schwierig sein und bringt zudem weitere Vorteile in der Testbarkeit und Wiederverwendung der Software mit sich.

JAXenter: Ein großes Problem bei IoT-Anwendungen sind Software-Updates. Wie helfen Container hier weiter?

Dieter Reuter: Die Container selbst enthalten absolut alle Bestandteile der Applikation in der richtigen Version, wie Shared Libraries. Somit lassen sich ganz einfach neue Versionen parallel betreiben und testen oder auch on-the-fly austauschen. Auch ein Rollback auf eine alte funktionierende Version ist somit einfach gewährleistet.

JAXenter: IoT-Anwendungen laufen nicht einsam auf ihren Geräten. Oft schicken sie Daten in die Cloud. Wie funktioniert die Zusammenarbeit zwischen Gerät und Cloud mit Containern?

Dieter Reuter: Interessant wird es, wenn Container auf IoT-Geräten mit zentralen Services in so genannten IoT-Gateways und in der Cloud zusammenarbeiten. Die benötigten Netzwerkverbindungen können und sollten komplett verschlüsselt und per TLS abgesichert werden. Dabei ist es vollkommen egal, ob man ARM- oder Intel-Prozessoren in den verschiedenen beteiligten Systemen verwendet. Alles lässt sich austauschen und komplett transparent testen. Somit ist man in der Lage, auch den kompletten Technologie-Stack einheitlich mit Containern aufzubauen, in der Entwicklung, für die Cloud-Services, für die IoT-Gateways und auch auf den Edge-Devices selbst.

Mit Containern kann man den kompletten Technologie-Stack aufbauen, in der Entwicklung, für die Cloud-Services, IoT-Gateways und Edge-Devices selbst.

JAXenter: An welchen Ecken hakt es denn noch bei Containern und dem IoT? Was würde die Entwicklung noch weiter vereinfachen und verbessern?

Dieter Reuter: Heute ist die Nutzung von Containern für IoT-Anwendungen noch relativ unbekannt. Aber die ersten Kunden haben bereits mit der Umsetzung in konkreten Projekten begonnen. Wichtig für Container ist die Verwendung von neueren Linux-Kernel-Versionen, am besten mit Mainline-Linux-Unterstützung. Dies sollte aber eh der Standard sein, da man nur so die gesteigerten Sicherheitskriterien in künftigen IoT-System gerecht werden kann. Insgesamt lässt sich mit Containern die Entwicklung beschleunigen und auch die Sicherheit verbessern, da mit der Hilfe von Containern schnellere und häufigere Updates und Deployments durchgeführt werden können.

JAXenter: Vielen Dank für das Gespräch!

reuter_dieter_wpDieter Reuter ist Docker Captain bei Hypriot und Senior Consultant bei SEAL Systems mit dreißig Jahren Erfahrung in der Enterpise IT und unstillbarer Neugierde. Er arbeitet mit cutting-edge Cloud-Technologien und ist von der DevOps-Bewegung und der damit verbundenen Automatisierung besessen. Dieter ist dabei, Docker und Container auf ARM-basierte IoT-Geräte zu bringen.
Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare
  1. Felix Eckhardt2017-02-15 15:26:39

    Wenn man irgendwo liest, dass eine Technologie alle Probleme löst sollte man immer sehr vorsichtig sein. Die Idee von Containern ist großartig. Sie bringt aber eine Komplexität in Projekte, für die im Moment noch die geeigneten Tools fehlen. Dies führt dazu, dass man sich mehr mit der Container Technologie herumschlägt, als die eigenentlichen Probleme zu lösen. Man löst mit Containertechnologien also (momentan) vor allem Probleme, die man ohne sie gar nicht hätte. Ich würde jedem Projekt dazu raten sehr gut darüber nachzudenken, bevor man Docker oder eine andere Containertechnologien einsetzt. Baut erstmal einen PoC und fragt Euch, ob sich der Einstatz in Eurem Szenario wirklich lohnt.

    Container sind großartig, um Dinge auzuprobieren, um schnell ein Setup lokal hochzuziehen. Aber beim Einsatz für produktive Systeme wäre ich sehr vorsichtig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.