Lesezeit: 2 Minuten

 

Teil 5 - Einfluss von Cloud-native auf die Architekturarbeit


Wie wir gesehen haben, bieten Cloud-native Architekturen neue Möglichkeiten Dinge zu tun, bzw. anders zu tun, als dies bislang möglich war und unterliegen einer eigenen Philosophie bezüglich des Designs und bei der Umsetzung passender Software-Architekturen. Dafür betrachten wir zum einen die technischen Aspekte, müssen uns andererseits aber auch um fachliche und organisatorische Facetten kümmern, um die neuen Möglichkeiten auch wirklich gewinnbringend nutzen zu können.

Verteilte Architekturen auf dem Vormarsch

Dank des zwischenzeitlich erreichten Reifegrads in Bezug auf die Technologien, haben Softwarearchitekten einen wesentlich größeren Werkzeugkoffer zur Hand, um die Qualität eines Systems beeinflussen zu können. Aufgrund der Betriebsaufwände früher noch undenkbar, werden in diesem Umfeld zunehmend verteilte Systeme entworfen, um einzelne Systembestandteile hinsichtlich besonderer nicht-funktionaler Anforderungen optimieren zu können.

Neben der klassischen, monolithisch geprägten Architektur entstehen mehr und mehr verteilte Architekturen (Microservice Architecture) bzw. ereignisbasierte Architekturen (Event Driven Architecture).

Man wählt diese Architekturen, um sowohl neue Systeme zu implementieren, als auch um bestehende Legacy-Systeme schrittweise zu modernisieren. Letzteres erreicht man z.B. durch den Einsatz des Strangler-Fig Pattern, um einzelne Systembestandteile zu separieren und neu entwickelte Cloud-native basierte Systeme zu ersetzen.
Dabei hat sich die Vorgehensweise etabliert, bei der Modernisierung im ersten Schritt Cloud-tauglich (Cloud-ready) und im zweiten Schritt Cloud-native zu werden.

Keine Scheu vor einem Re-Design

Die Architekturarbeit birgt allerdings auch diverse Tücken, wie der zunehmende Einfluss von Lean Product Management als Vorgehensmodell zeigt.

So macht es keinen Sinn, sich in frühen Phasen des Systemdesigns (Walking Skeleton, Prototyping) zu intensiv mit der Performance und der Skalierung zu beschäftigen, wenn damit die funktionale Reifung des Produkts verlangsamt wird.

Nach dem Initial Product Release bzw. in der MVP Phase ergeben sich in der Regel aber viele neue Erkenntnisse, die häufig ein Überdenken der Architektur (und ggf. auch Technologieänderungen) unumgänglich machen.

Die Rolle des Softwarearchitekten

Früher waren Softwarearchitekten ggf. noch vorrangig mit der Modularisierung und Strukturierung monolithischer Codebasen beschäftigt (u.a. durch Einsatz des UML-Standards). In einer zunehmend agilen Umgebung und damit einhergehend mit der sich stetig verändernden fachlichen Realität, müssen sich Softwarearchitekten weiterentwickeln und sich neuer Methoden bedienen. Oft gilt es, den idealen Service-Schnitt zu finden, den der auf Cloud-Technologien ausgerichtete Softwarearchitekt mit Hilfe von folgenden Kriterien und Methoden abwägen sollte:

  • Domain-Driven-Design und Event-Storming Ziel des DDD ist der fachliche Schnitt des zu entwickelnden Softwaresystems. Damit ist in der Regel auch ein IT/Business-Alignment verbunden, dass man auch als Inverse Conway Manöver bezeichnet. Die Methode des Event-Storming dient dazu die Gemeinsame Sprache der Fachdomäne zu erschließen und wird auch dafür genutzt Subdomänen und Bounded Contexts zu identifizieren.
  • Organisatorischer Schnitt
  • Der oder die Serviceschnitte müssen zu den Teamgrößen passen. Hier lohnt es sich, sich mit Team-Topologien zu beschäftigen, um die Kognitive Last der Teams nicht zu überschreiten und sich zu überlegen, wie diese Teams dann zusammenarbeiten sollen.
  • Sonstige Rahmenbedingungen
  • Limitierungen durch die Technologiewahl, die Auswahl von 3rd Party Vendoren oder das Outsourcing mit Hilfe von APIs, usw. sind weitere Aspekte, die es abzuwägen gilt.

Die richtige API-Verwaltung

Neben dem optimalen Service-Schnitt spielt auch die Wahl der passenden Kommunikationsstile (synchron vs. asynchron) und der eingesetzten Protokolle eine wichtige Rolle.

Um Kommunikationsbeziehungen stabil zu halten, ist es sinnvoll, die entsprechenden APIs und deren Lebenszyklen bewusst zu verwalten (Provider und Consumer Prozess) und Änderungen der APIs angemessen zu kommunizieren.

Die Steuerung des API-Lebenszyklus, das Exponieren der Services über Gateways, aber auch das Provisionieren von API Keys sollten ohne manuelle Aufwände innerhalb von CI/CD Toolchains erfolgen. Für komplexe Service-Landschaften gibt es den Ansatz des Service Mesh (wie z.B. Consul, Linkerd oder Istio), mit denen sich die Verwaltung deutlich vereinfachen und vor allem gut dokumentieren lässt.

Der richtige organisatorische und prozessuale Umgang mit APIs ist das A und O beim Aufbau von verteilten Systemen und ein Garant für ein schnelles Wachstum des sinnvoll genutzten Portfolios an Services.

Das sechste und letzte Kapitel "Die Architektenrolle in DevOps-Teams/Organisationen" gibt es im nächsten Blogbeitrag am 5. Januar 2023 zu lesen.

Blogautor

Peter Diefenthäler
Senior Softwarearchitekt ARS Computer und Consulting GmbH
Ihr Erfolg ist unser Ziel

Stehen Sie vor komplexen IT-Projekten? Mit unserer Expertise bieten wir Ihnen maßgeschneiderte Lösungen. Erfahren Sie mehr.

Werde Teil unseres Teams

Wir suchen ständig nach neuen Talenten. Für dich haben wir genau die richtige Stelle. Schau dir unsere offenen Positionen an.

Noch Fragen? Wir helfen Ihnen gerne!

Blog 22.12.22

Teil 5 - Einfluss von Cloud-native auf die Architekturarbeit

Wir beleuchten technische Aspekte von cloud-native Architekturen, die Vorteile verteilter Systeme und wie wichtig API-Management-System ist.

Blog 10.11.22

Architekturarbeit im Zeitalter Cloud-nativer Architekturen 2

Aufgaben von Softwarearchitekten im Cloud-native-Umfeld, benötigte Skills und ihr Arbeitsalltag zwischen Kundenanforderungen, Zieldefinition und Deadlines.

Blog 10.11.22

Architekturarbeit im Zeitalter Cloud-nativer Architekturen 2

Aufgaben von Softwarearchitekten im Cloud-native-Umfeld, benötigte Skills und ihr Arbeitsalltag zwischen Kundenanforderungen, Zieldefinition und Deadlines.

Blog 27.10.22

Architekturarbeit im Zeitalter Cloud-nativer Architekturen 1

Die beschleunigte Digitalisierung und ihr Einfluss auf Softwarearchitekturen und IT-Teams beschreibt der Autor. Sind Cloud-native-Strategien sinnvoll?

Blog 08.12.22

Teil 4: Eigenschaften einer Cloud-native Architektur

Beitrag zu Cloud-native Architekturen, ihre Möglichkeiten und Zielsetzungen sowie die Philosophie und Arbeitsweise, die daraus folgt.

Blog 27.10.22

Architekturarbeit im Zeitalter Cloud-nativer Architekturen 1

Die beschleunigte Digitalisierung und ihr Einfluss auf Softwarearchitekturen und IT-Teams beschreibt der Autor. Sind Cloud-native-Strategien sinnvoll?

Blog 08.12.22

Teil 4: Eigenschaften einer Cloud-native Architektur

Beitrag zu Cloud-native Architekturen, ihre Möglichkeiten und Zielsetzungen sowie die Philosophie und Arbeitsweise, die daraus folgt.

Blog 24.11.22

Architekturarbeit im Zeitalter Cloud-nativer Architekturen 3

Gedanken zu Möglichkeiten von Cloud-native-Architekturen und Kriterien zur Auswahl der Technologie: Standard nehmen oder sich dem Cloud-Anbieter ergeben?

Blog 24.11.22

Architekturarbeit im Zeitalter Cloud-nativer Architekturen 3

Gedanken zu Möglichkeiten von Cloud-native-Architekturen und Kriterien zur Auswahl der Technologie: Standard nehmen oder sich dem Cloud-Anbieter ergeben?

Blog 15.04.23

Die vielfältigen Bestandteile API-basierter Produkte

API ist technisch betrachtet ein System mit Schnittstellen, z.B. REST. Was gehört zu einem guten API-Design? Wie wird ein API-Produkt erfolgreich?

Blog 15.04.23

Die vielfältigen Bestandteile API-basierter Produkte

API ist technisch betrachtet ein System mit Schnittstellen, z.B. REST. Was gehört zu einem guten API-Design? Wie wird ein API-Produkt erfolgreich?

Blog 05.01.23

Teil 6 - Die Architektenrolle in DevOps-Teams/Organisationen

Erfahren Sie in diesem Blogbeitrag mehr über die Rolle der Architekten in DevOps-Teams und wie sich die Architekturarbeit im cloud-native Umfeld verändert hat.

Blog 05.01.23

Teil 6 - Die Architektenrolle in DevOps-Teams/Organisationen

Erfahren Sie in diesem Blogbeitrag mehr über die Rolle der Architekten in DevOps-Teams und wie sich die Architekturarbeit im cloud-native Umfeld verändert hat.

Blog 02.02.23

Computer Aided Cloud Transformation

Was bedeutet Computer aided cloud transformation? Warum ist Enterprise Architecture Management wichtig? Wie gelingt das Asset- und Ressourcenmanagement?

Blog 16.03.23

Bedeutung von APIs als Interaktionsmodell

APIs sind mehr als Schnittstellen, sie sind Teil der Interaktion zwischen Geschäftspartnern. Eine API First Strategie soll vor allem Wertschöpfung schaffen

Blog 18.04.24

Cloud-Native Netzwerksouveränität mit Cilium und Kubernetes

Erfahren Sie alles über die revolutionäre Cloud-Native Netzwerksouveränität mit Cilium und Kubernetes. Optimieren Sie Ihre Netzwerkinfrastruktur für mehr Sicherheit und Leistung.

Blog 02.02.23

Computer Aided Cloud Transformation

Was bedeutet Computer aided cloud transformation? Warum ist Enterprise Architecture Management wichtig? Wie gelingt das Asset- und Ressourcenmanagement?

Blog 16.03.23

Bedeutung von APIs als Interaktionsmodell

APIs sind mehr als Schnittstellen, sie sind Teil der Interaktion zwischen Geschäftspartnern. Eine API First Strategie soll vor allem Wertschöpfung schaffen

Blog 18.04.24

Cloud-Native Netzwerksouveränität mit Cilium und Kubernetes

Erfahren Sie alles über die revolutionäre Cloud-Native Netzwerksouveränität mit Cilium und Kubernetes. Optimieren Sie Ihre Netzwerkinfrastruktur für mehr Sicherheit und Leistung.

Blog 16.02.23

Keine Angst vor Komplexität

Wie kann man die Komplexität der Organisation u. Technologie, die neue Plattformen, Architekturen und neue Entwicklerkultur mit sich bringen, beherrschen?