Liebe auf den ersten Blick?

12 Docker Tipps: Möglichkeiten und Herausforderungen der Container-Technologie

Hartmut Schlosser
© Shutterstock / Julia Waller

© Shutterstock / Julia Waller

Hatten Sie ihn auch, diesen Aha-Effekt beim ersten Einsatz von Docker? 12 Docker-Experten berichten von ihrem ersten Kontakt mit Docker und zeigen auf, welche neuen Möglichkeiten sich ihnen auf einen Schlag eröffnet haben. Und wo liegen aktuell die Herausforderungen bei der Arbeit mit Docker, die es in der Zukunft noch zu meistern gilt?

Docker – die Herausforderungen

Wir haben 12 Docker Captains gebeten, uns ihre persönlichen Tipps zu Docker zu verraten. Im ersten Teil der Reihe haben wir erfahren, welchen Nutzen die Experten aus dem Einsatz von Containern ziehen. In Teil II ging es um den Unterschied zwischen Docker und einer virtuellen Maschine.

Damit ist es an der Zeit, sich den aktuellen Herausforderungen zu stellen. Die Captains erzählen von ihrem ersten Kontakt mit Docker und berichten aus ihrer Praxis von typischen Problemen, die es bei der Arbeit mit Containern noch gibt.

Docker Tipp #1

Nicolas De Loof ist Docker-Enthusiast bei CloudBees. @ndeloof

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Nicolas De Loof: Mein Unternehmen CloudBees war damals ein Konkurrent von dotCloud. Mein erster Kontakt mit Docker-Container verlief größtenteils negativ, da Docker recht unflexibel war im Vergleich zu dem, was wir zu diesem Zeitpunkt lieferten. Später habe ich aber die Vorteile unveränderlicher Infrastrukturen erkannt und gesehen, wie Docker bei der Implementierung hilft. Mittlerweile haben wir unser PaaS-Angebot eingestellt und ich konnte mehr experimentieren, was dazu geführt hat, dass ich Docker definitiv in meine Entwickler-Toolbox aufgenommen habe.

Docker – welche Herausforderungen gibt es noch?

Datenpersistenz ist der am meisten missverstandene Punkt unter Docker-Nutzern. Einige sagen, dass man eine Datenbank nicht in Docker laufen lassen kann – vielleicht haben sie aber auch nur das „Volumes“-Kapitel in der Dokumentation übersehen? Volumes führen Berechtigungsregeln ein, wenn man versucht, von mehreren Containern aus auf sie zuzugreifen. Die Dinge werden nur schlimmer, wenn Leute versuchen, Volumes manuell als „bind mount“zu verwalten, ohne den Docker-Daemon sein Voodoo-Setup machen zu lassen. Dies ist bei weitem kein triviales Problem. Aber ich erwarte einige Upstream-Änderungen im Linux-Kernel bzw. in Dateisystem-Treibern, um dies in Zukunft einfacher zu machen.
x

Docker Tipp #2

Nick Janetakis ist Docker Trainer und Urheber von www.diveintodocker.com. @nickjanetakis

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Nick Janetakis: Ich habe 2014 mit Docker angefangen, nachdem ich ein paar Jahre damit verbracht hatte, mit virtuellen Maschinen und schließlich Linux-Containern (LXC) zu arbeiten. Ich suchte nach einem Weg, Ansible Playbooks schnell zu testen und auch meine Rails/Flask-Projekte einfacher zu isolieren. Es war definitiv Liebe auf den ersten Blick. Als das alles klappte, hatte ich so einen Moment: „Mann, warum hat es so lange gedauert, bis jemand Docker erfunden hat?“

Docker – welche Herausforderungen gibt es noch?

Ich persönlich habe das Gefühl, dass Docker Swarm (das Tool, das Docker für die Verwaltung von Services Clustern entwickelt hat) etwas mehr Arbeit braucht, um wirklich in der Produktion eingesetzt werden zu können. Ich bin auf zu viele seltsame kleine Fehler gestoßen, die in einigen meiner Projekte zu Ausfallzeiten geführt haben. Es erfordert immer noch einiges an Anstrengung, damit alle Komponenten eines realen Deployments nahtlos mit Swarm funktionieren.
x

Docker Tipp #3

Ajeet Singh Raina ist Senior Systems Development Engineer bei DellEMC Bengaluru, Karnataka, Indien. @ajeetraina

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Ajeet Singh Raina: Meinen ersten Kontakt mit Docker hatte ich im März 2013, als ich mir ein YouTube-Video angeschaut habe. Solomon Hykes, der Gründer und CEO von dotCloud, stellte einer Gruppe von 30, 40 Entwicklern auf der Python Developers Conference in Santa Clara zum ersten Mal Docker außerhalb der dotCloud-Büroräume vor. dotCloud hat Docker als Low-Level-Technologie genutzt, um das dotCloud Business zu betreiben, und die Gruppe der Python-Entwickler war sehr daran interessiert, Zugang zu dieser Technologie zu erhalten. Wenige Tage später wurde die Technologie Open Source gestellt – und der Rest ist Geschichte.

Sogar noch beeindruckender war das erste Docker image, das ich mit einem Dell System Management Tool gebaut hatte und meinen Kollegen zeigte, was für reges Interesse im gesamten Stock des Büros gesorgt hat. Ganz ehrlich war es bei mir Liebe auf den ersten Blick.

Docker – welche Herausforderungen gibt es noch?

In den letzten drei Jahren war ich intensiv in Docker Community Foren und Slack Channels unterwegs und habe mir die neuen Releases angeschaut. Anstatt über Probleme bei der Arbeit mit Docker zu sprechen, habe ich beträchtliche Zeit damit verbracht, den Anwendern zuzuhören, ihre Schmerzpunkte zu verstehen und dann mit dem Docker Team zusammenzuarbeiten, um eine Lösung zu finden. Als Docker Captains haben wir die Verantwortung, die Herausforderungen anzunehmen, anstatt sie aufzubauschen. Um aber dennoch auf die Frage zu antworten: Eine immer weitergehende Bewegung hin zur Standardisierung, ein fragmentiertes Ökosystem, die Unmöglichkeit, Unikernels zu integrieren und die Verzögerung, Infinit für die persistente Speicherung zu integrieren sind einige der aktuellen Herausforderungen bei Docker, die man wirklich angehen sollte.
x

Docker Tipp #4

John Zaccone arbeitet als Cloud Engineer und Developer Advocate bei IBM. @JohnZaccone

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

John Zaccone: Ich begann mit Docker zu arbeiten, um ein Problem zu lösen, das ich im Sommer 2015 hatte. Damals entwickelte ich eine neue Anwendung und musste gleichzeitig eine Legacy-Anwendung mit verschiedenen Abhängigkeiten (Java 6 vs. Java 8) aktualisieren. Ich arbeitete mit einem Client, der in der Produktion in der Cloud eingesetzt wurde, aber QA, DEV und andere Umgebungen wurden mit privaten VM-Farmen erstellt. Als Entwickler musste ich immer dann, wenn ich eine neue Umgebung für eine meiner Anwendungen anforderte, ein paar Tage warten, bis ich sie endlich erhielt. Es war ineffizient, auf die beiden VMs zu warten und sie nicht einfach auf ein und demselben Rechner deployen zu können. Also habe ich mir Docker angeschaut, um diese Anwendungen mit unterschiedlichen Abhängigkeiten isoliert mittels Containern auf der gleichen VM zu implementieren. Das erlaubte mir auch, Spring-Boot einzusetzen und das Deployment über einen eingebetteten Tomcat durchzuführen, während ich ein War Deployment für die Legacy-Anwendung nutze. Beide Deployments konnte ich in ihren eigenen Containern definieren und isolieren.

Während dies mein unmittelbares Problem löste, erkannte ich gleichzeitig die anderen Vorteile der Verwendung von Docker-Containern, wie die einfache Bereitstellung von Anwendungen aus einer „On-Prem“ -Umgebung in eine Cloud-Umgebung mit sehr unterschiedliche Maschinen und unterschiedlichen Abhängigkeiten.

Docker – welche Herausforderungen gibt es noch?

Docker ist eine sich schnell verändernde Technologie. Man muss sich also anstrengen, um auf dem Laufenden zu bleiben. Das Ökosystem kann für Newcomer verwirrend sein und die Hauptbotschaft von Docker kann dadurch etwas verwischt werden. Als Docker Captain versuche ich, die Botschaft klarer zu machen und einige der Dinge, die für neue Leute schwer zu verstehen sind, zu erklären.
x

Docker Tipp #5

Gianluca Arbezzano ist Site Reliability Engineer bei InfluxData Italy. @gianarb

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Gianluca Arbezzano: Meine Leidenschaft gilt Open Source, der Automation und DevOps. Ich verbringe eine Menge Zeit auf GitHub mit der Suche nach neuen Technologien und einer guten Community, die ich unterstützen kann. Docker habe ich so in einem sehr frühen Stadium entdeckt, als das Projekt noch ganz anders aussah und die Community noch sehr klein war. Ich hielt es vom ersten Tag für ein nützliches Projekt, aber ich realisierte erst später, wozu es in der Lage war. Zunächst einmal bot Docker für mich eine sehr gute Möglichkeit, ein intelligentes Paket zu schnüren, das ich schnell und einfach über mein Netzwerk versenden konnte. Jetzt, da das Ökosystem ausgereift ist, erkennen wir viele andere wichtige Aspekte wie Sicherheit, Flexibilität und so weiter.

Docker – welche Herausforderungen gibt es noch?

Intelligentes Scheduling ist wahrscheinlich eine große Herausforderung, der wir uns noch stellen müssen. K8s, Nomad, Swarm kämpfen darum, den Krieg um das Scheduling von Containern in einem Server-Pool zu gewinnen. Doch die Analyse der Topologie des Netzwerks, des Datenverkehrs und der Ressourcen, um einem Scheduler mitzuteilen, wo genau ein Container optimal laufen wird oder Kosten sparen kann, ist immer noch ein Problem. Eine weitere Herausforderung liegt im Bereich der Sicherheit. Ich denke, dass wir dafür nicht viel Code zu schreiben brauchen, da wir bereits Tools wie AppArmor, cilium, SELinux, notary haben. Was wir hier eher benötigen, ist eine gewisse „Evangelisierung“ und ein Kulturwandel in Richtung Security.

Docker Tipp #6

Adrian Mouat ist Chief Scientist beim Unternehmen Container Solutions. @adrianmouat

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Adrian Mouat: Pini Reznik, der spätere CTO von Container Solutions, hat mich an Docker herangeführt. Das war 2014, denke ich. Eine der ersten Sachen, für die er Docker nutzte, war das Auflösen von Test-Suite-Fehlschlägen. Ein Test schaffte es nicht, nach der Ausführung aufzuräumen und verschmutzte die Umgebung für folgende Tests. Mit Docker konnte jeder Test in ihrer eigenen isolierten Umgebun laufen, was solche Verschmutzungen verhinderte. Und dennoch startete alles schnell genug, um die Test Suite nicht zu bremsen. Ich denke, mein erster eigener Anwendungsfall war die Entwicklung von Python-Code, ohne virtualnv, was mich damals wirklich genervt hat, nutzen zu müssen. Definitiv war ich von Beginn an davon begeistert, was ich sah.

Docker – welche Herausforderungen gibt es noch?

Am häufigsten fragen mich die Leute, wie man mit Zustand umgeht. Es gibt eine Menge Verwirrung darüber, wie Volumes in Docker funktionieren – das zeigt sich auch daran, dass die am meisten besuchte Seite meiner Container Solutions Website der Blogpost Understanding Volumes in Docker ist. Ich erwarte, dass wir in Zukunft immer ausgeklügeltere und einfachere Lösungen in Bezug auf zustandsbehaftete Container sehen werden. Aber in der Zwischenzeit rate ich neuen Nutzern generell, sich an Lösungen zu halten, mit denen sie Erfahrung haben, z. B. bei Datenbanken (VMs oder SaaS-Lösungen wie Amazon RDS oder Google BigTable). Und sie sollten sicher sein, dass sie die Feinheiten von Volumes verstanden haben und wissen, wann Daten verloren gehen können.
x

DevOpsCon Whitepaper 2018

Free: 40+ pages of DevOps expert knowledge

Learn about Containers,Continuous Delivery, DevOps Culture, Cloud Platforms & Security with articles by experts like Kai Tödter (Siemens), Nicki Watt (OpenCredo), Tobias Gesellchen (Europace AG) and many more.

Docker Tipp #7

Vincent De Smet arbeitet als DevOps Engineer bei Honestbee, Singapore. @vincentdesmet

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Vincent De Smet: Mitte 2013 habe ich in meiner Freizeit Spieleserver betrieben – auf einem Hobby Server in einer WG. Ich wollte damals eine bessere Möglichkeit finden, den Server mit meinen Freunden mit verschiedenen Workloads zu teilen. Virtualisierung brachte einen viel zu großen Overhead für einen Gameserver mit. Ich habe damals über LXC gelesen und dann Docker entdeckt, das ein neues, heißes Projekt war, das stark an Popularität gewann. Als ich mehr über die Konzepte erfahren habe, ist ein Freund auf mich zugekommen und hat mir seine Idee unterbreitet, ein Startup zu gründen – das war Mitte 2014. Dabei habe ich eine Möglichkeit gesehen, Docker zu nutzen, um das Backend dieser Anwendung auszuliefern und zu betreiben. So konnte ich Docker in einer Umgesbung ohne viel Druck ausprobieren (wir haben nie unsere Hauptjobs verlassen und arbeiteten an Wochenenden an unserer Startup-Idee).

Docker – welche Herausforderungen gibt es noch?

Viele integrierte Entwicklungsumgebungen sind immer noch stark darauf angewiesen, alles lokal auf der Maschine zu haben. Mit Docker zielt man aber eher darauf ab, alles in Remote-Containern zu halten. Auf OSX gibt es noch einige Performance-Probleme, da Docker einen Linux-Kernel benötigt, der auf OSX durch Virtualisierung läuft (xhyve / virtualbox) und manchmal inakzeptable Overheads verursacht, abhängig von der Art des Workloads, mit dem man arbeitet. Die meisten Möglichkeiten stehen zudem in Terminal-Schnittstellen zur Verfügung, während leider nicht alle Entwickler sich auf dem Terminal wohlfühlen. Für viele ist es immer noch eine gewisse Herausforderung, sich an die Arbeit mit Terminals zu gewöhnen.
x

Docker Tipp #8

Chanwit Kaewkasi ist Docker Swarm Maintainer und hat Swarm auf Windows portiert.@chanwit

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Chanwit Kaewkasi: In unserem Labor suchten wir 2014 nach einer Virtualisierungsschicht für die Verwaltung unseres Big Data Stacks.  VM-Lösungen waren für uns zu schwergewichtig, und glücklicherweise haben wir Docker gefunden.

Docker – welche Herausforderungen gibt es noch?

Das Multi-Cluster-Management ist immer noch nicht einfach. Ich musste mein eigenes Tool entwickeln, um unser Cluster zu verwalten. Es wäre toll, wenn wir das nativ mit Docker Swarm machen könnten. Multi-Host-Netzwerke sind aktuell schon recht gut, aber ich finde immer noch einige kleinere Probleme damit. Das wird jedoch immer besser werden, da viele SDN-Anbieter ihre eigenen Netzwerk-Stacks als Docker-Plug-ins implementieren. Das ist eine gute Nachricht.

Docker Tipp #9

Kendrick Coleman ist Developer Advocate for {code} by Dell EMC. @kendrickcoleman

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Kendrick Coleman: Mein erster Kontakt mit Docker war ein YouTube-Video. Den springenden Punkt habe ich damals allerdings nicht verstanden. Ich hatte eine sehr lange und tiefgehende Beziehung zur Virtualisierung und konnte mir nicht vorstellen, wie sich das ändern würde. Als ich dann aber eine Anwendung geschrieben habe und dabei Docker ausprobierte, wurde mir sofort klar, welche Vorteile Docker mit sich brachte. Docker hat meine Deployments von hunderten von MBs auf einige Dutzend reduziert. Da hörte ich auf, mich weiter in die klassische Virtualisierung zu vertiefen und sprang stattdessen auf den Docker-Zug auf.

Docker – welche Herausforderungen gibt es noch?

Der Grad der Veränderungen ist die größte Herausforderung. Open-Source-Technologie bewegt sich so schnell, dass es unglaublich schwer ist, mit den neuesten Versionen und den Änderungen Schritt zu halten.
x
x

Docker Tipp #10

Lorenzo Fontana ist DevOps-Experte bei Kiratech. @fntlnz

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Lorenzo Fontana: Das war Anfang 2013. Docker brachte mich auf viele Ideen, aber das erste, was ich tat, war zu schauen, wie es implementiert worden war. Das war eine tolle Lernerfahrung für mich.

Docker – welche Herausforderungen gibt es noch?

Immer auf dem neuesten Stand zu sein, ist die größte Herausforderung. Die Technologie entwickelt sich sehr schnell weiter. Eine andere Herausforderung besteht darin, Stateful Container zu erstellen. Hier gibt es noch viel zu tun.
x
x

Docker Tipp #11

Brian Christner ist Cloud Advocate und Cloud-Architekt für Swisscom. @idomyowntricks

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Brian Christner: Ich erfuhr von Docker von einem Freund, ca. 5 – 6 Monate nachdem Docker zum ersten Mal zur Verfügung stand. Ich war begeistert von den Möglichkeiten dieser neuen Abstraktionsebene mit einer solch einfachen Schnittstelle. Zuerst habe ich nur etwas damit herumgespielt, um zu sehen, worum es ging. Sobald ich herausgefunden hatte, wie Docker funktionierte, begann ich, mein Monitoring auf Docker zu übertragen, was mich in echten Kontakt mit Docker, der Community und den großartigen Docker-Mitarbeitern gebracht hat.

Docker – welche Herausforderungen gibt es noch?

Ich finde es immer noch schwierig, die Stakeholder von Legacy-Anwendungen davon zu überzeugen, Container zu nutzen. Sobald ich ihnen aber die Vorteile zeige und  verschiedene Anwendungsfälle demonstriere, stimmen sie der Nutzung von Docker fast auf der Stelle zu. Es stellt auch deshalb eine Herausforderung dar, da es ja nicht nur darum geht, in einem Unternehmen oder einer Abteilung Container einzuführen, sondern damit auch alles, was mit Containern zu tun hat – vom Logging über das Monitoring bis hin zu CI/CD-Pipelines.


Docker Tipp #12

Antonis Kalipetis ist CTO bei SourceLair, eine Docker-basierte Online-IDE. @akalipetis

Dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Antonis Kalipetis: Mein erster Kontakt mit Docker war im Jahr 2013 – ich habe gerade unsere Quellcodebasis bei SourceLair durchforstet, um das erste Commit zu finden: 15. Oktober 2013. Damals haben wir einige selbstgemachte Prozessisolierungen verwendet, um unseren Benutzern die Möglichkeit zu geben, Programme innerhalb eines Browsers auszuführen. Mit Docker konnten wir problemlos mehrere Umgebungen, eine bessere Isolierung und Echtzeitinteraktion mit dem laufenden Prozess realisieren. Das hat uns umgehauen! Kurz gesagt, wir haben Docker genutzt, als es mehr oder weniger das war, was containerd heute ist. Und es war definitiv Liebe auf den ersten Blick. Wir haben viel in Docker investiert und auch das lokale Meetup in Athen gestartet.

Docker – welche Herausforderungen gibt es noch?

Ich würde sagen, dass die Community an diesem Punkt schon gereift genug ist und die meisten Probleme mit und um Docker größtenteils gelöst sind. Die meisten der Herausforderungen, denen ich mich täglich stelle, kommen von Leuten, die nicht bereit sind, die Art und Weise zu ändern, wie sie früher Dinge vor Containern gemacht haben. Das ist etwas, das allerdings Zeit braucht, und es ist wirklich positiv, wenn immer mehr Kunden auf Container umsteigen!

 

 

Im nächsten Teil der Reihe geht es um die aktuellen Entwicklungen im Docker-Ökosystem und die Wunschliste für die nächsten Docker-Releases.

Bleiben Sie dran!

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: