Einleitung
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: Ein Blueprint für die Unternehmensarchitektur
Welches Problem wird durch ein Event Mesh gelöst?
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.
Was ist eine event-gesteuerte Architektur?
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.
Funktionsweise eines Event Mesh
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.
Welcher Unterschied besteht zwischen einem Event Mesh und einem Service Mesh?
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.
Notwendige Voraussetzungen für ein Event Mesh
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.
Geschäftliche Vorteile von Event Mesh
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.