Docker-Revolution, DevOps, CoreOS & Rocket

Interview mit Peter Roßbach: Wohin steuert Docker?
Kommentare

Docker entwickelt sich rasant zu einem Industrie-Standard zur Auslieferung von Software in portablen Containern. Nicht wenige sehen in Docker den Anbruch einer Revolution, die die Art und Weise, wie zukünftig Software entwickelt und ausgerollt wird, nachhaltig verändert. Wir haben uns mit Docker-Experten Peter Roßbach über Stärken und Schwächen von Docker unterhalten. Zur Sprache kommt auch die vom CoreOS-Team geübte Kritik an Docker und die eben lancierte Docker-Alternative Rocket.

Wir haben uns mit Docker-Experten Peter Roßbach über Stärken und Schwächen von Docker unterhalten. Zur Sprache kommt auch die vom CoreOS-Team geübte Kritik an Docker und die eben lancierte Docker-Alternative Rocket.

DevOps Conference 2015

DevOpsConDie neue Konferenz für Docker, Infrastructure as Code, Continuous Delivery, Cloud und Lean Business startet am 1. bis 3. Juni in Berlin. Erleben Sie spannende Erfahrungsberichte und eine Fülle an wertvollem  Praxiswissen von den bekanntesten deutschsprachigen und internationalen DevOps-Experten. Holen Sie sich jetzt den entscheidenden Wissensvorsprung für die IT Ihres Unternehmens! Alle Infos auf www.devopsconference.de.

Hallo Peter. Docker hat in den letzten Monaten einen enormen Zulauf erhalten. Was ist für dich das Faszinierende an der Technologie?

Peter Roßbach: Docker löst einige fundamentale Aufgaben der IT. Endlich können wir Software so liefern, dass sie auf dem eigenen Entwicklungsrechner, im Data-Center und in der Cloud mit demselben Binary ablauffähig ist.

Die Konfiguration für die jeweilige Umgebung ist änderbar. Die fertige Software wird in Container ausgeführt, die über die definierten Schnittstellen kooperieren. Die Container werden über Registries bereitgestellt und können schnell auf beliebigen Maschinen zur Ausführung gebracht werden. Dieses Teilen von vorgefertigten Infrastrukturbausteinen macht es nun überall möglich, Systeme schnell und zuverlässig aufzubauen. Damit ist Docker ein ideales Ablaufsystem für Mircoservices und bestehende Systeme.

Schon in der Entwicklung können wir nun das fertige System realisieren und testen. Das Docker-Ökosystem erzeugt aktuell wöchentlich neue Features und Werkzeuge, die die Automatisierung vorantreiben und den Nutzen erhöhen. Alles ist sehr konsequent darauf ausgerichtet, Systeme besser herzustellen und leistungsfähiger zu betreiben. Die Faszination entsteht, weil auf einmal die einzelnen Infrabricks jederzeit wirklich schnell und passend ins System integrierbar sind.

Peter RoßbachPeter Roßbach ist freiberuflicher Systemarchitekt und Coach zahlreicher Java-EE-Anwendungen. Sein besonderes Interesse liegt in der Entwicklung von komplexen Informationssystemen, einschließlich der Gestaltung und Realisierung von testgetriebenen Softwareprozessen. Seit 1997 ist Peter Roßbach im Bereich HTTP-Server und Webcontainer tätig. Er ist Committer im Apache-Tomcat-Projekt und Mitglied der Apache Software Foundation. Sein besonderes Interesse gilt der Gestaltung von Überwachungs- und Analysesystemen für komplexe Infrastrukturen. Mit der bee42 solutions Gmbh realisiert er entsprechende Monitoring-Produkte auf Basis aktueller Webtechnologien, NoSQL-Datenbanken und Cloud-Plattformen.

Ersetzt Docker deiner Meinung nach herkömmliche Virtualisierungstechnologien?

Peter Roßbach: Docker nutzt direkte Linux Kernel-Virtualisierung und ist dadurch enorm effektiv. Alle Prozesse werden in isolierten Containern betrieben und die Ressourcen-Zuteilung und -Nutzung wird durch den Kernel direkt kontrolliert. Die bestehenden Virtualisierungstechnologien sind hier schlicht überflüssig. Beim Betreiben bestehender Systeme wird klassische Virtualisierungstechnik aber noch sehr lange eingesetzt werden und leistet hervorragende Dienste.

Das gesamte Tooling und viele Verfahrensweisen bleiben sinnvoll, deshalb unterstützen auch Hersteller wie VMware oder Projekte wie OpenStack, OpenNebula, CloudStack das Deployment mit Docker. Microsoft wird in seinem nächsten Windows-Server-Release Docker für „.NET“ möglich machen. Neue Plattformen wie CoreOS, das Projekt Atomic oder Kubernetes und die großen Cloud-Provider werden aber substanzielle Marktanteile gewinnen. Das Thema Sicherheit wird uns wie bisher immer ein paar unschöne Wahrheiten zu spät offenbaren, und wir müssen schneller reagieren.

Warum das Team-CoreOS  derartig frontal eine Platzierung der eigenen Vorstellung vornimmt, ist mir nicht transparent.

Gerade hat CoreOS einen Docker-Konkurrenten ins Rennen geschickt. Was hältst du von Rocket?

Peter Roßbach: Eine weitere Veröffentlichung, die die Definition und die Bereitstellung von Container-Images beschreibt, ist hilfreich. Das Thema ist in der Tat noch nicht befriedigend gelöst. Es gibt mehrere offene Diskussions-Threads über dieses Docker-Thema. Warum das Team-CoreOS allerdings derartig verbal und frontal eine Platzierung der eigenen Vorstellung vornimmt, ist mir nicht transparent. Hier scheint sich die Firma  in ihrem Geschäftsmodell bedroht zu fühlen. Die Ideen, eine einfachere Kombinierbarkeit und mehr Sicherheit zu ermöglichen, weitere Wege zur Verteilung von Images bereit zu stellen und für mehr Offenheit zu sorgen, sind indes alle nachvollziehbar und richtig.

Die Kritik von CoreOS geht ja in die Richtung, dass Docker sich von der ursprünglichen Mission – das Bauen eines Container-Standards – entfernt habe und mittlerweile Tools z.B. für das Starten von Cloud-Servern oder Clustering-Systeme entwickelt. Dinge also, die vielleicht gerne Unternehmen im Docker-Ökosystem selbst übernommen hätten. Kannst du das nachvollziehen?

Peter Roßbach: Diese Reaktion vom Team CoreOS ist übertrieben. Die Docker-Community möchte ein einheitliches Modell zur Unterstützung von Clustern. Es gibt für die Produktion keine Alternative, als Software auf verschiedenen Host zu betreiben. Mit der Ankündigung des Projekts Libswarm im Juni 2014 und dem Ergebnis des zweiten Docker Hack-Days Anfang November 2014 ist klar, dass die Community einen Support innerhalb des Docker-Projekts wünscht und nicht außerhalb.

Diese Tatsache hat nun den Markt verändert. Ob diese Abspaltung von CoreOS aber eine wirklich gute Idee ist, bezweifle ich. Da werden wir wohl alle noch ein paar Überraschungen erleben. Das Timing der Ankündigung kurz vor der nächsten Docker-Konferenz ist sicherlich nicht für alle optimal. Bin sehr gespannt auf die Diskussionen und Stellungsnahmen in den nächsten Tagen auf der DockerConf in Amsterdam.

Ziemlich aggressiv heißt es im CoreOS Statement ja: „We cannot in good faith continue to support Docker’s broken security model without addressing these issues.“ Wie würdest du das Sicherheitsmodell von Docker beurteilen?

Peter Roßbach: Das ist eine verbale Attacke, die auf bestehende Ängste zielt, und ist deshalb schon unangemessen. Sicherheit ist ein komplexes Thema, das wir nur durch bessere Organisation, Aktualität von Software, Transparenz und Nachvollziehbarkeit in den Griff bekommen. Hier muss die gesamte IT ihre Prioritäten überprüfen. Nur die Images von Docker selbst sind zur Zeit unterschrieben und können auf Unverfälschtheit und Herkunft überprüft werden.

Problem dieses Sicherheitsthemas ist, eine vertrauliche, aber nicht zentrale Instanz zu schaffen, die die Schlüssel bewahrt. Dafür hat auch CoreOS Rocket noch keine Antwort. Bisher hat Docker eine gute Reaktion auf Sicherheitsprobleme bewiesen und die Aufgabe entsprechend hoch priorisiert. Die beiden letzten Docker-Releases sind unmittelbar nach Bekanntwerden der Sicherheitsmängel bereitgestellt worden.

Sicherheitsprobleme zur Laufzeit haben ihre Ursache sicherlich auch im Linux-Kernel. Hier kann CoreOS mit ihrem eigenen OS und dem Autoupdate natürlich gezielter und schneller reagieren. Das Thema Sicherheitsarchitektur von Docker und der gesamten IT-Infrastruktur bleibt heikel.

Die Docker-Revolution kann schrittweise, aber auch radikal erfolgen.

In einer JAXenter-Umfrage haben zwar 31% die Meinung geäußert, dass Docker in der IT-Branche die Art und Weise, wie Anwendungen entwickelt und ausgeliefert werden, nachhaltig verändern wird. Eine Mehrheit von 36% sieht in Docker aber lediglich ein „nützliches Tool für bestimmte Leute und Anwendungszwecke“ – also keine wirkliche „Docker-Revolution.“ Wie ist da deine Haltung?

Peter Roßbach: Das Ergebnis wundert mich nicht. Es zeigt mir, dass viele Teilnehmer noch in sehr statischen Organisationen arbeiten, die eine sehr lange Historie im IT-Betrieb haben. Hier laufen wichtige Systeme, die nicht schnell veränderbar sind. Viele von uns Administratoren und Entwickler ahnen aber, dass der etablierte Betrieb und die Herstellung von Software mit Docker eine umfassende positive Veränderung erfahren wird. Die Docker-Revolution kann schrittweise, aber auch radikal erfolgen.

Entwickler können ihre Entwicklungsumgebungen einfacher mit den Kollegen teilen oder die verschiedenen Systemumgebungen von Kunden für das Produkt besser testen. Administratoren können durch den Einsatz von Orchestrierung mit Docker und die Verwendung der Linux Kernel-Virtualisierung Ressourcen sparen oder Lastspitzen durch Clouds abfangen.

Jeder kann davon profitieren und prüfen, an welcher Stelle seiner IT er die Vorteile jetzt schon nutzt. Eine neue Leichtigkeit beim Einsatz von IT ist mit Docker erstmalig in großem Umfang, aber auch im Kleinen gleichermaßen möglich. Mit Docker ist Verpacken, Bereitstellen und Starten von Systemen effektiver. Die Attraktion von Docker und die schnelle Adoption am Markt zeigt mir, wie gerne wir IT’ler die vorhandenen, selbstgeschaffenen Hindernisse nun endlich beseitigen möchten.

Wie hoch würdest du die Einstiegshürden einschätzen, um mit Docker produktiv arbeiten zu können? Vielleicht kannst du auch ein paar Tipps geben, wie Neulinge sich am besten Docker annähern sollten?

Peter Roßbach: Der Umgang mit Docker gelingt immer. Auf allen aktuellen Linux-Distributionen wird Docker unterstützt. Für Mac OS X und Windows kann man mit Boot2Docker eine Installation auf der Basis von Virtualbox einrichten. Beispiele für Docker-Container gibt es auf der öffentlichen Registry. Die Quellen lassen sich meistens auf GitHub einsehen. Die Integration in Build- und Konfigurationsmanagement-Werkzeuge ist hervorragend.

Also ist mein Rat: Einfach anfangen, die eigene Software, Backends, Tools oder Umgebung zu „dockerizen“. Wer tiefer einsteigen möchte, braucht Hilfe durch professionelle Trainings oder muss sich mehr Zeit für Lernen und Probieren nehmen.

Docker empfiehlt uns, dass wir Software in kleineren modularen Einheiten bereitstellen.

OSGi-Begründer Peter Kriens hat jüngst recht kritisch über Docker geschrieben und dabei die Befürchtung geäußert, dass durch Docker eine Art „schlampiges Programmieren“ salonfähig werden könnte, da es nicht mehr unmittelbar bestraft wird. Was kannst du dieser Befürchtung entgegnen?

Peter Roßbach: Stimmt, schlechte Software existiert heute und wird es wohl auch in Zukunft leider geben. Gründe und Ursachen dafür gibt es sicherlich viele. Zwei Gründe sind sicherlich, dass Systeme in einem Prozess zu groß sind und zu viele Abhängigkeiten haben. Weniger ist halt mehr.

Docker hat auf die Inhalte der Software, Services und Prozesse allerdings nur indirekt Einfluss. Docker stellt Infrastruktur bereit. Docker empfiehlt uns, dass wir Software in kleineren modularen Einheiten bereitstellen. Im Docker-Ökosysteme entstehen Werkzeuge und Orchestrierungssysteme für abgegrenzte Zwecke, die schon heute ein skalierbares, ausfallsicheres und kostengünstigeres Betreiben von Software möglich machen.

Dass wir nun einfach Software bereitstellen können, macht es wahrscheinlich, dass Unzulänglichkeiten auftreten. Allerdings sind wir nun in der Lage, diese Fehler schneller zu beheben, da die Einheiten kleiner und besser zu testen sind. Die Hoffnung ist, dass unsere Reaktion präziser und schneller erfolgt. Einzelne Teile der Software werden fertig, und Änderungen gefährden nicht immer alles. Schnelleres Feedback, das zu Handlungen führt, macht Software für Kunden erst wirklich einsetzbar.

Unsere bisherigen Vorgehensweisen gehören auf den Prüfstand, denn die Nutzer haben bessere Software zu moderaten Preisen verdient. Ich bin überzeugt davon, dass wir durch die Industrialisierung von IT in der Lage sind, zukünftig bessere Qualität zu liefern und mehr Nutzen für den Kunden als heute zu erzeugen.

Du sagst, Fehler in der Software können potenziell schneller erkannt werden. Wie sieht es aber mit der Testbarkeit von Docker-Infrastrukturen aus?

Peter Roßbach: Docker unterstützt den Qualitätsprozess zur Herstellung von Software in allen Bereichen. Mit Docker lassen sich einfach Umgebungen für Kundenabnahmen, Integrations- oder Lasttests herstellen. Selbst der gesamte Aufbau der Infrastruktur lässt sich mit Docker heute im Test-First-Modus herstellen. Die Infrastruktur ist halt Code, und der lässt sich maschinell überprüfen.

Du schreibst im Entwickler Spezial, dass Serverspec zwar insgesamt schon ganz gute Tests von Container-Images erlaubt, man sich aber auch noch Verbesserungen vorstellen könnte. Kannst du ein paar Beispiele nennen?

Peter Roßbach: Mit dem Werkzeug Serverspec lässt sich Infrastruktur sehr elegant überprüfen. Die Docker-Integration ist in den letzten Monaten wesentlich besser geworden, und das Erzeugen und der Test von außen sind nun möglich. Leider fehlt noch, dass wir im laufenden Container die Infrastruktur elegant überprüfen können. Mit meinem Kollegen Andreas Schmidt habe ich entsprechende Patches eingereicht (http://www.infrabricks.de).

Wir warten zur Zeit darauf, dass das Ruby API die neusten Eigenschaften von Docker unterstützt. Das Docker-Universum bewegt sich halt schnell, und es ist nicht immer einfach, alle unabhängigen Teile aufeinander abzustimmen. Die Verwaltung von Testspezifikationen und die Anwendung auf die Systeme kann durch den Einsatz von Rollen und Tags noch vereinfacht werden.

Ein Docker-Store muss her, damit wir unsere IT-Bausteine verkaufen können.

In welche Richtung sollte sich Docker deiner Auffassung nach jetzt weiterentwickeln?

Peter Roßbach: Das Votum der Community des letzten Docker Hack-Days ergab: Eine direkte Steuerung von mehreren Hosts und die direkte Erstellung von Docker Hosts lokal und in der Cloud müssen unterstützt werden. Diese Eigenschaften helfen uns dabei, Docker auf vielen Systemen zu betreiben.

Mein Wunsch wäre, dass wir unsere Images auf dem Hub zertifizieren können, damit der Nutzer den Hersteller identifizieren und die Unverfälschtheit eines Docker-Images überprüfen kann. Dockerfiles müssen mit Templates erzeugt werden können, um flexibel verschiedene Versionen oder Konfigurationen von Software bereitzustellen.

Eine bessere Unterstützung des Abhängigkeitsmanagements in Deployment Pipelines zur Aktualisierung von Docker-Images ist notwendig. In der nächsten Generation brauchen wir bessere Orchestrierungssysteme, damit die Steuerung von Software im Betrieb leichter wird. Zur Kontrolle der vielen Einheiten brauchen wir ein Realtime-Monitoring und bessere Log-Analysesysteme. Und dann muss ein Docker-Store her, damit wir unsere IT-Bausteine verkaufen können.

Peter, vielen Dank für dieses Interview! 


Inside Docker: Wenn Sie mehr über Docker wissen möchten, empfehlen wir Ihnen das Entwickler Magazin Spezial Vol. 2: Docker zum leichten Einstieg in die Container-Virtualisierung.

docker-coverMit Docker feiern Linux-Container momentan ein eindrucksvolles Comeback. Während der Einsatz von virtuellen Maschinen viele Vor-, aber auch zahlreiche Nachteile mit sich bringt, ist Docker eine leichtgewichtige, containerbasierte Alternative, die die System-Level-Virtualisierung auf ein neues Level hebt. Dabei ergänzt Docker das Deployment von Betriebssystemen und Webanwendungen um die Lösungen, die man beim Original schmerzlich vermisst. In diesem Jahr hat Docker eine hohe Dynamik entwickelt und wird in allen aktuellen Linux-Distributionen wie Redhat, SUSE oder Ubuntu ausgeliefert. Firmen wie Spotify, Google, BBC, eBay und seit kurzem auch Zalando setzen Docker bereits produktiv ein. Das Entwickler Magazin Spezial „Docker“ informiert kompetent über diese revolutionäre Technologie, von der viele meinen, dass sie eine neue Ära in der IT einläuten wird. Wir erklären technische Hintergründe, demonstrieren Best Practices und zeigen, wie Docker effektiv eingesetzt werden kann. Das Sonderheft vereint umfangreiches Wissen über die wichtigsten Aspekte von Docker, spannende Ideen für eigene Docker-Projekte und wertvolle Impulse für ihre strategische Planung.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -