Interview mit Thorsten Maier

„Cloud und Microservices sind nicht die Lösung für alle Fragen der Softwareentwicklung“

Hartmut Schlosser

Thorsten Maier

Microservices liegen im Trend – doch vielleicht etwas zu sehr im Trend? Verstellt uns der Hype um das Thema womöglich sogar den Blick auf andere Lösungsoptionen? Dass Microservices kein Allheilmittel sind, und welche Themen Software-Architekten stattdessen etwas ernster nehmen sollten, haben wir auf der JAX mit Thorsten Maier (Orientation in Objects) besprochen.

Hypethema Microservices

JAXenter: Du hattest auf der JAX eine Session namens Softwaremodularisierung – aber wie? Empfehlungen mit und gegen den Trend.“ Dabei hast du dafür plädiert, Entscheidungen über Software-Architektur im Zweifel auch gegen den aktuellen Markthype zu treffen. Warum sollte man also nicht immer gleich alle Probleme mit dem Hypethema „Microservices“ lösen wollen?

Auch Microservices sind nicht die Lösung für alle Probleme.

Thorsten Maier: Microservices ist ein Architketurstil wie viele andere. Jeder Architekturstil hat Vor- aber auch Nachteile, die es zu bedenken gibt. Die Auswahl eines Stils für eine Anwendung sollte anhand der Anforderungen für diese Anwendung erfolgen.

Auch Microservices sind nicht die Lösung für alle Probleme. In vielen aktuellen Betrachtungen kommen mir vor allem die zahlreichen technischen Implikationen zu kurz, die dieser Stil mit sich bringt. Keine der Herausforderungen, die Microservices mit sich bringt, ist unlösbar. Teilweise macht es dem technikbegeisterten Entwickler sogar viel Spaß, sich mit den Lösungen zu beschäftigen. Allerdings sollten wir dabei niemals aus den Augen verlieren, warum wir einen solchen Stil gewählt haben. Die Vorteile sollten die Nachteile zu jedem Zeitpunkt überwiegen. Ein „Das macht man halt heute so!“ lasse ich an dieser Stelle nicht gelten.

JAXenter: Dennoch ermöglicht die Cloud ja ganz neue Architekturstile. Hat der gute alte Java Application Server in Zeiten der Cloud und der Microservices nicht ausgedient?

Thorsten Maier: Der Trend geht eindeutig zu kleineren Einheiten und weg von großen Application Servern. Cloud und Microservices sind bei aller Euphorie allerdings nicht die Lösung für alle Fragen der Softwareentwicklung und daher bin ich der Meinung, dass auch Application Server nach wie vor ihre Daseinsberechtigung haben, wenn auch mit abnehmender Tendenz.

API Confernce 2020
Milecia McGregor

The 3 Axes of Scaling APIs

Milecia McGregor (Flipped Coding)

 

Disziplin Software-Architektur

JAXenter: Was ist dir momentan in Sachen Software-Architektur wichtig?

Software-Architektur sollte einfach, verständlich und bei allen Team-Mitgliedern in den Grundzügen bekannt sein.

Thorsten Maier: Architektur befasst sich mit den langfristigen Entscheidungen in einem Entwicklungsprojekt, und daher ist auch meine Antwort auf die Frage nach meinem „momentanen“ persönlichen Steckenpferd zeitlos.

Software-Architektur sollte einfach, verständlich und bei allen Team-Mitgliedern mindestens in den Grundzügen bekannt sein. Eine Architektur sollte keinen Selbstzweck erfüllen. Stattdessen sollte sie als Kommunikationsmedium für das Team zu einer langfristig wartbaren Software führen. Bewährtes eignet sich hierfür oftmals besser als der neuste technologische Hype. Wir sollten niemals vergessen, dass es in aller Regel darum geht, dem Kunden mit vertretbarem Aufwand langfristig das beste Ergebnis zu liefern. In der Einfachheit steckt oftmals der Schlüssel zum Erfolg.

Mir liegt es darum am Herzen, möglichst einfache und verständliche Lösungen zu finden, die allen Anforderungen gerecht werden und die eine hohe Akzeptanz bei allen Beteiligten genießt. Dazu gehört unter anderem auch die Kommunikation der Architektur in einer geeigneten Dokumentation.

JAXenter: Wo siehst du die Hauptaufgabe eines Software-Architekten? Müssen heutzutage nicht alle Entwickler auch ein Stück weit Architekten sein?

Thorsten Maier: Für mich ist das hauptsächlich eine Frage der Fokussierung auf spezielle Aufgaben innerhalb eines Entwicklungsteams.  Gerade in der Ausbildung von Berufsstartern stelle ich immer wieder fest, dass Entwickler heutzutage eine Vielzahl von Konzepten, Paradigmen, Sprachen aber auch Frameworks beherrschen müssen, um im Berufsalltag bestehen zu können. Gleichzeitig ist es wohl unbestreitbar, dass Menschen unterschiedliche Stärken besitzen. Wir sollten daher versuchen, die einzelnen Stärken der Mitglieder eines Entwicklungsteams zu nutzen, um am Ende das beste Ergebnis zu bekommen.

Wenn jeder alles können und machen muss, kann dies aus meiner Sicht nicht zum optimalen Ergebnis führen. Daher bin nach wie vor – gegen den Trend – ein Freund von Spezialisierung auch innerhalb eines Teams. Die Erstellung, die kontinuierliche Weiterentwicklung und die Kontrolle der Einhaltung der Architekturvorgaben sind spezielle Aufgaben, die spezielles Wissen und möglichst auch einige Vorerfahrung erfordern. Daher sollten meiner Meinung nach einige wenige einen besonderen Fokus auf das Thema Architektur legen.

Architektur-Trends

JAXenter: Software-Architektur beschäftigt sich traditionell stark mit Backend-Problematiken: Provisionierung, Skalierbarkeit, Resilienz, etc. Im Umfeld der sogenannten Serverless-Bewegung spricht man nun aber immer mehr von Managed Backends und Backend as a Service. Wird das Backend als solches für Architekten also immer uninteressanter?

Software-Architektur hat die Aufgabe, die nichtfunktionalen Anforderungen an eine Anwendung zu ermöglichen.

Thorsten Maier: Software-Architektur hat die Aufgabe, die nichtfunktionalen Anforderungen an eine Anwendung zu ermöglichen. Falls Teile dieser Anforderungen mit Backend as a Service einfacher umgesetzt werden können, ist dies eine positive neue Entwicklung. Enterprise-Anwendungen sind allerdings zu vielfältig, als dass man sie alle mit Standard-Baukastenmodulen umsetzen könnte. Auch ist die Auswahl der Managed Backends und deren Zusammenspiel an sich bereits eine interessante und keinesfalls triviale Aufgabe. Die Architekturaufgaben im Backend verschieben sich also allerhöchstens, werden allerdings nicht weniger interessant.

Gleichzeitig werden die Frondends immer komplexer und erfordern spätestens seit einigen Jahren eigene Architekturgedanken. Den Software-Architekten dürfte also auf absehbare Zeit nicht langweilig werden.

JAXenter: Simon Wardley hat die These aufgestellt, dass Container und Kubernetes nur eine Randerscheinung in der Geschichte der Softwareentwicklung darstellen und bald schon obsolet werden könnten, da Serverless – wie einst Software – die Welt verschlingt. Wie stehst du dazu?

Thorsten Maier: Eine moderne Anwendung setzt bereits heute auf zahlreichen Abstraktionsebenen auf. Diese Ebenen wurden im Laufe der Geschichte der Softwareentwicklung stets zahlreicher. Serverless hebt die Entwicklung einer Anwendung auf eine weitere technische Abstraktionsebene, da wir uns mit diesem Ansatz keine Gedanken mehr über die zur Verfügung stehende Rechenkapazität und somit die Skalierung unserer Anwendung machen müssen.

Serverless ist daher gerade in Hochskalierungsszenarien ein vielversprechender neuer Ansatz. Aber auch hier gilt: Serverless ist eine Alternative von vielen für den Betrieb einer Anwendung, und
zumindest vorerst gibt es für viele Anwendungsfälle mindestens ebenso gut passende Alternativen.

JAXenter: Und dann die Blockchain – von der immer wieder zu hören ist, dass sie das gesamte Internet revolutionieren könnte. Siehst du das kommen? Oder bleibt die Blockchain eine mögliche Lösung für einen bestimmten Anwendungsfall?

Thorsten Maier: Die Blockchain ermöglicht eine dezentrale und fälschungssichere Dokumentation von Transaktionen bei gleichzeitigem Verzicht auf eine zentrale Instanz, der alle Beteiligten vertrauen müssen. Diese Technologie hat das Potential, unser Verständnis von IT- und Wirtschaftssystemen grundlegend auf den Kopf zu stellen. Damit werden zumindest potentiell alle zentralen Institutionen wie zum Beispiel Banken, die heute mehr oder weniger unser Vertrauen genießen, in Frage gestellt. Das Internet als Ganzes wird die Blockchain aus meiner Sicht nicht revolutionieren aber zumindest evolutionieren. Es ergeben sich aus dieser Technik sehr viele sehr spannende Anwendungsfälle, von denen wir in Zukunft noch häufig hören werden.

JAXenter: Vielen Dank für dieses Interview!

Thorsten Maier arbeitet bei der OIO – Orientation in Objects GmbH in Mannheim. Er erschließt kontinuierlich bessere Wege, Software zu entwickeln, indem er selbst als leidenschaftlicher Java-Software-Entwickler unterwegs ist und anderen als Berater, Trainer, Autor und Speaker dabei hilft. Trotz seiner Begeisterung für Neues sind ihm Menschen stets wichtiger als Technologien. Sein Hauptaugenmerk liegt daher auf der Frage, wie sich modernste Technologien in gewachsene Umgebungen einbinden lassen und wann man besser auf Bestehendes zurückgreifen sollte.
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. #java #eclipse #devops #machinelearning #seo. Zum Lächeln bringen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: