Architektur

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.

Staging in Kubernetes

Wie viele wissen, werden in der Entwicklung oft mehrere Stages verwendet, etwa dev, test und prod. Wenn man nun die Transformation in die Cloud angeht, stellt sich oft die Frage, wie viele Kubernetes-Cluster installiert werden sollen. Soll für jede Stage ein eigener Kubernetes-Cluster installiert werden, oder kann man mehrere Stages zusammenführen und sich somit Installations- und Konfigurationsaufwand sparen? Im Folgenden wird aufgezeigt, wie innerhalb eines Kubernetes-Clusters voneinander isolierte Stages erstellt werden können. Im Anschluss werden die Vor- und Nachteile mehrere Stages innerhalb eines Kubernetes-Clusters diskutiert.

Java Magazin 11.19 erschienen: Evolutionäre Architektur – Bewegung im Architektur-Genpol!

Wir schreiben das Jahr 1997. Microsofts immens wachsende Dominanz wird zu einer Gefahr für die IT-Branche. In seiner Überheblichkeit leistet sich das Unternehmen dann einen Fauxpas: Durch das Beimischen illegaler Substanzen (aka Windows-spezifischer UI-Klassen) verstößt Microsofts „Java SDK” gegen das Mantra der jungen Java-Community („Write once, run everywhere”). In einem Gerichtsverfahren wird entschieden: Finger weg von Java!

Strategic Domain-driven Design: So erstellt man wartbare Architekturen mit Angular und Monorepos

Mit Monorepos können große Anwendungen in kleine, übersichtliche Teile zerlegt werden. Dabei handelt es sich jedoch nur um eine Seite der Medaille: Zuvor gilt es nämlich festzulegen, anhand welcher Kriterien die Zerlegung erfolgen soll und wie die einzelnen Bibliotheken miteinander kommunizieren dürfen. Welche das sind, expliziert Manfred Steyer in seiner Session auf der JAX 2019.