Unternehmensintegration mithilfe von Nachrichtenbrokern und Ereignissen

Event Grid
Service Bus

Diese Referenzarchitektur integriert Back-End-Systeme von Unternehmen mithilfe von Nachrichtenbrokern und Ereignissen, um eine Entkoppelung der Dienste und damit eine bessere Skalierbarkeit und Zuverlässigkeit zu erreichen. Die Back-End-Systeme können SaaS-Systeme (Software-as-a-Service), Azure-Dienste und vorhandene Webdienste in Ihrem Unternehmen enthalten.

Reference architecture for enterprise integration using queues and events

Laden Sie eine Visio-Datei mit dieser Architektur herunter.

Aufbau

Die hier gezeigte Architektur basiert auf der einfacheren Architektur aus Einfache Unternehmensintegration. Diese Architektur verwendet Logic Apps zum Orchestrieren von Workflows und API Management zum Erstellen von API-Katalogen.

Bei der vorliegenden Version der Architektur werden zwei Komponenten hinzugefügt, um das System zuverlässiger und besser skalierbar zu machen:

Die asynchrone Kommunikation über einen Nachrichtenbroker bietet zahlreiche Vorteile gegenüber synchronen Direktaufrufen für Back-End-Dienste:

  • Lastenausgleich zur Bewältigung von Workloadspitzen mithilfe des warteschlangenbasierten Lastenausgleichsmusters
  • Stellt die Übertragung von Nachrichten an mehrere Consumer mithilfe von Herausgeber-Abonnement-Mustern bereit.
  • Zuverlässige Nachverfolgung des Status von Workflows mit langer Laufzeit, die mehrere Schritte oder Anwendungen umfassen
  • Entkoppelung von Anwendungen
  • Integration in vorhandene nachrichtenbasierte Systeme
  • Möglichkeit, Aufgaben einer Warteschlange hinzuzufügen, wenn ein Back-End-System nicht verfügbar ist

Event Grid ermöglicht es den verschiedenen Komponenten im System, auf Ereignisse zu reagieren, sobald diese eintreten. Dadurch sind sie nicht auf Abfragen oder geplante Aufgaben angewiesen. Diese trägt genau wie Nachrichtenwarteschlangen und Themen zur Entkoppelung von Anwendungen und Diensten bei. Eine Anwendung oder ein Dienst kann Ereignisse veröffentlichen, und alle interessierten Abonnenten werden benachrichtigt. Neu Abonnenten können hinzugefügt werden, ohne den Sender zu aktualisieren.

Das Senden von Ereignissen an Event Grid wird von zahlreichen Azure-Diensten unterstützt. So kann beispielsweise eine Logik-App auf ein Ereignis lauschen, wenn einem Blobspeicher neue Dateien hinzugefügt werden. Dieses Muster ermöglicht reaktive Workflows, bei denen das Hochladen einer Datei oder das Platzieren einer Nachricht in einer Warteschlange eine Reihe von Prozessen auslöst. Die Prozesse können parallel oder in einer bestimmten Reihenfolge ausgeführt werden.

Empfehlungen

Die Empfehlungen aus Einfache Unternehmensintegration gelten auch für diese Architektur. Es gibt allerdings noch weitere Empfehlungen:

Service Bus

Service Bus verfügt über zwei Übermittlungsmodi: Pull und Push. Bei Verwendung des Pull-Modell fragt der Empfänger kontinuierlich ab, ob neue Nachrichten vorhanden sind. Abrufe können ineffizient sein – insbesondere, wenn Sie über viele Warteschlangen verfügen, die jeweils nur einige wenige Nachrichten empfangen, oder wenn die Nachrichten zeitlich weit auseinander liegen. Bei Verwendung des Push-Modells sendet Service Bus ein Ereignis über Event Grid, wenn neue Nachrichten vorhanden sind. Der Empfänger abonniert das Ereignis. Wenn das Ereignis ausgelöst wird, pullt der Empfänger den nächsten Nachrichtenstapel von Service Bus.

Wenn Sie eine Logik-App erstellen, um Service Bus-Nachrichten zu nutzen, empfiehlt es sich, das Push-Modell mit Event Grid-Integration zu verwenden. Da die Logik-App keine Abfragen an Service Bus richten muss, ist es meistens kosteneffizienter. Weitere Informationen finden Sie in der Übersicht über die Integration von Azure Service Bus in Event Grid. Für Event Grid-Benachrichtigungen wird derzeit der Premium-Tarif von Service Bus benötigt.

Verwenden Sie PeekLock, um auf eine Gruppe von Nachrichten zuzugreifen. Mit PeekLock kann die Logik-App dann Schritte ausführen, um die einzelnen Nachrichten zu überprüfen, bevor sie abgeschlossen oder verworfen werden. Dieser Ansatz schützt vor versehentlichem Nachrichtenverlust.

Event Grid

Wenn ein Event Grid-Trigger ausgelöst wird, bedeutet das, dass mindestens ein Ereignis eingetreten ist. Wenn also beispielsweise eine Logik-App einen Event Grid-Trigger für eine Service Bus-Nachricht erhält, ist davon auszugehen, dass unter Umständen mehrere Nachrichten zur Verarbeitung vorliegen.

Überlegungen zur Skalierbarkeit

Mit dem Service Bus-Premium-Tarif lässt sich die Anzahl von Nachrichteneinheiten aufskalieren, um eine höhere Skalierbarkeit zu erreichen. Premium-Tarif-Konfigurationen können über eine, zwei oder vier Nachrichteneinheiten verfügen. Weitere Informationen zum Skalieren von Service Bus finden Sie unter Bewährte Methoden für Leistungsoptimierungen mithilfe von Service Bus Messaging.

Überlegungen zur Verfügbarkeit

Lesen Sie die SLA für jeden Dienst:

Erwägen Sie die Implementierung einer georedundanten Notfallwiederherstellung im Service Bus-Premium-Tarif, um bei einem schwerwiegenden Ausfall ein Failover sicherzustellen. Weitere Informationen finden Sie unter Georedundante Notfallwiederherstellung in Azure Service Bus.

Überlegungen zu DevOps

Weitere Informationen zu DevOps-Aspekten finden Sie im Abschnitt mit der Referenzarchitektur für eine einfache Unternehmensintegration.

Sicherheitshinweise

Sichern Sie Service Bus mithilfe von Shared Access Signature (SAS). Mit der SAS-Authentifizierung können Sie einem Benutzer Zugriff auf Service Bus-Ressourcen mit spezifischen Rechten gewähren. Weitere Informationen finden Sie unter Service Bus-Authentifizierung und -Autorisierung.

Wenn Sie eine Service Bus-Warteschlange oder ein Thema als HTTP-Endpunkt verfügbar machen müssen, beispielsweise zum Veröffentlichen neuer Nachrichten, verwenden Sie API Management zum Sichern der Warteschlange, indem der Endpunkt verfügbar gemacht wird. Anschließend können Sie den Endpunkt mit Zertifikaten oder OAuth-Authentifizierung sichern. Ein Endpunkt lässt sich am einfachsten durch die Verwendung einer Logik-App mit einem Anforderung-/Antwort-HTTP-Trigger als Zwischenstufe schützen.

Der Event Grid-Dienst sichert die Ereignisübermittlung durch einen Validierungscode. Wenn Sie Logic Apps verwenden, um das Ereignis abzurufen, wird die Validierung automatisch ausgeführt. Weitere Informationen finden Sie unter Event Grid – Sicherheit und Authentifizierung.

Kostenaspekte

Im Allgemeinen sollten Sie den Azure-Preisrechner verwenden, um Ihre Kosten zu ermitteln. Hier finden Sie einige weitere Überlegungen dazu.

API Management

Es entstehen Kosten für alle API Management-Instanzen, sobald sie ausgeführt werden. Wenn Sie zentral hochskaliert haben, das entsprechende Leistungsniveau jedoch nicht durchgehend benötigen, können Sie manuell zentral herunterskalieren oder die automatische Skalierung konfigurieren.

Logic Apps

Logic Apps verwendet ein serverloses Modell. Die Abrechnung erfolgt basierend auf Aktionen und Connectorausführung. Weitere Informationen hierzu finden Sie unter Logic Apps – Preise.

Service Bus: Warteschlangen, Themen und Abonnements

Service Bus-Warteschlangen und -Abonnements unterstützen sowohl Push- als auch Pullmodelle für die Übermittlung von Nachrichten. Beim Pullmodell wird jede Abrufanforderung als Aktion gemessen. Auch bei langen Abrufintervallen von 30 Sekunden (Standardeinstellung) können die Kosten hoch sein. Erwägen Sie die Verwendung des Pushmodells, sofern Sie keine Echtzeitzustellung von Nachrichten benötigen.

Service Bus-Warteschlangen sind in allen Tarifen enthalten (Basic, Standard und Premium). Service Bus-Themen und -Abonnements sind in Standard- und Premium-Tarifen erhältlich. Weitere Informationen finden Sie auf der Azure Service Bus-Preisseite.

Event Grid

Event Grid verwendet ein serverloses Modell. Die Abrechnung erfolgt auf Basis der Anzahl der Vorgänge (Ereignisausführungen). Zu den Vorgängen gehören der Eingang von Ereignissen für Domänen oder Themen, erweiterte Übereinstimmungen, Übermittlungsversuche und Verwaltungsaufrufe. Die Nutzung von bis zu 100.000 Vorgängen ist kostenlos.

Weitere Informationen finden Sie unter Event Grid-Preise.

Weitere Informationen finden Sie im Abschnitt zu Kosten im Microsoft Azure Well-Architected Framework.

Nächste Schritte