现代应用开发 — 事件驱动

通过事件驱动的应用模式,您可以近乎实时地响应云资源变化以及应用生成的事件。

事件是系统中的任何重大事件或更改,例如对象存储中新创建的对象,或应用程序中的性能警报。此应用模式提供了用于创建可扩展、安全、可靠且高性能的事件驱动型应用的设计原则和架构。

Oracle Cloud Infrastructure (OCI) 提供 OCI 服务连接器中心和 OCI 事件等服务,帮助您构建事件驱动的应用。使用 OCI 服务连接器中心,您可以创建服务连接器在服务之间移动数据。服务连接器指定包含要移动的数据的源服务、可选任务以及在任务完成时传送数据的目标服务。可选任务的示例包括:处理源数据的函数任务,或用于过滤源日志数据的日志过滤器任务。服务连接器支持的源服务包括 OCI 监视、OCI 日志记录和 OCI 流处理。目标服务的示例包括:OCI 函数、OCI 通知和 OCI 对象存储。您可以使用 OCI 事件引发可以通过服务连接器使用流摄取的资源更改事件。同样,您的应用可以引发定制事件并使用流将它们路由到服务连接器。

设计原则

为事件驱动的应用设计架构时,请使用以下现代应用开发原则:

  • 如果可能的话,使用低代码平台,如果不使用成熟的编程语言和轻量级框架

    使用 CloudEvents(一种开放的行业标准格式)描述您的活动数据。CloudEvents 可用于以一致、广泛使用的格式描述事件数据,并为多种编程语言(包括 Java)提供软件开发工具包 (Software Development Kit,SDK)。使用 Oracle Cloud Infrastructure Events 创建的事件使用 CloudEvents 格式。

  • 使用托管服务消除应用开发和运行的复杂性

    使用托管服务来传达、处理和持久保存事件数据。

    使用 OCI 服务连接器中心编排服务间的数据移动。使用 OCI 函数或 Oracle Container Engine for Kubernetes (OKE) 等托管服务处理事件。使用 OCI 通知将服务连接器连接到下游服务,例如电子邮件、短信、Slack 或 PagerDuty。

  • 检测端对端监视和跟踪

    OCI 服务连接器中心和 OCI 事件等事件路由器在 OCI 监视中生成度量,以便您轻松监视应用事件并构建定制度量和预警。对于端到端的分布式跟踪,使用日志记录规则(OCI 日志分析)以及基于预警的监视(OCI 通知)构建定制仪表盘,以便管理员发现和快速应对任何问题。此外,事件路由器具有独特的能力,可以向事件足迹提供单一窗格视图。

体系结构

此架构使用现代应用开发原则来创建事件驱动型应用。



活动驱动的架构 - oracle.zip

该体系结构包含以下组件:

  • Oracle Cloud Infrastructure 流处理提供了一个完全托管、可扩展且持久的存储解决方案,可以摄取连续的高容量数据流,您可以实时使用和处理这些数据。您可以使用流式处理来摄取大量数据,例如应用程序日志、运行遥测、Web 点击流数据;或用于发布 - 订阅消息传送模型中连续生成和处理数据的其他用例。

  • 函数

    Oracle Cloud Infrastructure Functions 是一个完全托管的多租户、高度可扩展的按需函数即服务 (FaaS) 平台。它由 Fn Project 开源引擎提供支持。使用函数可以部署代码,直接调用代码或触发代码以响应事件。Oracle Functions 使用 Oracle Cloud Infrastructure Registry 中托管的 Docker 容器。

  • 服务连接器

    Oracle Cloud Infrastructure 服务连接器中心是一个云消息总线平台,用于编排 OCI 中服务之间的数据移动。您可以使用服务连接器将数据从源服务移动到目标服务。通过服务连接器,您还可以选择指定要在将任务(例如函数)传送到目标服务之前对数据执行的任务。

    您可以使用 Oracle Cloud Infrastructure 服务连接器中心快速构建用于安全信息和事件管理 (SIEM) 系统的日志记录聚合框架。

  • 您可以使用服务连接器将数据从源服务移动到目标服务。通过服务连接器,您还可以选择指定要在将任务(例如函数)传送到目标服务之前对数据执行的任务。
  • 通知

    Oracle Cloud Infrastructure Notifications 服务通过发布 - 订阅模式向分布式组件广播消息,为 Oracle Cloud Infrastructure 上托管的应用程序提供安全、高度可靠、低延迟和持久消息。

用例示例示例

“日志数据预警”用例采用事件驱动的架构,使用 Oracle Cloud Infrastructure (OCI) 服务连接器中心、OCI 日志记录和 OCI 监视服务为日志数据实施预警。

此用例创建服务连接器和预警。服务连接器(OCI 服务连接器中心)处理日志数据并将其从 OCI 日志记录移至 OCI 监视,而预警在收到日志数据触发时触发。有关详细信息,请参阅“浏览更多”主题中方案的链接。



事件驱动的使用案例 -oracle.zip

部署

通用健康组织 (Universal Health Organization,UHO) 是一个遵循现代应用开发框架原则的示例应用程序。特别是,它实施了 Web 或移动、消息传递和事件驱动的架构模式的元素,可在 GitHub 上使用。
  1. 转到 GitHub
  2. 将系统信息库克隆或下载到本地计算机。
  3. 按照 README 文档中的说明进行操作。

浏览更多

了解有关相关资源的更多信息。

更改日志

此日志列出了重大更改: