Interview mit Robert Lemke zu den „Fun-Killern“ bei Docker, Kubernetes & Co.

Docker: Die eigentliche Komplexität geht erst nach der Entwicklung los
Keine Kommentare

Als Docker die Bühne betrat, begannen viele Entwickler, Container als eine leichte Alternative zu virtuellen Maschinen zu verwenden. Es war vielversprechend, Docker als lokale Umgebung für die Entwicklung zu verwenden, die der auf den Produktionsservern ausgeführten Software sehr nahe kommen würde. Aber das Entwickler-Wunderland hatte auch seine Schattenseiten, denn alle möglichen praktischen Probleme verdarben den Spaß. Anlässlich der IPC Conference sprachen wir mit Robert Lemke (Flownative), welche Spielverderber es im Docker-Universum gibt und wie es doch noch zu einem Happy-End kommen kann.

Robert Lemke, Speaker auf der IPC Conference, beleuchtet im Interview nicht nur die Herausforderungen der Docker-Welt, sondern richtet auch den Blick auf die stark expandierenden Cloud-Dienste. Mit der Cloud-basierten Hosting-Plattform Flownative Beach hat er einschlägige Erfahrungen auf diesem Gebiet gesammelt.

Entwickler.de: In Deiner Session „A happy end for the Docker-for-development-drama“ zeigst Du die Fallstricke, die entstehen, wenn man Docker als Entwicklung- und Produktions-Umgebung nutzt. Kannst Du schon mal kurz anreißen, welche Probleme uns Docker im Praxisalltag bereiten kann?

Robert Lemke: Da gibt es leider so einige. Klar, ein PHP oder Nginx Container ist schnell gestartet, das Projekt-Verzeichnis schnell eingebunden. Aber für die Mac-Benutzer gehen da meistens die Probleme schon los: gerade wenn das Projekt aus vielen Dateien besteht, wird das Ganze in der Ausführung unsäglich langsam. Denn Docker unternimmt so einige Klimmzüge um die Dateien außerhalb des Containers mit denen im Container zu synchronisieren – und das dauert. Deshalb sind da noch kreativere Ansätze gefragt.

Außerdem haben Entwickler mehrere Projekte gleichzeitig in Arbeit. Da wird dann die manuelle Verteilung von Port-Nummern für Webserver, Redis & Co zum Geduldsspiel. Und dann gibt’s noch all die kleinen Gemeinheiten, beispielsweise wenn man versucht aus dem Docker Container einen Dienst auf dem Host-Rechner, also zum Beispiel dem Mac, zu erreichen.

Entwickler.de: Trotzdem überwiegen die Vorteile gegenüber den Nachteilen, bei der Verwendung von Docker. Wichtig ist es ein individuelles Setup zu erstellen, um die Vorteile der Container voll auszunutzen. Wie könnte ein solches „ideales“ Setup aussehen?

Robert Lemke: Wenn man Docker nur verwendet um beispielsweise mehrere PHP Versionen gleichzeitig laufen zu lassen oder bei Bedarf mal einen Elasticsearch Server zu starten, dann kommt man auch relativ gut mit Standard-Images klar. Aber klar, der eigentliche Vorteil besteht ja darin, dass ich bei der Entwicklung die gleichen Images verwende wie später im Live-System. Dann kommt man um eigene Docker Images nicht herum. Die müssen dann in Git Repositories abgelegt, automatisiert gebaut, getestet und verteilt werden. Ich verwende dafür gerne Gitlab CI. Je nach Projekt kann man die Images sogar dort speichern. Alternativ nutze ich auch Google Cloud Build – das ist quasi ein „docker build“ ausgelagert in einen Service.

Die eigentliche Komplexität geht aber nach der Entwicklung erst los. Denn trotz aller Fortschritte, und großartigen Lösungen wie Kubernetes, ist das Betreiben und Überwachen von Container in Live-Systemen eine aufwändige Angelegenheit. Man muss also genau wissen, warum man Docker verwenden möchte, damit sich der Aufwand lohnt. Oder sich trauen, die Zeit bewusst zu investieren um diese neuen Technologien zu lernen.

Entwickler.de: In einer weiteren Session auf der IPC schaust Du Dir Kubernetes genauer an. Auch bei der Verwendung von Kubernetes gibt es leider einige „Fun-Killer“. Was muss man auf jeden Fall beim Einsatz von Kubernetes beachten?

Robert Lemke: Kubernetes ist ein beeindruckendes Projekt. Nicht nur was den Umfang angeht, sondern auch wie die Entwicklung in der Community koordiniert wird. Die meisten Probleme, die ich mit Kubernetes hatte waren schlussendlich auf Docker zurückzuführen. Aber abgesehen von den potentiellen Bugs muss man sich klar darüber sein, dass Applikationen in der Cloud auch eine andere Herangehensweise bei der Entwicklung fordern. Wer in seinem Code davon ausgeht, dass er auf einer „lokalen Festplatte“ Daten persistent speichern kann, wird die Vorteile von skalierbaren Containern nicht komplett nutzen können. Letztlich ist es auch ein Paradigmen-Wechsel von „möglichst einen Server so pflegen dass alle Dienste immer laufen“ zu „eine organische, dynamische Cloud Struktur bei der Server ständig kommen und gehen“. Meine Applikation muss also auch mit kurzzeitigen Verbindungsabbrüchen – zum Beispiel zur Datenbank oder Redis – klarkommen. Wenn ich das bei der Entwicklung berücksichtige, werde ich mit einer automatisch skalierenden und sich selbst reparierenden Hosting-Umgebung belohnt.

Cloud-Dienste auf dem Vormarsch

Entwickler.de: Du hattest die erfolgreichen TYPO3 Projekte Flow und Neos aus der Taufe gehoben. Mit Flownative entwickelst Du jetzt u.a. maßgeschneiderte Kundenlösungen für Neos und hast zudem die Cloud-basierte Hosting-Plattform Flownative Beach am Markt etabliert. Wie wird dieses Angebot bisher angenommen?

Robert Lemke: Wir haben Beach bewusst langsam hochgefahren und uns mit der Kommunikation etwas zurückgehalten um das Learning aus den ersten Kunden möglichst gut wieder in das Produkt einfließen zu lassen. Daran gemessen, was wir uns gewünscht haben, läuft das Angebot gut an. Wir haben aber auch gemerkt, dass es in dem Bereich Cloud Plattform noch einiges an Aufklärungsarbeit zu leisten gilt. Denn der erste Impuls ist, dass man Beach mit einem traditionellen Hosting vergleicht – insbesondere preislich. Eine Cloud ist – auch für uns im Einkauf – aber deutlich teurer als ein selbst betriebener „Root Server“. Und die Arbeit, die einem Beach abnimmt – zum Beispiel die komplette Continuous Integration / Delivery Pipeline, Redis, Elasticsearch und so weiter – ist häufig welche, die im Projektgeschäft nie genau beziffert wird. Dass wir durch Beach zum Hoster geworden sind, ist das notwendige Übel, auch wenn es mit Kubernetes eine Menge Spaß bringt. Aber unser eigentlicher Fokus ist es, mit Software den Projekt-Alltag zu erleichtern.

Entwickler.de: Globale Player haben einen großen Teil des Kuchens für Platform-as-a-Service-Lösungen unter sich aufgeteilt. Glaubst Du das diese Entwicklung sich weiter verfestigen wird, oder werden viele kleinere Player zukünftig mit kreativen Lösungen ihre Chancen auf dem Markt verbessern können?

Robert Lemke: Der Kuchen für die reinen Infrastruktur-Dienste, also Rechenkapazität, Datenbanken, Speicherplatz, Load Balancer, ist sicherlich erst einmal aufgeteilt. Ich wünsche mir, dass deutsche Unternehmen da aufholen und verstehen, dass es nicht nur um die reine Technik sondern um die gesamte Admin- / Entwickler-Experience geht. Denn was die Schnittstellen und zusätzlichen Dienste angeht, sind Google, Amazon & Co immer noch am innovativsten. Aber auch dort gibt Überraschungen, wie vor gerade mal etwas über 5 Jahren mit Digital Ocean. Wie die Erfahrung aber zeigt, ist das reine Cloud Angebot – und sei es auch ein voll gemanagter Kubernetes Cluster – für viele Unternehmen noch zu überwältigend. Das Aufsetzen von Applikationen und Prozessen erfordert da noch eine Menge Zeit und Wissen. Insofern sehe ich eine Menge Spielraum für interessante Branchen-spezifisiche PaaS oder SaaS Anwendungen. Und Kreativität bietet immer eine Chance, auch wenn die Mitbewerber vermeintlich den Kuchen unter sich aufgeteilt haben.

Vielen Dank für dieses Interview!

Robert Lemke ist Gründer des Neos Open Source Projekts und Initiator des Flow Framework. Er ist außerdem Mitbegründer und CEO von Flownative, einem Unternehmen, das Web-Agenturen und Organisationen unterstützt, um erfolgreiche Projekte mit Neos und Flow zu realisieren. Robert lebt mit seiner Frau, zwei Töchtern, und seiner Espressomaschine Rocket in Lübeck.

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 -