Architektur

Kill your Monolith: Von der Entstehung eines Monolithen und dem Versuch, ihn zu zerlegen

Bei der Entwicklung von Softwaresystemen und -architekturen gibt es verschiedene Ansätze und Paradigmen, die jeweils kontextabhängige Vor- und Nachteile haben. Zu gerne folgen wir bei der Beurteilung von Architekturen entweder unseren persönlichen Vorlieben oder wir verurteilen Lösungen, die nicht mehr State of the Art oder zu komplex sind, um sie mit überschaubarem Aufwand zu überblicken. Eine objektive Beurteilung einer gewachsenen Architektur kann aber nur auf einer strukturierten und sachlichen Analyse basieren.

Infrastrukturen und Organisation

Im ersten Teil dieser Serie haben wir ein Projekt vorgestellt, das ein Antragsverfahren für Bürger beinhaltet, und die Gründe für die Architekturentscheidungen für Microservices und Workflow-Engine beschrieben. Diesmal stellen wir die im Rahmen des Projekts verwendete bzw. entstandene Infrastruktur vor und beleuchten organisatorische Aspekte.

REST-APIs, Themenkomplex Security und Digitalisierung – Unsere Top-Themen der Woche

Letzte Woche haben wir unseren Themenkomplex „Security“ mit jeder Menge Experteninterviews gestartet, die Einblicke in die gesamte Bandbreite des Fachgebietes IT-Sicherheit geben. Ebenso spannende Erkenntnisse lieferten uns einerseits die Session zu REST-APIs und andererseits die Einführung in Kryptographie. Aber auch in eigener Sache hat sich vergangene Woche etwas getan: Das JavaScript Magazine feiert sein Debut – kostenlos und digital.

Architekturen für die Digitalisierung: Workflowautomation und Microservices

Fällt das Wort Digitalisierung, denken viele an Projekte im Umfeld des Internet of Things oder an spektakuläre Blockchains. Immer häufiger wird Digitalisierung in einem Atemzug mit künstlicher Intelligenz genannt, oder es werden neue Megaprojekte wie eine europäische Cloud ausgerufen. Dass es bei Digitalisierung jedoch zu großen Teilen darum geht, Prozesse digital zu unterstützen, die aktuell entweder mit manuellem Aufwand wie beispielsweise persönlichem Erscheinen verbunden sind oder lediglich schriftlich erledigt werden können, wird stark vernachlässigt. Nicht so in diesem Artikel.

DDD, DevOps, Software-Architektur: „Verbündet Euch mit Entwicklern aus anderen Disziplinen und Fachbereichen“

Wer hat sie nicht schon gehört: Buzzwords wie Domain-driven Design und DevOps beherrschen jeden Smalltalk zum Thema Unternehmens-IT und Software-Architektur. Doch wie geht man über vom bloßen Parolendreschen zum wertschöpfenden Einsatz in produktiven Umgebungen? Bernd Rederlechner, leitender Architekten bei der T-Systems Digital Solutions und Speaker auf der JAX 2020, gibt Einblicke aus der Praxis.

Was Software-Architekten von der Soziologie lernen können

Software wird von Menschen gemacht – Gruppen von Menschen meist, die miteinander kommunizieren. Nun ist die Wissenschaft, die sich mit Gruppen von Menschen beschäftigt, die Soziologie. Doch wie kann die junge Disziplin der Software-Entwicklung von den gesammelten Erkenntnissen der Soziologie profitieren? Die Software-Architekten Dr. Christian Mennerich und Frederick Meseck (synyx GmbH & Co KG) wagen auf der JAX 2020 den Blick über den Tellerrand. In ihrer Session Softwareentwicklung – systemisch-agil gedacht bringen sie die soziologische Systemtheorie nach Luhmann mit Software-Entwicklungsthemen wie Agilität, DevOps und Domain-driven Design zusammen. Wir haben nachgehakt!

Gegen den Trend: Ein 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.

Softwarearchitektur: Worauf es ankommt

Die Architektur definiert die Struktur eines Softwaresystems und ist zentral für den Erfolg eines Projekts. Deswegen ist Softwarearchitektur so wichtig. Aber in Wirklichkeit ist Softwarearchitektur noch viel mehr, und eine erfolgreiche Softwarearchitektur erfordert viele, teilweise überraschende Maßnahmen.

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.