DevOpsCon Interview mit Johannes Bumüller, Clemens Heppner, Florian von Stosch

„Machen Sie es sich beim ersten Versuch mit Microservices nicht zu schwer“

Hartmut Schlosser

(c)  Shutterstock / Dmitry Guzhanin

Microservices etablieren sich immer mehr als Architekturstil zur Entwicklung komplexer Softwaresysteme. Wie man eine Microservice-Architektur konzipiert, damit sie skalierbar und robust bereitgestellt werden kann, führen Johannes Bumüller, Clemens Heppner und Florian von Stosch in ihrem Workshop auf der DevOpsCon 2016 vor. Wir haben die Sprecher vorab nach ihrer Herangehensweise an das Thema Microservices gefragt.

JAXenter: Mit dem Konzept der Microservices ging ein ziemlicher Ruck durch die Szene der Softwarearchitektur. Was glaubt ihr, warum setzen jetzt viele auf diesen Architekturstil?

Microservices können von Cloud-Plattformen stärker profitieren.

Johannes Bumüller, Clemens Heppner, Florian von Stosch: Von den Vorteilen, die Microservices mit sich bringen, stechen zwei besonders heraus: Erstens können Microservices von Cloud-Plattformen stärker profitieren, da sie als verteilte Systeme konzipiert sind. Zweitens können mehrere Entwicklungsteams effizienter zusammenarbeiten. Die spannende Frage ist, wieso dies in den letzten Jahren auf so viel Resonanz stößt!

Wir denken, beim ersten Punkt hängt das mit der Verfügbarkeit von professionellen private und public Cloud-Lösungen zusammen. Mit Microservices kann kurzfristig auf Schwankungen in der Auslastung reagiert werden, und es können sogar selektiv die Services ausgewählt werden, die besonders viele Anfragen bekommen. Zum zweiten gibt es mehr und mehr Unternehmen, die sich als Software-Unternehmen verstehen und SaaS-Anwendung betreiben. Durch das langfristige Geschäftsmodell können stabile Entwicklungsteams gebildet werden, die an eigenen Teilen der Anwendung arbeiten. Dadurch lohnt sich plötzlich die Investition in eine reibungslose und möglichst unabhängige Deployment-Pipeline!

Zu guter Letzt stehen inzwischen mehr und mehr zuverlässige Open-Source-Lösungen zur Verfügung, die die Einstiegshürden senken.

DevOpsCon Whitepaper 2018

Free: BRAND NEW DevOps Whitepaper 2018

Learn about Containers,Continuous Delivery, DevOps Culture, Cloud Platforms & Security with articles by experts like Michiel Rook, Christoph Engelbert, Scott Sanders and many more.

JAXenter: Konnten Microservices in euren Projekten halten, was sie versprechen? Oder gab es auch Probleme?

Man sollte es sich beim ersten Versuch mit Microservices nicht zu schwer zu machen.

JB, CH, FvS: Die Anforderungen an Skalierung und Performance konnten wir in der Praxis gut nutzen, aber die Flexibilität kommt natürlich auch zu einem Preis. Die Schwierigkeiten waren die, die man von verteilten Systemen erwartet: Wie geht man mit Dingen um, die synchronisiert stattfinden müssen? Wie verhalten wir uns in den diversen Fehlersituationen, die dadurch entstehen, dass einzelne Systemteile ausfallen können? Wie schaffen wir es, verständlichen Code zu schreiben, der mit Messages und asynchronen Aufrufen umgehen kann?

Zudem gibt es ja auch meist Randsysteme, die noch nicht nach denselben Grundsätzen entworfen wurden. Für diese Schwierigkeiten gibt es dann jeweils gute Lösungen und Best Practices, die erstmal erlernt werden müssen. Deshalb ist es wichtig, es sich beim ersten Versuch mit Microservices nicht zu schwer zu machen.

JAXenter: Als Methode für euer Tutorium auf der DevOps Conference wählt ihr das Mob Programming. Könnt ihr kurz darstellen, worum es sich dabei handelt?

JB, CH, FvS: Wir haben die Erfahrung gemacht, dass das Programmieren in der Gruppe großen Spaß machen kann, da man sich beteiligen und voneinander etwas lernen kann. Pair Programming gibt es ja schon länger – jeweils zwei Leute programmieren zusammen, wobei einer das Steuer übernimmt und der andere beratend zur Seite steht. Beim Mob Programming treibt man das noch weiter, indem mehrere Navigatoren dem Programmierenden über die Schulter schauen und gegebenenfalls bei aufkommenden Problemen am eigenen Laptop recherchieren.

Dabei sollte man regelmäßig rotieren, damit möglichst alle mal drankommen. Bei unserem Tutorium übernehmen wir drei abwechselnd die Rolle an der Tastatur und versuchen, das Publikum so gut wie möglich einzubinden. Im Projekt setzen wir das Mob Programming ein, um besonders kritische Architekturteile gemeinsamen zu refactorn oder um Klarheit über Anforderungen zu gewinnen.

JAXenter: Bei eurem Tutorium wird das Projekt von Anfang an mit Microservices realisiert. Viele Unternehmen können aber keinen frischen Start machen, sondern stehen vor der Herausforderung, erst mal den Wechsel vom Monolithen hin zu Microservices zu schaffen. Was ratet ihr in diesem Fall?

Überlegen Sie sich, wie Sie ihre Fachlichkeit sinnvoll in zwei Teile trennen können

JB, CH, FvS: Das stimmt! In dieser Situation ist man selten. Kein Rat ist universell, aber wir würden es mal so versuchen: Überlegen Sie sich zuerst, wieso Sie Microservices brauchen, damit Sie ihre Architekturvision gut vermitteln können. Überlegen Sie dann, wie Sie ihre Fachlichkeit sinnvoll in zwei Teile trennen können, denn eine technische Teilung führt zu stärker voneinander abhängigen Teams. (Darum wird aus unserer Sicht auch das Domain-Driven Design gerade wieder populärer.)

Daraus können Sie dann den vielversprechendsten ersten „Schnitt“ durch den Monolithen ableiten und loslegen. Versuchen Sie nicht von Anfang an, das System in mehr als zwei Microservices zu zerlegen, denn die technologischen Herausforderungen sind groß! Wenn sie mit einem einzigen „Schnitt“ anfangen, lernen Sie vieles, was sie dann beim dritten und vierten Service schon wissen. Je kleinschrittiger Sie dabei vorgehen und je häufiger Sie deployen, desto früher identifizieren Sie Schwierigkeiten und die passenden Lösungen. Zu guter Letzt wünschen wir viel Spaß!

JAXenter: Vielen Dank für das Gespräch!

JB, CH, FvS: Danke ebenfalls, sehr gerne.

bumüllerJohannes Bumüller hat an der Universität Hamburg Wirtschaftsinformatik studiert. Viele Jahre war er als Technischer Berater für ein italienisches Softwarehaus tätig. Dort entwickelte und integrierte er Softwaresysteme für Versicherungsunternehmen. Seit 2015 arbeitet Johannes als Softwareentwickler bei der WPS. Neben den Programmiersprachen C# und Java gilt sein besonderes Interesse den Themen Softwarearchitektur und agiler Softwareentwicklung.

 

heppnerClemens Heppner studierte Informatik in Hamburg und Cambridge/UK, um seiner zweiten Leidenschaft, der musikalischen Signalverarbeitung nachzugehen. Seit 2011 kümmert er sich wieder um sein Hauptthema, agile Softwareentwicklungsprozesse und DevOps.

 

stoschFlorian von Stosch ist Softwareentwickler und Berater bei WPS – Workplace Solutions. Vorher hat er an der Uni Hamburg Informatik im Master studiert. Er interessiert sich für IT-Infrastruktur, DevOps, Machine Learning und Softwarearchitektur.

Aufmacherbild: Four hands putting multicolor puzzle pieces together von Shutterstock / Urheberrecht: Dmitry Guzhanin

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: