Docker Captains kommentieren

Mythos Docker: Warum Container und Microservices die IT revolutionieren
Keine Kommentare

Wir haben 12 Docker Captains gebeten, ihre Erfahrungen über Docker mit uns zu teilen. Wie profitieren sie am meisten von Container-Technologien? Wo liegt der Unterschied zu klassischen VMs? Mit welchen Tipps können auch Sie Ihre Arbeit mit Docker effizienter gestalten? Heute stellt sich Adian Mouat, Chief Scientist beim Unternehmen Container Solutions, unseren Fragen.

Hallo Adrian! Docker revolutioniert die IT – diesen Satz hört man ja immer wieder. Doch was ist da wirklich dran? Ist Docker für dich mehr Hype oder tatsächlich eine Revolution?

Adrian Mouat: Man sollte eher sagen: Container und Microservices revolutionieren die IT, das ist wahrscheinlich zutreffender. Im einfachsten Fall ist ein Docker-Container nur eine Verpackung. Die Verpackung ist es aber, die die Lücke zwischen Entwicklung und Produktion schließt und die Geschwindigkeit und Zuverlässigkeit erhöht, mit der wir Software bauen können. Container sind ein ideales Auslieferungswerkzeug für Microservices – eine Software-Architektur, die beim Aufbau großer, verteilter Systeme, die skalierbar und belastbar sein müssen, zunehmend an Bedeutung gewinnt.

 

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

.

Viele beschreiben da so einen Aha-Effekt beim ersten Einsatz von Docker, da ihnen schlagartig die neuen Möglichkeiten klar werden. Wie verlief dein erster Kontakt mit Docker: War es Liebe auf den ersten Blick?

Container und Microservices revolutionieren die IT

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.

Wie setzt du heute Docker ein?

Adrian Mouat: In meiner täglichen Arbeit helfe ich anderen mit Docker und damit verbundenen Technologien. Ich gebe außerdem Präsentationen, wobei meistens die Präsentationssoftware selbst in einem Container läuft.

Wo liegen aus deiner Sicht die wichtigsten Unterschiede zwischen Docker und klassischen Virtualisierungslösungen? 

Adrian Mouat: Docker und VMs sind insofern ähnlich, als sie beide isolierte Umgebungen bereitstellen – sie können sowohl zum Verpacken als auch zum Verteilen von Software verwendet werden. Allerdings sind Container in der Regel viel kleiner und schneller, was sie für agile Entwicklungszyklen und Microservices besser geeignet macht. Der Kompromiss besteht darin, dass Container keine echte Virtualisierung leisten; man kann beispielsweise keinen Windows-Container auf einem Linux-Host betreiben. Es lohnt sich auch darauf hinzuweisen, dass einige Unternehmen versuchen, Tooling um abgespeckte VMs herum zu erstellen, um das Beste aus beiden Welten herauszuholen, z. B. hyper.sh, Intel Clear Containers und vSphere Integrated Container.

DevOps Conference

Wie siehst du die aktuellen Entwicklungen im Container-Ökosystem? Docker hat hier ja die Docker-Runtime „containerd“ an die Open Container Initiative übergeben. Eine gute Entscheidung?

Adrian Mouat: Es ist ein großer Schritt nach vorn. Meine persönliche Meinung ist, dass Docker Inc. die Vision hat, eine komplette Plattform für die Entwicklung, das Bereitstellen und das Management von Softwaresystemen aufzubauen: also quasi ein verteiltes Cloud-Betriebssystem. Deswegen erwarte ich, dass weitere Docker Tools hinzukommen, die sich mit ihren eigenen Diensten wie Docker Cloud und dem Docker Store integrieren lassen. Dieses Tooling wird auf den Open-Source-Komponenten von OCI und Moby aufbauen, aber auch Komponenten enthalten, die vollständig im Besitz von Docker sind und für die Interaktion mit ihren eigenen kommerziellen Angeboten ausgelegt sind. Ich sehe dies als Teil einer klaren Abgrenzung zwischen Docker als Plattform – mit kommerziellen und proprietären Komponenten – und den zugrundeliegenden Open-Source-Komponenten, die in Moby/CNCF/OCI leben und offen verfügbar sind.

Welche Herausforderungen gibt es noch bei der Arbeit mit Docker?

Es gibt eine Menge Verwirrung darüber, wie Volumes in Docker funktionieren.

Adrian Mouat: 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.

Welche neuen Features wünscht du dir in Docker?

Adrian Mouat: Ich würde gerne die Möglichkeit haben, die Zeitstempel von Dateien beim Ausführen von docker build neu zu setzen. Wenn zwei Leute momentan docker build auf dem gleichen Quellcode ausführen, werden sie am Ende leicht unterschiedliche Images haben, hauptsächlich wegen dieses Zeitstempelproblems. Binäridentische Images erstellen zu können, hat einige nette Eigenschaften für Debugging und Wartung.

Kannst du den Lesern zu Abschluss noch einen Docker-Tipp mitgeben?

Adrian Mouat: Ich habe eine ganze Sammlung von Tricks, die ich auf der DockerConEU präsentieren werde. Wenn ich nur einen zeigen soll, dann am besten den, wie man das “docker ps” Output-Format setzen kann. Per Default wird eine wirklich lange Zeile ausgegeben, die sehr unübersichtlich wird, wenn man nicht den ganzen Bildschirm zur Verfügung hat. Man kann das Problem durch die Nutzung des Arguments `–format` beheben, um genau anzugeben, an welchen Feldern man interessiert ist:

docker ps –format \

„table {{.Names}}\\t{{.Image}}\\t{{.Status}}“

Man kann das auch als Default-Einstellung in der Datei .docker/config.json einrichten.

Vielen Dank für dieses Interview!

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -