Vier Experten diskutieren die Zukunft der Container-Technologie

Experten-Check „Container 2.0“: Was ist die nächste Schlacht der Container-Revolution?

Hartmut Schlosser

(c) Shutterstock / SMSka

Mit Docker wurde eine Container-Revolution eingeleitet, die dabei ist, die Art und Weise zu verändern, wie moderne Software entwickelt und betrieben wird. In einem Themen-Dossier wollen wir deshalb der Frage nachgehen, was diese Revolution ausmacht und wie die nächste Stufe der „Containerization“ aussehen könnte.

Willkommen im Zeitalter Container 2.0

Ausgangspunkt unserer Diskussion ist die Vision des Mesosphere CEO Florian Leibert, die er im Blogpost Welcome to the era of Container 2.0 ausgeführt hat. Leibert geht davon aus, dass eine ernsthafte Nutzung der Container-Technologie mehr voraussetzt als das reine Paketieren und Betreiben von Code in Containern (was er als “Container 1.0” bezeichnet).

In der nächsten, Container 2.0 betitelten Phase geht es laut Leibert darum, Stateless und Stateful Services auf einer geteilten Infrastruktur zu orchestrieren und damit die Ebene individueller Container zu verlassen. Auf einer höheren Abstraktionsstufe sollen ganze Anwendungen zu kohärenten, deploy-baren Objekten werden, die aus einer Vielzahl an Containern und Infrastruktur-Services wie Datenbanken oder Message Queues bestehen können.

At its simplest, Container 2.0 is the ability to run (and orchestrate) both stateless and stateful services on the same set of resources.

However, while this stateless-plus-stateful definition is accurate, easy to grasp and very powerful—especially for anyone who has built applications that connect to big data systems such as Kafka or Cassandra—even it is not comprehensive.

Realistically, delivering Container 2.0 means delivering a platform that can run application logic along with the gamut of backend services on shared infrastructure, combining all workloads onto a single platform that improves efficiency and simplifies complex operations. The collection of capabilities that modern applications require includes monitoring, continuous deployment, relational databases, web servers, virtual networking and more.
– Florian Leibert

Wir haben Experten gebeten, diese Sichtweise zu kommentieren und uns ihre Vision für eine Container-2.0-Welt zu erklären. Außerdem haben wir nach den signifikanten Entwicklungen in der aktuellen Container-Welt gefragt, die in die Richtung einer neuen Stufe der Containerization weisen.

Die Container-Experten

johannes_unterstein

Johannes Unterstein – Leiter JUG Kassel und Distributed Applications Engineer bei Mesosphere.

stropek_rainer_300x210

Rainer Stropek – Gründer der software architects GmbH und MVP für die Windows-Azure-Plattform

roland_huss

Roland Huß – Principal Software Engineer bei Red Hat. Entwickler des fabric8io/docker-maven-plugins.

Philipp Garbe

Philipp Garbe – Docker Captain und Lead Software Developer bei AutoScout24.

Was würde aus deiner Sicht zu einer Container-2.0-Welt gehören?

Container 2.0 adressiert sowohl zustandsbehaftete Container, als auch die Kombination mit “Big Data” Frameworks.

Johannes Unterstein: Eine große Herausforderungen in der heutigen Containerlandschaft ist das Thema Persistenz. Zustandslose Container sind relativ einfach zu handhaben: Zum Beispiel können diese im Fehlerfall einfach auf einem beliebigen Knoten neu gestartet werden. Mit zustandsbehafteten Containern ist das nicht mehr so einfach. Was passiert, wenn ein Container mit persistenten Daten nach einem Netzwerkproblem wieder erreichbar ist, aber bereits eine zweite Instanz gestartet wurde?

Container 2.0 adressiert sowohl zustandsbehaftete Container, als auch die Kombination mit “Big Data” Frameworks, wie zum Beispiel Spark, Cassandra, Kafka, die optimalerweise auf dem selben Cluster wie die Container laufen.

Rainer Stropek: Durch meine Arbeit habe ich eine etwas andere Sicht der Dinge. Der Betrieb einer Container-Infrastruktur ist für mich weniger relevant. Ich betrachte Container und Docker primär aus Sicht des Softwareentwicklers. Wie setze ich Container im Softwarelebenszyklus ein? Wie gestalte ich Container-freundliche Architekturen? Wie schreibe ich Code, der sich gut zum Deployment in Containern eignet? Wie automatisiere ich die Verpackung meiner Software in Images als Teil meiner CI/CD Pipeline? Fragen wie diese beschäftigen mich ganz besonders.

Was den operativen Betrieb der Container betrifft, möchte ich mich weitgehend heraushalten. Das wirklich professionell zu machen, ist alles andere als einfach. Ich setze hier ganz auf PaaS in der Cloud. Azure App Service ist für mich ein wunderbares Beispiel. Microsoft bietet hier beispielsweise Linux-basierendes PaaS für PHP und Node.js an. Die Dockerfiles dazu findet man auf Docker Hub. Ich kann also lokal mit genau den Docker Images testen, die ich dann später in der Cloud verwenden werde. Um den Betrieb der Infrastruktur im Hintergrund kümmere ich mich aber nicht. Das erledigt der Azure PaaS-Dienst App Service für mich.

Roland Huß: Das entscheidende Charakteristikum der Container-Technologie ist ja, dass dank eines einheitlichen Formates alle Container uniform behandelt werden können, unabhängig vom Inhalt der Container. Genau das wird aber bei der zitierten „Container 2.0“-Definition aufgegeben. Stattdessen tritt hier als definierendes Kriterium die gemeinsame Orchestrierung von ’stateless‘ und ’stateful‘ „Services“ in den Vordergrund (im Gegensatz zu den reinen ’stateless‘ 1.0 Containern).

Es ist sicher uneingeschränkt richtig, dass statusbehaftete Dienste, die Daten persistent verarbeiten, aktuell eine der größten Herausforderungen ist. Es gibt hier verschiedene Ansätze wie z.B. Kubernetes‘ „PetSets“ (bzw. „Stateful Sets“) oder aber auch Mesos‘ Two-level Scheduler, der spezialisierte Workload bzw. Services verteilen kann.

Nur hat das in meinen Augen mit einer „Container 2.0“-Definition nicht viel zu tun, denn z.B haben nur ein Teil der von Mesos verwalteten stateful Services ein standardisiertes Containerformat.

Die Containerisierung der Welt lässt sich tatsächlich in mehrere Phasen betrachten, jedoch sehe ich hier eher den Übergang von lokalen Containern (Docker) hin zur Orchestrierung von vielen Containern über viele Nodes hinweg (Docker Swarm, Kubernetes und Mesos) als das nächste ‚Release 2.0‘.

Philipp Garbe: Ich finde es wichtig, dass man deklarativ festlegen kann, was eine aus mehreren Containern bestehende Applikation benötigt und welche Abhängigkeiten zwischen einzelnen Containern bestehen. Teilweise ist die Deklaration bereits möglich, aber ein Deployment, das diese Abhängigkeiten automatisch auflöst fehlt noch. Beispielsweise kann ich definieren, dass mein Container ein Volume benötigt. Es fehlen aber weitere Informationen wie Größe oder benötigter Throughput. Ich muss daher selber Volumes auf dem Cluster erstellen und meinem Container zur Verfügung stellen. Auch ein automatisches Skalieren ist dadurch nicht möglich, da zwar weitere Container gestartet werden können, die dafür benötigten Volumes werden aber nicht automatisch erstellt.

Welche aktuellen Container-Initiativen findest du zukunftsweisend?

Roland Huß: Besonders spannend finde ich die aktuellen Standardisierungsbemühungen der Open Container Initiative (OCI) für das Containerformat und die Container Runtime. Docker hat es extrem gut geschafft, die OS-Level-Virtualisierung, wie sie ja schon seit Jahren existiert, für Normalsterbliche mit einer herausragenden User Experience (UX) zu versehen. Dafür kann man Docker gar nicht genug danken. Die damit einhergehende enorme Popularität des von Docker definierten Containerformats macht es zu einem De-facto-Standard.

Docker Inc. scheint nicht unbedingt einen offenen und unabhängigen Standard zu wollen.

Docker Inc., die als Firma natürlich berechtigterweise kommerzielle Interessen hat, scheint jedoch nicht unbedingt einen offenen und unabhängigen Standard zu wollen. Es wird spannend sein zu sehen, ob und wie die OCI es schafft, die Interessen von Docker und der anderen OCI Mitglieder unter einen Hut zu bringen. Eine anderes großes Thema in dem gerade unheimlich viel Energie steckt sind Container-Orchestrierungsplattformen. Im Gegensatz zu der Docker dominierten lokalen Containerwelt tummeln sich hier viele Player, allen voran Kubernetes, Docker Swarm und Apache Mesos.

Aber auch hier wird wieder das Spannungsfeld deutlich in dem Docker als Firma agiert: Die Entscheidung, docker-swarm als Teil jeder Docker Installation mit auszuliefern erinnert stark an die aggressive Strategie die Microsoft einst mit der Integration des Internet Explorer 6 in das Betriebssystem verfolgt hat. Es bleibt nur zu hoffen, dass Docker der Innovationstod des IE 6 erspart bleibt (und tatsächlich ist auch nicht unbedingt davon auszugehen).

Rainer Stropek: Für mich als Microsoft-orientierter Entwickler ist das Engagement von Microsoft in Sachen Docker sehr spannend. Damit meine ich nicht nur Docker-kompatible Windows-Container. Ich spreche auch davon, dass Microsoft fertige Linux-Images für wichtige Technologien wie .NET, PowerShell oder Azure im Docker Hub anbietet. Microsoft heißt schon lange nicht mehr ausschließlich Windows. Ein nennenswerter Anteil meiner Arbeit geschieht mittlerweile auf Linux, und da ist es schön zu sehen, dass Microsoft dieser Entwicklung mit vollem Einsatz folgt.

Spannend wird es, komplexere Anwendungen zu deployen, die aus mehreren Containern bestehen.

Philipp Garbe: Container zu starten ist mittlerweile kein Problem mehr. Spannend wird es, komplexere Anwendungen zu deployen, die aus mehreren Containern bestehen und bei denen gewisse Constraints beachtet werden müssen. Docker, Kubernetes und ECS haben jeweils ihre eigenen Ansätze, und es wird interessant, wo uns das hinführt.

Johannes Unterstein: Es gibt aktuell viele spannende Entwicklungen, die sich damit beschäftigen, Container einfach in Produktion zu verschiffen und zuverlässig zu betreiben. Dabei finde ich in den aktuellen Diskussionen sehr spannend, wie schnell sich alle Ebenen bewegen. Sei es auf einer sehr detaillierten Ebene, auf der über die Docker­ Runtime kontrovers diskutiert wird, oder auf einer sehr abstrakten Ebene, auf welcher der Betrieb von hunderten oder tausenden Containern adressiert wird. Außerdem ist die Entwicklung verschiedener Standards, wie zum Beispiel CNI für Networking, interessant zu beobachten.

Quote Zone

 

Jeder Entwickler/Operator sollte sich mit Container-Technologien auseinandersetzen, weil…

…es sich dabei um ein Werkzeug handelt, auf das heute kein Entwickler mehr verzichten sollte. Rainer Stropek

…damit schnell und einfach Tools oder Applikationen lokal ausprobiert werden können. Wie sonst kann man z.B. einen Elasticsearch Cluster innerhalb weniger Minuten lokal laufen lassen? Philipp Garbe

…es ihm das Leben erheblich erleichtert. Johannes Unterstein

…in Zukunft ein Großteil aller Applikationen in Containern ausgeliefert werden wird. Roland Huß

Jeder Manager/IT-Entscheider sollte sich mit Container-Technologien auseinandersetzen, weil…

…Container-Technologie massive (positive) Auswirkungen auf die Art hat, wie wir Software entwickeln. Damit meine ich nicht nur technische Auswirkungen sondern auch organisatorische. Rainer Stropek

…es die Effizienz der Entwickler erhöht und damit bestehende Resourcen effizienter genutzt werden können. Egal ob im Rechenzentrum oder in der Cloud. Philipp Garbe

­

… es das Leben seiner Mitarbeiter erleichtert und hilft, die verfügbaren Cluster­ Ressourcen bestmöglich einzusetzen und dadurch auch Geld zu sparen. Johannes Unterstein

…es die Prozesse samt ihre Parameter wie Kosten oder Entwicklungszeit wesentlich optimieren wird und weil es Spaß macht, Entwickler und Administratoren mit einem Lächeln durch die Gänge gehen zu sehen 😉 Roland Huß

Im zweiten Teil dieser Serie werden wir uns näher mit den Verzügen von Container-Anwendungen auseinandersetzen und Tipps für den Einstieg geben.  Stay tuned!

Rethink-IT-Survey-300x180Container – Wie sieht es in Ihrem Unternehmen aus?
Continuous Delivery, Microservices, Container, Cloud und eine agile Unternehmenskultur machen die moderne DevOps-Bewegung aus. Doch wie sieht es in Unternehmen in diesen Bereichen wirklich aus?

Umfrage: Rethink IT

In unserer großen Umfrage zur DevOps-Kultur haben Sie die Gelegenheit klarzustellen, ob und wie DevOps in Ihrem Unternehmen umgesetzt wird. Machen Sie mit!

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: