Moderne App-Entwicklung – ereignisgesteuert

Mit dem ereignisgesteuerten Anwendungsmuster können Sie nahezu in Echtzeit auf Änderungen in Ihren Cloud-Ressourcen und auf Ereignisse reagieren, die von Ihrer Anwendung generiert werden.

Ein Ereignis ist ein wichtiges Vorkommen oder eine wesentliche Änderung in einem System, z.B. ein neu erstelltes Objekt im Objektspeicher oder ein Performance-Alert in Ihrer Anwendung. Dieses Anwendungsmuster präsentiert die Designprinzipien und Architektur für die Erstellung skalierbarer, sicherer, zuverlässiger und leistungsstarker ereignisgesteuerter Anwendungen.

Oracle Cloud Infrastructure (OCI) stellt Services wie OCI Service Connector Hub und OCI-Ereignisse bereit, mit denen Sie ereignisgesteuerte Anwendungen erstellen können. Mit OCI Service Connector Hub können Sie Service-Connectors für das Verschieben von Daten zwischen Services erstellen. Ein Service-Connector gibt den Quellservice an, der die zu verschiebenden Daten enthält, optionale Aufgaben und den Zielservice für die Übermittlung von Daten nach Abschluss der Aufgaben. Beispiele für optionale Aufgaben sind eine Funktionsaufgabe zur Verarbeitung von Daten aus der Quelle oder eine Logfilteraufgabe zum Filtern von Logdaten aus der Quelle. Zu den unterstützten Quellservices für Service-Connectors gehören OCI Monitoring, OCI Logging und OCI Streaming. Beispiele für Zielservices: OCI Functions, OCI Notifications und OCI Object Storage. Mit OCI-Ereignissen können Sie Ressourcenänderungsereignisse auslösen, die von Service-Connectors mit Streams aufgenommen werden können. Ebenso kann Ihre App benutzerdefinierte Ereignisse auslösen und Streams verwenden, um sie an Service-Connectors weiterzuleiten.

Designprinzipien

Verwenden Sie die folgenden modernen App-Entwicklungsprinzipien, wenn Sie die Architektur für Ihre ereignisgesteuerte Anwendung entwerfen:

  • Verwenden Sie, wenn möglich, Low-Code-Plattformen, und wenn nicht, ausgereifte Programmiersprachen und Lightweight-Frameworks

    Beschreiben Sie Ihre Ereignisdaten mit CloudEvents, einem offenen und branchenspezifischen Standardformat. Mit CloudEvents können Sie Ereignisdaten in einem konsistenten, weit verbreiteten Format beschreiben und Software Development Kits (SDKs) für mehrere Programmiersprachen, einschließlich Java, bereitstellen. Mit Oracle Cloud Infrastructure Events erstellte Ereignisse verwenden das Format CloudEvents.

  • Verwenden Sie verwaltete Services, um die Komplexität bei der App-Entwicklung und beim Betrieb zu beseitigen

    Verwenden Sie verwaltete Services, um Ereignisdaten zu kommunizieren, zu verarbeiten und zu persistieren.

    Mit OCI Service Connector Hub können Sie Datenverschiebungen zwischen Services orchestrieren. Verwenden Sie verwaltete Services wie OCI Functions oder Oracle Container Engine for Kubernetes (OKE), um Ereignisse zu verarbeiten. Mit OCI-Benachrichtigungen können Sie Service-Connectors mit Downstream-Services wie E-Mail, SMS, Slack oder PagerDuty verbinden.

  • Überwachung und Rückverfolgung von Instrumenten durchgängig

    Ein Ereignisrouter wie OCI Service Connector Hub und OCI-Ereignisse erzeugen Metriken in OCI Monitoring, sodass Sie Ihre Anwendungsereignisse einfach überwachen und benutzerdefinierte Metriken und Alarme erstellen können. Erstellen Sie für das durchgängige verteilte Tracing benutzerdefinierte Dashboards mit Loggingregeln (OCI Logging Analytics) sowie alarmbasiertes Monitoring (OCI-Benachrichtigungen), damit Administratoren Probleme erkennen und schnell darauf reagieren können. Darüber hinaus bietet ein Ereignisrouter die einmalige Möglichkeit, eine einheitliche Sicht auf den Footprint des Ereignisses bereitzustellen.

Architektur

Diese Architektur verwendet moderne Grundsätze der App-Entwicklung, um ereignisgesteuerte Anwendungen zu erstellen.



Irrevent-getriebene Architektur-oracle.zip

Die Architektur umfasst folgende Komponenten:

  • Streaming

    Oracle Cloud Infrastructure Streaming bietet eine komplett verwaltete, skalierbare und dauerhafte Storage-Lösung, mit der Sie fortlaufende und hochvolumige Datenstreams aufnehmen können, die Sie in Echtzeit verwenden und verarbeiten können. Sie können Streaming für die Aufnahme großer Datenmengen verwenden, z.B. Anwendungslogs, betriebliche Telemetrie, Clickstream-Webdaten oder für andere Anwendungsfälle, bei denen kontinuierlich und sequenziell Daten in einem Messagingmodell für das Veröffentlichen/Abonnieren erzeugt und verarbeitet werden.

  • Funktionen

    Oracle Cloud Infrastructure Functions ist eine vollständig verwaltete, mehrmandantenfähige, äußerst skalierbare, bedarfsgesteuerte Functions-as-a-Service-(FaaS-)Plattform. Sie basiert auf der Open-Source-Engine des Fn-Projekts. Mit Funktionen können Sie Ihren Code bereitstellen und entweder direkt aufrufen oder als Reaktion auf Ereignisse auslösen. Oracle Functions verwendet Docker-Container, die in Oracle Cloud Infrastructure Registry gehostet werden.

  • Servicekonnektoren

    Oracle Cloud Infrastructure Service Connector Hub ist eine Cloud-Nachrichtenbusplattform, die das Verschieben von Daten zwischen Services in OCI orchestriert. Mit Service-Connectors können Sie Daten aus einem Quellservice in einen Zielservice verschieben. Mit Service-Connectors können Sie optional eine Aufgabe (wie eine Funktion) angeben, die für die Daten ausgeführt werden soll, bevor sie an den Zielservice zugestellt wird.

    Mit Oracle Cloud Infrastructure Service Connector Hub können Sie schnell ein Loggingaggregations-Framework für Security Information and Event Management-(SIEM-)Systeme erstellen.

  • Mit Service-Connectors können Sie Daten aus einem Quellservice in einen Zielservice verschieben. Mit Service-Connectors können Sie optional eine Aufgabe (wie eine Funktion) angeben, die für die Daten ausgeführt werden soll, bevor sie an den Zielservice zugestellt wird.
  • Benachrichtigungen

    Der Oracle Cloud Infrastructure Notifications-Service sendet Nachrichten über ein Veröffentlichungs-Abonnement-Muster an verteilte Komponenten. Dabei werden sichere, äußerst zuverlässige, niedrige Latenz und dauerhafte Nachrichten für Anwendungen bereitgestellt, die auf Oracle Cloud Infrastructure gehostet werden.

Beispielanwendungsfall

Der Anwendungsfall "Alarm in Logdaten" nutzt die ereignisgesteuerte Architektur, um Alarme für Logdaten mit den Services Oracle Cloud Infrastructure (OCI) Service Connector Hub, OCI Logging und OCI Monitoring zu implementieren.

Dieser Anwendungsfall erstellt einen Service-Connector und einen Alarm. Der Service-Connector (OCI Service Connector Hub) verarbeitet und verschiebt Logdaten aus OCI Logging in OCI Monitoring, während der Alarm durch empfangene Logdaten ausgelöst wird. Weitere Einzelheiten finden Sie unter dem Link zum Szenario im Thema "Mehr entdecken".



ereignisgesteuerte Anwendungsfall-oracle.zip

Bereitstellen

Universal Health Organization (UHO) ist eine Beispielanwendung, die den Grundsätzen des Modern App Development Framework entspricht. Insbesondere implementiert er Elemente der Web- oder Mobile-, Messaging- und ereignisgesteuerten Architekturmuster und ist unter GitHub verfügbar.
  1. Gehen Sie zu GitHub.
  2. Klonen Sie das Repository, oder laden Sie es auf den lokalen Rechner herunter.
  3. Befolgen Sie die Anweisungen im Dokument README.

Mehr anzeigen

Weitere Informationen zu zugehörigen Ressourcen.

Änderungslog

In diesem Log werden wichtige Änderungen aufgeführt: