Jump to section

Was ist ein Event Mesh?

URL kopieren

Ein Event Mesh ist eine dynamische Infrastruktur für das Senden von Benachrichtigungen an Anwendungen in einer verteilten Umgebung. Im Kontext einer event-gesteuerten Architektur (EDA) ist ein Event eine Änderung, Aktion oder Beobachtung innerhalb eines Systems, die eine Benachrichtigung auslöst, die dann an andere Systeme geschickt wird, die jeweils auf das Event reagieren. Das Event Mesh ermöglicht diese Verbindungen.

agile integration illustration

Agile Integration: Ein Blueprint für die Unternehmensarchitektur

Die Verbreitung massiver Datenmengen innerhalb einer hochgradig verteilten Infrastruktur ist heutzutage eine Notwendigkeit für große Unternehmen. Geschäftskritische Anwendungen müssen zuverlässig und zeitnah kommunizieren können, damit die notwendigen Daten, die zur Verarbeitung von unternehmerisch wichtigen Interaktionen und Transaktionen gebraucht werden, gemeinsam verwendet werden können.

Die Herausforderung für ein modernes Unternehmen besteht darin, diese Daten auf eine effiziente, skalierbare und wirtschaftliche Weise innerhalb einer Infrastruktur zu verschieben, die nicht nur geographisch verteilt ist, sondern auch in separaten und heterogenen Clustern existiert. Die Lösung dafür ist das Event Mesh. Diese Infrastruktur wurde dazu entwickelt, Events reibungs- und lückenlos zwischen verschiedenen Umgebungen zu transportieren, selbst zwischen Clouds.

Um ein Event Mesh erklären zu können, müssen wir zuerst näher auf EDA (Event-Driven Architecture, event-gesteuerte Architektur) eingehen. Hierbei handelt es sich um eine Software-Architektur, die auf der Kommunikation via „Events“ basiert. Ein Event ist eine Änderung, Aktion oder Beobachtung innerhalb eines Systems, die eine Benachrichtigung auslöst, die dann an andere Systeme geschickt wird, die jeweils auf das Event reagieren.

Ein Event kann zum Beispiel durch die Änderung einer Kundenadresse, eine Aktion wie das Aufgeben einer neuen Bestellung oder eine Beobachtung wie der Ladestatus einer Batterie oder die Temperaturmessung eines Sensors ausgelöst werden. Jedes Event beinhaltet Informationen, die von anderen Anwendungen genutzt werden können. Mehrere Consumer können dieselbe Nachricht erhalten und die damit verbundenen Daten auf ihre eigene Art nutzen, um eine gewisse Aufgabe zu erledigen.

Die „asynchrone“ eventbasierte Kommunikation der EDA ist für diese Art des Datentransfers besser geeignet als die traditionelle „synchrone“ Kommunikation. Beim synchronen Messaging stellen zwei Anwendungen eine direkte Verbindung her. Meist geschieht das über HTTP-APIs (Application Programming Interfaces), wobei beide Services verfügbar und responsiv sein müssen, damit eine erfolgreiche Kommunikation stattfinden kann. Wenn ein Service nicht verfügbar ist, kann die Nachricht nicht verarbeitet werden, und das gesamte System kann hängen oder sogar abstürzen. Synchrone Übertragung ist oft keine ideale Methode, um große Datenvolumina an verschiedene Systeme in einem Unternehmen zu senden. 

Im Gegensatz dazu ist die asynchrone Kommunikation event-gesteuert. Dadurch können mehrere Anwendungen schnell, gleichzeitig und beinahe in Echtzeit miteinander kommunizieren. Selbst wenn ein System für den Empfang eines Events nicht verfügbar ist, sorgt die asynchrone Funktionsweise der EDA dafür, dass die Benachrichtigung zugestellt wird, sobald das System wieder verfügbar ist.

Da bei einer EDA keine Runtime-Kopplung zwischen Event Producer und Event Consumer erforderlich ist, eignet sie sich ideal für moderne, verteilte Anwendungen.

Innerhalb eines Unternehmens können innerhalb einer Minute Hunderte oder sogar Tausende von Events generiert werden. Organisationen benötigen eine effektive Möglichkeit, eine große Menge an Events an eine Reihe von Anwendungen zu schicken, die in verteilten Cloud- und On-Premise-Umgebungen eingesetzt werden. Das Event Mesh bietet event-gesteuerten Unternehmen diese Möglichkeit.

Ein Event Mesh ist eine dynamische Infrastruktur, die Events über ein Netzwerk von verknüpften „Event Brokern" von Producern an Consumer sendet. Event Mesh ist umgebungsagnostisch und wurde dazu entwickelt, Events zwischen unterschiedlichen Cloud-Plattformen zu übermitteln. Dabei spielt es keine Rolle, wo die Anwendungen eingesetzt werden: Public Cloud, Private Cloud und Hybrid Cloud, PaaS, das IoT (Internet of Things) oder sogar ohne Cloud. Außerdem ist keine Konfiguration von Event-Routing erforderlich. 

Das Event Mesh erlaubt es Publishern und ihren Abonnenten, die nativen Event-Mechanismen ihrer Plattform zu nutzen. So kann ein Node.js-Entwickler in einem Kubernetes-Cluster ein Event veröffentlichen, das ein Java-Entwickler in einem anderen Cluster dann abonnieren kann. Jeder Consumer kann das Event nutzen, und zwar unabhängig von der Anwendungsart, der Entwicklungsplattform, auf der die Anwendung entwickelt wurde, der für das Messaging verwendeten Streaming-Technologie sowie der Art von Cloud, auf der die Anwendung gehostet wird.

Da ein Event Mesh Informationen zwischen Anwendungen unabhängig von ihrer Umgebung versenden kann, unterstützt das Event Mesh eine lose gekoppelte Integration zwischen Legacy-Anwendungen, -Datenbanken und -Geräten sowie den neuesten microservice-basierten und cloudnativen Anwendungen.

Ein Event Mesh funktioniert auch mit einer Reihe von Messaging-Service-Optionen und kann zwischen diesen übersetzen. Apache Kafka ist eine beliebte Wahl für EDA-Messaging, insbesondere bei cloudnativen Entwicklern. Event Mesh sollte außerdem andere Messaging-Optionen wie Knative Eventing, Cloud Events, HTTP und AMQP und weitere unterstützen können.

Sobald ein Unternehmen die event-gesteuerte Architektur völlig eingeführt hat, steht Event Mesh für den Reifestatus der EDA-Entwicklung. Obwohl asynchrone Interaktionen und Muster der event-gesteuerten Architektur nicht neu sind, bietet Event Mesh einen bahnbrechenden neuen Integrationsansatz, der zur Kommunikationsinfrastruktur der nächsten Unternehmensgeneration werden kann.

Da sich die Namen Service Mesh und Event Mesh so ähnlich sind, können sie leicht verwechselt werden. Ein Event Mesh ist allerdings nicht dasselbe wie ein Service Mesh. Während ein Event Mesh asynchron ist, unterstützt ein Service Mesh traditionelles synchrones Request-Reply-Messaging.

 

Event Mesh und Service Mesh ergänzen sich im Unternehmen gegenseitig, indem sie zwei verschiedene, aber effektive Kommunikationsoptionen bieten. Dadurch können Entwickler flexibel entscheiden, welche davon am besten zu der Anwendung passt, die sie gerade entwickeln. Jedoch kann ein Service Mesh ein Event Mesh nicht ersetzen, da ein Service Mesh keine asynchrone, event-gesteuerte Kommunikation unterstützt. Ein Service Mesh ist am besten für einzelne Cluster-Deployments geeignet.

Um den Bedürfnissen eines Unternehmens und dem Versprechen einer event-gesteuerten Architektur gerecht zu werden, muss ein Event Mesh die folgenden Voraussetzungen erfüllen:

  • Unterstützung verschiedener Messaging-Services, wie Kafka, Knative Eventing, HTTP, AMQP usw.
  • Fehlertoleranz für zuverlässige Nachrichtenübermittlung, inklusive automatisierter Wiederherstellung nach Netzwerkausfällen und Fallback-Zielen für unzustellbare Nachrichten
  • Unterstützung von Multiprotokoll-Bridges zwischen unterschiedlichen Events, Anwendungen und Messaging-Plattformen
  • Unterstützung von On-Premise- und Multi-Cloud-Deployment
  • Unterstützung von Multicast-Adressen (alle Abonnenten erhalten eine Kopie jeder Nachricht) oder Anycast-Adressen (ein Abonnent erhält eine Kopie jeder erzeugten Nachricht)
  • Sichere Verbindungen und Übertragung von Event-Nachrichten

Use Cases für Event Mesh

Eine event-gesteuerte Architektur kann zusammen mit einem Event Mesh eine Vielzahl von Use Cases unterstützen, die in komplexen, weit verteilten Topologien mit mehreren Clouds mithilfe unterschiedlicher Anwendungs-Stacks bereitgestellt werden. Nachfolgend finden Sie eine Auswahl der vielen möglichen Use Cases für Event Mesh.

Microservice-Integration

Event Mesh kann ganz einfach microservice-basierte Anwendungen miteinander und mit Legacy-Technologien verbinden.

E-Commerce

Event Mesh ermöglicht die rasche Verarbeitung von Transaktionen, wodurch schnelle und hochgradig verlässliche Kundeninteraktionen über Websites und Apps sichergestellt werden.

Kundensupport

Event Mesh unterstützt die schnelle Bereitstellung von Kundeninteraktionsdaten, die es Support-Teams ermöglichen, Kunden in Echtzeit zu antworten und ein personalisiertes IT-Erlebnis zu bieten.

Finanzdienstleistungen

Event Mesh ermöglicht Finanzdienstleistern die Synchronisation von Echtzeit-Handelsdaten mit niedrigen Latenzzeiten. Zusätzlich kann Event Mesh in Echtzeit Informationen über verdächtige Transaktionen weitergeben, um die Betrugserkennung zu unterstützen.

IoT-Konnektivität

Event Mesh liefert verlässliche und skalierbare IoT-Konnektivität an Backend-Systeme, um Metriken von einer beinahe grenzenlosen Auswahl an Sensoren zu verarbeiten.

Event Mesh bietet Ihrem Unternehmen die folgenden entscheidenden Vorteile:

Reaktionsfähigkeit in Echtzeit

Der Erfolg eines Unternehmens ist abhängig von seiner Fähigkeit, auf Veränderungen zu reagieren. Einer der größten Vorteile eines Event Mesh ist die Echtzeit-Bereitstellung von Daten als Event Streams über eine event-gesteuerte Architektur, die schnelle Reaktionen ermöglicht. Ein Event Mesh ist hochgradig effizient und ermittelt den schnellsten Weg zwischen Event Producer und Event Consumer, wodurch Messaging-Latenz nahezu eliminiert wird. Dadurch erhalten Business-Stakeholder die Agilität, schnell auf bedenkliche Probleme zu reagieren, die zeitkritische Entscheidungen erfordern.

Verbessertes Kundenerlebnis

Event Mesh ermöglicht die Echtzeit-Bereitstellung von Daten, die von kundenorientierten Teams und E-Commerce-Technologien verwendet werden. Dadurch können Unternehmen ihren Kunden einen besseren Service bieten und letztendlich das Kundenerlebnis verbessern.

Verringerte Betriebskosten

Durch die von Event Mesh bereitgestellte Echtzeit-Transparenz von Fertigung, Verkauf, Bestand und Versand können Organisationen Abläufe optimieren, die Effizienz verbessern und Kosten reduzieren.

Entwicklerproduktivität

Durch die Unterstützung eines Event Mesh, das unabhängig von verschiedenen Arten von Umgebungen, Messaging-Systemen und Protokollen eingesetzt werden kann, können Anwendungsentwickler sich darauf konzentrieren, die Geschäftslogik mithilfe der besten verfügbaren Technologien zu implementieren. So können Entwickler Innovationen schaffen, ohne ein komplexes Datenverteilungsnetzwerk entwickeln zu müssen und ohne Einschränkungen in Bezug auf eine bestimmte Entwicklungsumgebung, Messaging-Plattform oder Cloud.

Weiterlesen

Artikel

Was ist Integration?

Sie möchten wissen, was Integration ist? Erfahren Sie alles über Integration, wie man sie einsetzt und warum sie in Verbindung mit Open Source noch viel wertvoller ist.

Artikel

Was ist Apache Kafka?

Apache Kafka ist eine verteilte Data-Streaming-Plattform, mit der Sie Daten in Echtzeit veröffentlichen, abonnieren, speichern und verarbeiten können.

Artikel

Was ist eine API?

APIs (Application Programming Interfaces) bestehen aus mehreren Definitionen und Protokollen zur Entwicklung und Integration von Anwendungssoftware.

Mehr über Integration erfahren

Produkte

Red Hat® Integration umfasst diverse Integrations- und Messaging-Technologien für die Daten- und Anwendungsintegration in Hybrid Cloud-Umgebungen. Es enthält Red Hat 3scale API Management, Red Hat AMQ, Red Hat Runtimes, Erfassung von Änderungsdaten und Service-Registry. 

Red Hat Runtimes umfasst eine Reihe von Produkten, Tools und Komponenten, mit denen cloudnative Anwendungen entwickelt und gewartet werden können. Es enthält Red Hat AMQ, Red Hat Data Grid, Red Hat JBoss® Enterprise Application Platform, Red Hat JBoss Web Server, Red Hat build of OpenJDK, Red Hat build of Quarkus, Cloudnative Runtimes, Red Hat Migration Toolkit für Anwendungen, Single Sign-On (SSO) und Launcher-Service.

Red Hat Application Foundations umfasst zahlreiche Integrations- und Runtimes Technologien, um die Entwicklung, Bereitstellung und Nutzung von Anwendungen sicher und in großem Umfang in der Hybrid Cloud zu unterstützen.

Gehostete und gemanagte Plattform-, Anwendungs- und Datenservices, die das Hybrid Cloud-Erlebnis optimieren und die Betriebskosten sowie die Komplexität der Bereitstellung cloudnativer Anwendungen verringern.

Ressourcen

E-Book

Agile Integration: Ein Blueprint für die Unternehmensarchitektur

Training

Kostenloser Trainingskurs

Red Hat Agile Integration Technical Overview