Vom Monolith zur vernetzten Cloud mit Event Mesh

Ereignisgesteuerte Architektur - vom Monolith zur Cloud-Lösung

Der Übergang vom Monolith zur vernetzten Cloud-Lösung erfordert eine Anpassung der Architektur weg von alten Spaghetti-Schnittstellen, die Systeme 1:1 miteinander verbinden, zu flexiblen Plug & Play Integrationen, die eine Echtzeit Kommunikation erlauben und flexibel erweitert werden können.

Die Transformation von einem monolithischen ERP-System zu einem Verbund von Cloud-Lösungen ist in vollem Gange. Anstatt einem ERP-System im Keller haben Sie in der Zukunft vielfältige, hybride Lösungen, die Sie miteinander integrieren müssen. Die Anzahl der Schnittstellen steigt und damit auch die Komplexität. Der Übergang von ECC auf SAP S/4HANA und Cloud-Lösungen ist zudem kein einfacher Prozess. Oftmals ist ein Parallelbetrieb erforderlich, bei dem ECC, SAP S/4HANA und diverse Cloud-Lösungen parallel betrieben werden, da nicht alle Unternehmenseinheiten zeitgleich umgestellt werden. Dies erfordert ein flexibles An- und Abschalten von Schnittstellen pro Organisationseinheiten und Lösungen auf Sender- und Empfängerseite. Eventuell müssen die Schnittstellen zudem parallel betrieben werden und im Projekt können zusätzliche Empfänger für Nachrichten dazu kommen. Eng gekoppelte Schnittstellen wie z. B. IDocs, die Änderungen auf beiden Seiten erfordern, verursachen einen hohen Umstellungsaufwand. Sowohl bei der Softwarearchitektur als auch bei dem Anwendungsdesign kommt hier eine Schlüsselrolle zur Lösung hinzu.
Mit einer ereignisgesteuerten Architektur (Event-Driven Architecture - EDA) wie es das SAP Event Mesh anbietet, können Sie die Anforderungen der Zukunft auf eine Echtzeit Kommunikation umsetzen. Durch die Entkopplung der Kommunikation, die asynchron zwischen Publisher und Subscriber durchgeführt wird, entsteht eine lose Kopplung die mehr Agilität verspricht.

Was ist eine ereignisgesteuerte Architektur (EDA)?

Eine ereignisgesteuerte Architektur (Event-Driven Architecture, EDA) ist ein Integrationsmodell zur Veröffentlichung, Erfassung, Verarbeitung und Reaktion auf Ereignisse in verteilten Systemen in Echtzeit. Wenn in einer Anwendung ein Ereignis eintritt, wird automatisch eine Nachricht an alle anderen Anwendungen gesendet, die davon wissen müssen, sodass diese darauf reagieren können.
Ereignisbasierte Architekturen sind entkoppelt, das heißt die Anwendungen müssen sich nicht gegenseitig kennen, um Informationen auszutauschen und Aufgaben zu erledigen. Ereignisinformationen oder Nachrichten können frei und automatisch zwischen Anwendungen fließen. Daher ist das EDA-Modell viel schneller als das traditionelle Request-/Response-Modell, bei dem eine Anwendung die spezifischen Informationen, die sie benötigt, von einer anderen anfordern und die Antwort abwarten muss, bevor sie mit der nächsten Aufgabe fortfahren kann. Auch aufgrund der entkoppelten Natur einer EDA gilt sie weithin als Best Practice für die Kommunikation von Microservices.

Wie unterscheidet sich EDA von traditionellen Architekturansätzen wie monolithischen oder serviceorientierten Architekturen (SOA)?

Ereignisgesteuerte Architektur (EDA) unterscheidet sich in mehreren Schlüsselaspekten von traditionellen Architekturansätzen wie monolithischen oder serviceorientierten Architekturen (SOA). Hier sind einige der Hauptunterschiede:

Monolithische Architekturen:

• Zentralisiert: Monolithische Systeme sind zentralisierte Einheiten, in denen alle Funktionen in einer einzigen Anwendung integriert sind.

• Kopplung: Sie haben eine starke Kopplung, was bedeutet, dass die Komponenten eng miteinander verbunden sind und Änderungen an einer Stelle weitreichende Auswirkungen haben können.

• Skalierung: Skalierung erfolgt durch Kopieren des gesamten Monolithen auf mehrere Server, was zu Ressourcenineffizienz führen kann.


Serviceorientierte Architekturen (SOA):

• Servicebasiert: SOA besteht aus verschiedenen Diensten, die spezifische Geschäftsfunktionen erfüllen und über Netzwerkaufrufe miteinander kommunizieren.

• Lose Kopplung: Die Dienste sind in der Regel lose gekoppelt, was bedeutet, dass sie unabhängiger voneinander sind und leichter aktualisiert oder ersetzt werden können.

• Synchronität: Kommunikation in SOA ist oft synchron, was zu Wartezeiten führen kann, wenn ein Dienst auf die Antwort eines anderen wartet.


Ereignisgesteuerte Architekturen (EDA):

• Asynchronität: EDA basiert auf asynchroner Kommunikation, bei der Dienste nicht auf Antworten warten müssen und unabhängig voneinander agieren können.

• Reaktivität: Komponenten in EDA reagieren auf Ereignisse, was eine schnellere und flexiblere Reaktion auf Veränderungen ermöglicht.

• Skalierbarkeit: EDA ermöglicht eine effizientere Skalierung, da nur die Komponenten skaliert werden müssen, die aufgrund des Ereignisvolumens mehr Ressourcen benötigen.


Zusammenfassend lässt sich sagen, dass EDA im Vergleich zu monolithischen und SOA-Architekturen eine höhere Flexibilität, bessere Skalierbarkeit und eine effizientere Reaktion auf Geschäftsereignisse bietet.
Diese Eigenschaften machen EDA besonders geeignet für moderne, verteilte Systeme, die eine schnelle Anpassung an sich ändernde Anforderungen erfordern.

 

 

Welche Vorteile bietet EDA im Vergleich zu traditionellen Architekturen?

Ein Event Mesh bietet Bereitstellungsoptionen über verschiedene Hyperscaler und in privaten Cloud-Umgebungen. Es kann so konfiguriert werden, dass es ein verteiltes Netz von Ereignis-Brokern bildet, die in Umgebungen in privaten und/oder öffentlichen Clouds eingesetzt werden. Ein Event Mesh bietet einen vollständigen Satz von Ereignisservices, einschließlich Ereignisstreaming, Ereignismanagement und Überwachung, sowie erweiterte Funktionen wie dynamisches Nachrichtenrouting und detaillierte Filterung.

Eine moderne Softwarearchitektur mit EDA bietet eine Echtzeit Kommunikation über Systemgrenzen hinweg. Ein Update der Stammdaten in nächtlichen Jobs und einem Verzug von einem Tag zwischen Eintreffen und Verarbeiten von Nachrichten ist nicht mehr zeitgemäß. Anwendungen können nach dem Senden eines Ereignisses ohne Wartezeit zu neuen Aufgaben übergehen.
Durch die lose Kopplung von Sender und Empfänger können die Schnittstellen unabhängig voneinander entwickelt, getestet, angepasst und eingesetzt werden. Bei Bedarf können neue Sender und Empfänger ergänzt werden, ohne dass Code dafür neu geschrieben werden muss.

Dadurch wird die Architektur stabiler und flexibler zugleich. Anwendungen sind in Verbindung mit Hyperscalern beliebig skalierbar.

XEPTUM unterstützt Sie von der Analyse der Anforderungen, über die technische Implementierung bis hin zum Support – kontaktieren Sie uns noch heute!