Interview mit Jochen Kraushaar

„Monolithen sind kein Teufelszeug“

„Monolithen sind kein Teufelszeug“

Interview mit Jochen Kraushaar

„Monolithen sind kein Teufelszeug“


Die ganze Welt nutzt Microservices! Die ganze Welt? Nein! Ein (gar nicht so kleiner) Teil der Industrie hat immer noch Monolithen im Einsatz. Jochen Kraushaar (BridgingIT GmbH) verrät im Interview, wie man es schafft, auch monolithische Software-Architekturen in den Griff zu bekommen.

JAXenter: Hallo Jochen! Du hast auf der JAX eine Session namens Den Monolithen zähmen gehalten. Dabei ging es mal nicht um Microservices, sondern darum, eine monolithische Architektur in den Griff zu bekommen. Kannst du da einmal ein Beispiel beschreiben, wie man ein typisches Problem von Monolithen entschärfen kann, ohne gleich ganz auf Microservices umzuschwenken?

Meine Kernbotschaft lautet: Monolithen sind nicht böse!

Jochen Kraushaar: Einer der größten Designfehler von Java ist meiner Meinung nach der Umgang mit Packages und der Sichtbarkeit von Klassen. Eine strenge Modularisierung mit dezidierten Sichtbarkeiten ist so nur schwer umzusetzen, was früher oder später immer zu Spaghetticode führt. Glücklicherweise lässt sich das Problem aber mit statischer Codeanalyse in den Griff bekommen. Es existieren diverse Tools, die das Leben eines Entwicklers im Umfeld eines Monolithen einfacher machen.

Meine Kernbotschaft lautet hier: Monolithen sind nicht böse. Viele der Probleme im Umfeld eines Monolithen lassen sich durch geeignete technologische und organisatorische Maßnahmen abfangen.

JAXenter: Welchen Ansatz, den Monolithen zu zähmen, findest du aus architektonischer Sicht interessant?

Jochen Kraushaar: Ich habe mich vor einigen Jahren sehr ausgiebig mit OSGi beschäftigt. Und auch wenn ich heute aufgrund der steilen Lernkurve nur wenigen Projekten zum Einsatz dieser Technologie raten würde, habe ich dabei doch gelernt, dass Monolithen kein Teufelszeug sind. Vor kurzem bin ich dann auf die Idee des Moduliths gestoßen: Ein modularer Monolith, der durch seine strenge Modularisierung wartbar bleibt. Ich verspreche mir viel von diesem Ansatz, denn ich glaube, dass wartbare Monolithen durchaus eine Existenzberechtigung haben.

JAXenter: Nun ist die Idee des Application Server ja etwas aus der Mode geraten. Haben sie in Zeiten der Cloud und der Microservices ausgedient?

Jochen Kraushaar: Nein, überhaupt nicht! Microservices sind wie der Application Server nur ein weiteres Architekturmuster mit eigenen Vor- und Nachteilen. Leider aber wird Software-Architektur viel zu häufig durch die aktuellen Trends bestimmt, statt auf die konkreten Anforderungen der Kunden einzugehen. Im Handwerk kommt doch auch niemand auf die Idee, eine Schraube mit einem Hammer in die Wand zu schlagen, nur weil dieser gerade in aller Munde ist.

Serverless – der Heilige Gral der Software-Architektur?

Serverless ist ein weiteres Architekturmuster im Werkzeugkoffer des Architekten.

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?

Jochen Kraushaar: Meinem Verständnis nach kommt Software-Architektur nicht erst während der Entwicklung zum Tragen. Schon die Entscheidung, ob die Software überhaupt Serverless betrieben werden soll, ist Teil der Software-Architektur. Darüber hinaus gibt es auch in einer Serverless-Architektur Themen bei der Anbindung anderer Dienste, Schnittstellen und des Frontends. Serverless wiederum ist nicht der Heilige Gral der Software-Architektur. Es ist ein weiteres Architekturmuster im Werkzeugkoffer des Architekten.

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?

Jochen Kraushaar: Zunächst würde ich gerne zwischen einem Konzept – der Container-basierten Infrastruktur – und einer konkreten Lösung – Kubernetes – unterscheiden. Es ist gut möglich, dass wir in zehn oder zwanzig Jahren kein Kubernetes mehr sehen werden. Für die Idee der Container-basierten Infrastruktur im Eigenbetrieb wird es aber auch in zwanzig Jahren noch sinnvolle Anwendungsfälle geben. Hier kann ich mir vorstellen, dass Produktanbieter zukünftig verstärkt auf Container als Installationsartefakt setzen werden. Serverless ist genau so wenig ein disruptives Architekturmuster wie es Microservices sind.

Software-Architektur 2019

Ich sehe den Software-Architekten eher im Sinne eines T-Shaped-Entwicklers.

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?

Jochen Kraushaar: Die Blockchain ist ein faszinierendes Konstrukt und vor allem deswegen interessant, weil sie einen komplett neuen Lösungsansatz darstellt. Tatsächlich lässt sich heute aber noch gar nicht abschätzen, auf welche Probleme sie überhaupt angewendet werden kann. Viele Projekte, von denen ich erfahren habe, laufen dann auch nach dem Schema: Wir haben hier eine Lösung, lasst uns ein Problem finden!

JAXenter: Wo siehst du ganz persönlich deine Hauptaufgabe als Software-Architekt?

Jochen Kraushaar: In agilen Teams scheint der Trend zum Allrounder-Entwickler zu gehen. Das sehe ich kritisch. In einer schnelllebigen und technologisch so heterogenen Branche wie der unsrigen ist es unmöglich, jedes Thema bis zur Perfektion zu beherrschen. Ich sehe den Software-Architekten eher im Sinne eines T-Shaped-Entwicklers. Er behält die Architektur im Blick und unterstützt seine Kollegen durch architektonische Vorgaben, damit sie sich auf die Umsetzung der fachlichen Anforderungen konzentrieren können.

JAXenter: Vielen Dank für dieses Interview!

Jochen Kraushaar arbeitet für die BridgingIT GmbH als Softwareentwickler und Consultant. Seine Schwerpunkte liegen auf Softwarearchitektur, Qualitätssicherung und Build-Prozessen. In seiner Freizeit beschäftigt er sich mit aktuellen Trends im Java-Umfeld und künstlicher Intelligenz.
Hartmut Schlosser

Hartmut Schlosser, Redakteur entwickler.de