Ereignisgesteuerte Architekturen ermöglichen die Entkopplung regelbasierter Dienste mit Mikrodiensten, die Daten basierend auf bestimmten Ereignissen teilen und verbrauchen. [...]
Entwickler-Unternehmen, die den Wandel von benutzergesteuerten zu maschinengesteuerten Zugriffsmustern in APIs und Services gespürt haben, sollten in Zukunft ereignisgesteuerte Architekturen in Betracht ziehen. Diese Architekturen ermöglichen die Entkopplung regelbasierter Dienste mit Mikrodiensten, die Daten basierend auf bestimmten Ereignissen teilen und verbrauchen. Sie sind ein fähiger Ansatz für die Abwicklung großer Mengen von komplexen Echtzeittransaktionen zwischen IoT-Geräten, Datenströmen, Workflow-Systemen und anderen Diensten, die sich ändernde Bedingungen bemerken und darauf reagieren.
Es wird Ihnen leichter fallen zu verstehen, warum ereignisgesteuerte Architekturen heute wichtiger sind denn je, wenn Sie auf die letzten zwei Jahrzehnte internetbasierter Architekturen zurückblicken.
Die meisten Entwickler sind mit zwei- und dreistufigen Webarchitekturen vertraut, die zur Verwaltung von Benutzererfahrungen, zur Verarbeitung von Geschäftslogiken und zur Interaktion mit Back-End-APIs und Datenquellen entwickelt wurden. Es gibt ausgereiftere Muster wie den Model-View-Controller (MVC) mit implementierten Frameworks auf vielen Plattformen, um diese Art von Anwendungen zu unterstützen.
Entwickler lernten schnell, dass die Trennung von Geschäftslogik und Präsentation für die Skalierung der Anwendungsentwicklung von wesentlicher Bedeutung ist. Viele Unternehmen wandten sich der Entwicklung von APIs für die Entwicklung mobiler Anwendungen zu und einige führten sogar Service-Busse ein, um die Koordinierung mehrstufiger Transaktionen und Workflows über diese APIs hinweg zu unterstützen.
Dies sind erste Schritte in Richtung der heutigen architektonischen Anforderungen, bei denen die Benutzer nicht mehr die Hauptkunden der APIs sind. Es gibt inzwischen weit mehr Anwendungen, Datendienste und Sensoren innerhalb und außerhalb des Unternehmens, die die Hauptkundschaft von API und Services darstellen. Diese Dienste sind leistungsfähiger und vor allem wiederverwendbar, wenn es darum geht, neue, sich ändernde Geschäftsanforderungen zu erfüllen, sofern sie als Mikrodienste konzipiert sind, die bestimmte Ereignisse in einem Ökosystem integrierter Dienste erkennen und darauf reagieren können. Deshalb sind ereignisgesteuerte Architekturen heute so wichtig.
Was ist eine ereignisgesteuerte Architektur?
Eine einfachere Möglichkeit, ereignisgesteuerte Architekturen zu verstehen, ist das Definieren von Diensten basierend auf Eingabe- und Ausgabeereignismustern:
- Dienste, die neue Ereignisse generieren, z. B. Sensoren, Benutzereingaben und Datenströme.
- Dienste, die Ereignisse via Zustandsänderungen generieren. Beispiele hierfür sind datumsbasierte Übergänge wie auslaufende Abonnements oder Weckalarme.
- Services, die Ereignisse wie Anzeigen und Dashboards weitgehend verarbeiten und nutzen.
Martin Fowler bietet umfangreichere Beschreibungen von Ereignistypen, die die von den Services ausgeführten Funktionen noch genauer unterscheiden. Zum Beispiel, wenn Ereignisbenachrichtigungen gesendet werden, ohne dass die zugehörige Antwort verarbeitet wird; wenn von Ereignissen übertragene Zustände vollständige Details des Ereignisses senden; und wenn Ereignisbeschaffungsdienste Zustandsveränderungen aufzeichnen.
Je nach Verteilung der Geschäftslogik gibt es dabei unterschiedliche Topologien. Zum Beispiel kann eine Mediator-Topologie geeignet sein, wenn die Architektur ein zentralisiertes System benötigt, das die Rohereignisse verarbeitet und anschließend die nachgelagerten Änderungsereignisse neu verteilt.
Beim Entwurf ereignisgesteuerter Architekturen gibt es daher betriebliche Erwägungen, einschließlich Skalierbarkeitsfaktoren, Latenzanforderungen, Service Levels, Leistungsfaktoren, Sicherheitsanforderungen und Anforderungen an die Fehlerbehandlung.
Die unterschiedlichen Arten von Ereignissen, die Topologie und weitere betriebliche Überlegungen sollten deshalb wesentliche Faktoren bei der Entwicklung der Architektur sein.
Beispiele für ereignisgesteuerte Anwendungsfälle
Es gibt viele Geschäftsmöglichkeiten, die sich heutzutage gut an ereignisorientierte Architekturen anpassen. Ich habe mit führenden CTOs von Technologieunternehmen über ereignisgesteuerte Architekturen gesprochen, um diese verschiedenen Arten von Mustern und Anwendungen besser zu verstehen.
Paul Butterworth, CTO des ereignisgesteuerten Plattformanbieters Vantiq, deutete dabei an, dass digitale Unternehmen Geschäftsmöglichkeiten in Echtzeit angehen, indem sie gewisse Ereignisse von einer Geschäftseinheit entkoppeln, die möglicherweise für andere von Wert sein könnten.
„Das digitale Echtzeit-Unternehmen wird naturgemäß über Ereignisse modelliert, die im gesamten Unternehmen auftreten, sowie über die als Reaktion auf diese Ereignisse ergriffenen Maßnahmen. Der Schlüssel zum digitalen Unternehmen besteht darin, dass ein Ereignis in einem Geschäftsbereich auftreten kann, während mehrere unabhängige Geschäftsbereiche unabhängig voneinander und asynchron darauf reagieren“, erklärt er.
Ein Beispiel dafür ist, wenn mehrere Unternehmen mit gängigen Kundensegmenten interagieren, aber unterschiedliche Produkte und Dienstleistungen verkaufen. Jeder Berührungspunkt der Kunden mit einer Geschäftseinheit generiert Ereignisse, die von abonnierenden Geschäftseinheiten in Anspruch genommen werden können. Diese Entkopplung macht es den jeweiligen Geschäftseinheiten leichter, den Verkauf oder die Kundenerfahrung zu verbessern, da jede Einheit genau bestimmen kann, wie die Informationen der Ereignisse, die von Interesse sind, verwendet werden sollen. Ein wichtiger Aspekt bei der Implementierung ereignisgesteuerter Architekturen ist die Bestimmung der Zugriffsrechte und Berechtigungen, wer Zugriff auf welche Ereignisse und welche Datentypen erhalten soll.
Eine zweite Geschäftsanforderung betrifft komplexere Geschäftsprozesse, die die Verwaltung von Zustandsänderungen betreffen. Karthik Ramasamy, Mitbegründer der Event Services-Plattform Streamlio, schlägt vor: „Die ereignisgesteuerte Architektur ist für Anwendungen von Wert, bei denen die Geschwindigkeit der Reaktion auf Ereignisse von entscheidender Bedeutung ist oder bei denen die Verarbeitung von Ereignissen eine effizientere Möglichkeit zum Verfolgen und Aktualisieren des Status darstellt. So ist die Integration von Microservices beispielsweise häufig mit einer ereignisgesteuerten Architektur verbunden.“
Nehmen Sie zum Beispiel komplexe Lieferketten, in denen mehrere Komponenten an unterschiedlichen Standorten und von unterschiedlichen Lieferanten hergestellt werden. Mit einer ereignisgesteuerten Architektur:
- Lieferantensysteme senden Echtzeitinformationen zu ihrem Produktionsstatus.
- Managementsysteme erfassen Ereignisse asynchron und übertragen Produktionsaufträge.
- Nachgelagerte Lieferantensysteme erfassen die Fertigungsaufträge und passen ihre Produktionsleistung an.
Greg Luck, CTO beim In-Memory-Grid-Anbieter Hazelcast, meint dazu: „Ereignisgesteuerte Architekturen verkehren die übliche Praxis der Datenakkumulation und der Abfrage von Daten. Ereignisse sind die Daten und werden im laufenden Betrieb verarbeitet. Dies erfordert eine Messaging- und Streaming-Infrastruktur zur Verarbeitung der Daten. Es kann auch mit einem In-Memory-Datengitter zur schnellen Anreicherung und Speicherung von Ergebnissen gekoppelt werden.“
Dies zeigt eine ganze Reihe neuer Anwendungen, die auf der Grundlage von Echtzeitereignissen entwickelt werden können, bei denen Daten an mehrere Verbraucher zugleich gestreamt werden. Nehmen Sie beispielsweise selbstfahrende Autos, die Ereignisse in Echtzeit ausstrahlen und verbrauchen und bei denen Fahrentscheidungen keine Latenzzeit für das Speichern und Abrufen von Informationen zulassen.
Das Einsatz von ereignisgesteuerten Architekturen im Unternehmen
Michael J. Morton, CTO des Cloud-Services-Integrators Dell Boomi, gibt Anregungen, wie größere Unternehmen über den Einsatz ereignisgesteuerter Architekturen nachdenken sollten: „Unternehmen, die eine ereignisgesteuerte Architektur zur Unterstützung von Schlüsselprojekten schaffen, sollten einen Schritt zurücktreten und über eine unternehmensweite Integration, Verteilung und Verwaltung von Ereignissen nachdenken. War es früher üblich, dass Unternehmen ihre Geschäfte mithilfe der Stapelverarbeitung abwickeln, so reicht dies heute nicht mehr aus, um erfolgreich zu sein und die digitale Transformation reibungslos zu meistern.“
Die Folgerung ist, dass ereignisgesteuerte Architekturen mit begrenztem Umfang angewendet werden können, sofern sie in Unternehmen mit Stapelverarbeitung oder Integrationen mit Unternehmenssystemen und SaaS-Plattformen eingesetzt werden, die nicht ereignisgesteuert sind.
Wie bei den meisten Änderungen in der Architektur ist die Auswahl geeigneter Plattformen, das Klein-Anfangen, das Sich-Bewähren und die Refaktorierung in wachsende Möglichkeiten kollektiv ein guter Weg, ereignisgesteuerte Architekturen iterativ zu entwickeln.
*Isaac Sacolick ist der Autor von Driving Digital: The Leader’s Guide to Business Transformation through Technology , das viele Praktiken wie Agilität, Devops und Data Science abdeckt, die für erfolgreiche digitale Transformationsprogramme von entscheidender Bedeutung sind. Sacolick ist ein anerkannter Top Social CIO, langjähriger Blogger bei Social, Agile and Transformation und CIO.com sowie Präsident von StarCIO.
Be the first to comment