Mit Eventarc können Sie ereignisgesteuerte und nachrichtbasierte Architekturen erstellen, ohne die zugrunde liegende Infrastruktur implementieren, anpassen oder verwalten zu müssen.
Eventarc wird in zwei Versionen angeboten: Eventarc Advanced und Eventarc Standard. Beide Versionen bieten eine skalierbare, serverlose und vollständig verwaltete Ereignislösung, mit der Sie Ereignisse asynchron von Quellen zu Zielen weiterleiten können. Weitere Informationen finden Sie unter Eventarc Advanced oder Eventarc Standard auswählen.
Eventarc Advanced wurde entwickelt, um die Aufnahme, Orchestrierung und Übermittlung von Ereignisdaten über Nachrichten zwischen Anwendungen, Diensten und Endpunkten zu vereinfachen. Mit Eventarc Advanced können Sie Ereignisse erfassen, die in einem System auftreten, und sie in einem zentralen Bus veröffentlichen. Interessierte Dienste können bestimmte Nachrichten abonnieren, indem sie Registrierungen erstellen. Mit dem Bus und einer Pipeline können Sie Ereignisse aus mehreren Quellen in Echtzeit weiterleiten, an mehreren Zielen veröffentlichen und optional vor der Übermittlung an ein Ziel transformieren.
Eventarc Advanced ist ideal für Organisationen mit komplexen Ereignis- und Messaginganforderungen, insbesondere für solche, die mit der Verwaltung zahlreicher Pub/Sub-Themen, Kafka-Warteschlangen oder anderer Messagingsysteme von Drittanbietern zu kämpfen haben. Mit Eventarc Advanced erhalten Administratoren erweiterte und zentrale Sichtbarkeit und Kontrolle. So können Organisationen mehrere Teams aus verschiedenen Projekten verbinden.
Sie können Eventarc Advanced über die Google Cloud Console, über die Befehlszeile mit der Google Cloud CLI oder über die Eventarc API verwalten.
Wichtige Konzepte
Ein Bus stellt einen sichtbaren Endpunkt für Ereignisse bereit und ist ein Router, der alle von Anbietern veröffentlichten Ereignisse empfängt und an null oder mehrere Ziele weiterleitet. Mit einem Bus können Sie den Nachrichtenfluss durch Ihr System zentralisieren, überwachen und nachverfolgen. Mit einem Bus können Sie Ereignisse von vielen Quellen an viele Ziele weiterleiten.
Nachrichten, die bei einem Bus ankommen, werden anhand der Kriterien einer Registrierung ausgewertet. Diese Registrierung stellt ein Abo für Ereignisse dar, die von einem bestimmten Bus erfasst werden. Die Ereignisse werden an Nutzer weitergeleitet, die diese bestimmten Ereignisse abonniert haben. Bei der Registrierung können Sie mit der Common Expression Language (CEL) detaillierte Zugriffssteuerungsrichtlinien definieren, indem Sie Ereignisse basierend auf Ereignisattributen abgleichen. Mit einer Registrierung können Sie auch die Pipeline angeben, an die übereinstimmende Ereignisse gesendet werden sollen.
Die Pipeline ist ein Vermittler zwischen einem Bus und einem Ziel. In der Pipeline wird ein Ziel angegeben und es besteht die Möglichkeit, alle übereinstimmenden Ereignisse vor der Übermittlung an das Ziel umzuwandeln. Sie können damit verschiedene Ereignisstrukturen verarbeiten, da mehrere Nutzlastformate unterstützt werden und Sie Ereignisdaten im laufenden Betrieb anpassen können, ohne die Quell- oder Zieldienste zu ändern.
Hauptmerkmale
Eventarc Advanced unterstützt viele Anwendungsfälle für Zielanwendungen. Zu den wichtigsten Funktionen gehören:
Groß angelegte Anwendungsintegration: Sie können zahlreiche Dienste und Anwendungen verbinden, um die asynchrone Kommunikation über verschiedene Ereignisformate und ‑schemata hinweg zu ermöglichen.
Ereignisstreaming für KI und Analysen: Sie können den Datenzufluss von IoT-Geräten und KI-Arbeitslasten bewältigen, Ereignisse filtern, transformieren und anreichern, bevor sie in Ihre Analysepipelines eingespeist werden.
Hybrid- und Multi-Cloud-Bereitstellungen: Sie können Ihre ereignisgesteuerten Architekturen über Google Cloud hinaus erweitern und in On-Premise-Systeme und andere Cloud-Anbieter einbinden. Mit Eventarc Advanced können Sie Ereignisse aus verschiedenen Quellen weiterleiten, einschließlich Google-Quellen und direkter Publisher von Ereignissen.
Regionalität
Eventarc Advanced ist ein vollständig regionaler Dienst: Alle Eventarc Advanced-Traffic- und -Daten müssen sich in derselben Region befinden. So können beispielsweise Registrierungen und Pipelines nur Daten aus derselben Region wie der Bus lesen und verarbeiten. Eine regionenübergreifende Unterstützung kann durch das Veröffentlichen von Ereignissen in verschiedenen Bussen in verschiedenen Regionen und durch die Konfiguration eines Netzwerks innerhalb eines Dienstperimeters erreicht werden, der mehrere Regionen umfasst.
Projektlayouts
Alle Eventarc-Ressourcen müssen zu einem Google Cloud-Projekt gehören. Es ist jedoch nicht erforderlich, dass sich der Anbieter (Ereignisquelle), der Bus (Administrator) und die Pipeline (Ereignisziel) im selben Projekt befinden.
Sie können eine Kombination aus IAM-Berechtigungen (Identity and Access Management) verwenden, um die Ressourcennutzung zu steuern, den Zugriff auf Daten mit CEL zu verwalten, Netzwerkanhänge und Dienstperimeter zu verwenden, um Netzwerk- und Sicherheitsanforderungen für unterschiedliche Anforderungen an den Datenverkehr zu unterstützen.
Veranstaltungen
Ein Ereignis ist ein Datensatz, der ein Vorkommen und seinen Kontext wiedergibt und eine Änderung an einer Ressource oder Umgebung angibt. Ein Ereignis ist eine von allen anderen Ereignissen unabhängige Kommunikationseinheit. Ein Ereignis kann z. B. eine Änderung von Daten in einer Datenbank, eine zu einem Speichersystem hinzugefügte Datei oder ein geplanter Auftrag sein.
Beachten Sie, dass ein Ereignis auch eine Nachricht ist, die von einer Komponente gesendet wird, wenn sich ihr Status geändert hat. Wenn ein Ereignis eintritt, wird die Nachricht an die Ereignisinfrastruktur gesendet, wo sie von Nutzern abgerufen werden kann. Im Kontext einer ereignisgesteuerten Architektur wird der Begriff Ereignis oft auf die Nachricht bezogen, die das Ereignis kommuniziert, und nicht auf das Ereignis selbst (was tatsächlich passiert ist, um die Nachricht zu generieren).
Ereignistypen
Eventarc Advanced unterstützt Ereignisse, die direkt aus einer Google-Quelle stammen.
Weitere Informationen finden Sie unter Von Eventarc unterstützte Google-Ereignistypen.
Ereignisanbieter und -ziele
Ereignisse werden von Eventarc Advanced von Ereignisanbietern erfasst und an ein Ereignisziel weitergeleitet. Für jede Eventarc Advanced-Pipeline kann nur ein Ziel für weitergeleitete Nachrichten angegeben werden.
Zu den unterstützten Anbietern gehören Google-Anbieter und direkte Publisher von Ereignissen. Zu den unterstützten Zielen gehören Cloud Run, Cloud Run-Funktionen, HTTP-Endpunkte, die in einem Virtual Private Cloud-Netzwerk gehostet werden, Workflows und ein anderer Eventarc Advanced-Bus.
Weitere Informationen finden Sie unter Ereignisanbieter und -ziele.
Ereignisformat und Bibliotheken
Eventarc liefert unabhängig von der Quelle Ereignisse an das Ziel in einem CloudEvents-Format mithilfe einer HTTP-Anfrage im Binärinhaltsmodus. CloudEvents ist eine Spezifikation für die allgemeine Beschreibung von Ereignis-Metadaten.
Ziele wie Cloud Run-Funktionen und Cloud Run verwenden Ereignisse im HTTP-Format. Bei Workflows-Zielen konvertiert der Workflows-Dienst das Ereignis in ein JSON-Objekt und übergibt das Ereignis als Laufzeitargument an die Workflowausführung.
Die Verwendung einer Standardmethode zum Beschreiben von Ereignismetadaten sorgt für Konsistenz, Barrierefreiheit und Übertragbarkeit. Ereignisnutzer können diese Ereignisse direkt lesen, oder Sie können die Cloud-Clientbibliotheken in verschiedenen Sprachen (einschließlich C++, C#, Go, Java, Node.js, PHP, Python und Ruby) verwenden, um die Ereignisse zu lesen und zu analysieren. Es gibt auch eine Reihe sprachspezifischer CloudEvents SDKs.
Die Struktur des HTTP-Texts für alle Ereignisse ist im GitHub-Repository von Google CloudEvents verfügbar.
Zuverlässigkeit und Bereitstellung
Es gibt keine garantierte Reihenfolge der Bereitstellung, etwa nach dem Prinzip "First-in-First-out". Beachten Sie, dass eine strikte Reihenfolge die Verfügbarkeits- und Skalierbarkeitsfunktionen von Eventarc beeinträchtigen würde, die mit denen der Transportebene Pub/Sub übereinstimmen. Weitere Informationen finden Sie unter Nachrichten sortieren.
Latenz und Durchsatz sind Best-Effort. Sie variieren auf Basis verschiedener Faktoren: ob Veröffentlichungs- oder ausgehender Traffic verschiedene Regionen umfasst; der Konfiguration eines bestimmten Dienstes und der Netzwerkauslastung von Ressourcen in einer Google Cloud-Region.
Es gibt Nutzungskontingente und -limits, die im Allgemeinen für Eventarc gelten.
Richtlinie für Ereigniswiederholung
Die von Eventarc Advanced festgelegte Standardaufbewahrungsdauer für Nachrichten beträgt 24 Stunden mit einer exponentiellen Backoff-Verzögerung.
Eventarc Advanced verwendet den exponentiellen Backoff mit einer Verzögerung zum Behandeln von Fehlern, für die Wiederholungsversuche möglich sind. Zuerst beträgt die Verzögerung eine Sekunde. Nach jedem fehlgeschlagenen Versuch wird sie verdoppelt (bis zu maximal 60 Sekunden und 5 Versuche).
Weitere Informationen finden Sie unter Ereignisse für Wiederholungen.
Duplizierte Termine
Ereignis-Duplikate werden möglicherweise an Event-Handler gesendet. Gemäß der CloudEvents-Spezifikation wird die Kombination der Attribute source
und id
als eindeutig angesehen und daher werden alle Ereignisse mit derselben Kombination als Duplikate betrachtet.
Sie sollten idempotente Event-Handler als allgemeine Best Practice implementieren.
Beobachtbarkeit
Detaillierte Logs für Eventarc, Cloud Run, Cloud Run-Funktionen, Pub/Sub und Workflows sind über Cloud-Audit-Logs verfügbar.