Architektur

Gegen den Trend: Plädoyer für mehr ganzheitliche Architekturarbeit in der IT

Architekturarbeit in der IT ist seit vielen Jahren ein schwieriges und häufig missverstandenes Thema. Dazu kommt, dass die Effekte der Hyperspezialisierung und Technologieexplosion dazu führen, dass IT-Architekturen die eigentliche Problemstellung oft immer schlechter unterstützen. Man findet immer häufiger One-Size-fits-all-Lösungen oder rein hypegetriebene Architekturen. Trotzdem deutet nichts auf eine Umkehr dieses Negativtrends hin. Zeit für eine Bestandsaufnahme und einen Blick auf die daraus resultierenden Probleme für die Architekturarbeit.

Hearts ist Trumpf! Entwurf einer funktionalen Softwarearchitektur

Der Entwurf von nachhaltigen Softwarearchitekturen ist eine Herausforderung: Mit der Größe steigt in vielen klassisch objektorientierten Softwareprojekten die Komplexität überproportional an. Durch viel Disziplin und regelmäßige Refaktorisierungen lässt sich das Problem eine Weile in Schach halten, aber die wechselseitigen Abhängigkeiten und komplexen Abläufe von Zustandsveränderungen nehmen mit der Zeit trotzdem zu. Die funktionale Softwarearchitektur geht an die Strukturierung großer Systeme anders heran als objektorientierte Ansätze und vermeidet so viele Quellen von Komplexität und Wechselwirkungen im System.

Vom Monolith über modulare Architekturen zu Microservices mit DDD

In jedem Unternehmen gibt es große Softwaresysteme, die über viele Jahre weiterentwickelt wurden und deren Wartung Jahr für Jahr immer zäher und teurer wird. Vor dem Hintergrund neuer Architekturparadigmen wie Microservices sollen diese Systeme nun modern, skalierbar und flexibel werden. Dabei ist die Hoffnung, dass man sich der großen, schwerfälligen Monolithen entledigen kann, indem man sie in kleinere, besser zu beherrschende Microservices zerlegt.

DDD: Taktisches Design – Architektur innerhalb eines Bounded Context

In Teil 2 dieser Serie [1] haben uns Carola Lilienthal und Michael Plöd gezeigt, wie man eine Domäne in mehrere Bounded Contexts aufteilt. Dabei erhalten wir statt einem großen, schwer verständlichen und schwer wartbaren Domänenmodell nun mehrere, besser handhabbare Domänenmodelle. In diesem Teil der Serie schauen wir darauf, wie man das einzelne Domänenmodell konkret implementieren kann.

Abwärtskompatible APIs in der Praxis

Wenn ein API erst einmal live ist, ist es nicht mehr so einfach, es zu ändern. Doch jede noch so gut definierte Schnittstelle kommt irgendwann an den Punkt, an dem sie weiterentwickelt werden muss; sei es nur, weil sich die Anforderungen geändert haben. Hier kommt die Abwärtskompatibilität in Spiel. Arne Limburg erklärt in seiner Session auf der JAX 2019, welche Herausforderungen bei APIs zu bewältigen sind.

Microservices: Vorsicht vor suboptimalen Kommunikationsmustern

Monolithen sind tot – lang leben die Microservices. So oder so ähnlich könnte der aktuelle Wahlspruch in modernen Software-Architekturen lauten. Wir sprachen im Rahmen der W-JAX 2019 mit Jens Deponte, Architekt und Berater bei der adesso AG, über die Best Practices beim Umgang mit Microservices-Architekturen. Er erklärt uns zudem, welche Probleme der Um- bzw. Einstieg auf Microservices entstehen können.

Legacy-Applikationen als Microservices: Agile Entwicklungsmethoden im Legacy-Umfeld

Sollte man Legacy-Anwendungen neu schreiben, oder gibt es vielleicht eine Möglichkeit, sie ohne größere Probleme in modernere Architektur-Dimensionen vorzudringen? Mark Cresswell, Chief Executive Officer bei LzLabs, zeigt in diesem Artikel, wie man vom klassischen Mainframe zu Microservices kommt und erklärt, was mit „Legacy Container as a Service“ gemeint ist.