事件驱动架构离我们还有多远?

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
性能测试 PTS,5000VUM额度
简介: 作为阿里云官方的事件中枢产品,EventBridge 的核心能力将聚集于连接和集成。未来 EventBridge 会扩大场景范围,业务应用部署在线下 IDC 机房、跨云厂商、边缘公网环境,阿里云 EventBridge 都将实现连接的触达。

作者 | 尘央


近年来,随着云原生、Serverless 等技术关键词都成为了 buzz word,事件驱动再一次成为了云应用架构领域的热门词汇。Gartner 报告将 Event-Driven Model 列为10大战略技术趋势之一,事件驱动架构(EDA)将成为未来微服务的主流。该报告同时做出了以下预言:


  • 到 2022 年,事件通知的软件模型将成为超过 60% 的新型数字化商业的解决方案;
  • 到 2022 年,超过 50% 的商业组织将参与到事件驱动的数字化商业服务的生态系统当中。


美好的未来,骨感的现实


然而,抛开美好的畅想,在实际工作中,落地事件驱动架构不是一件简单的事情,其问题主要体现在以下方面:


  • 事件无标准,获取困难:阿里云的云产品,从 IaaS 到 PaaS,每天都有数以亿计的事件产生,但这些云产品没有采用统一的标准和规范来定义描述这些事件,使得用户无法使用同样的方式来获取处理事件。

  • 事件孤岛严重,无法串联应用:云产品的事件天然孤立,因为缺少统一的事件中枢,使得用户做应用处理时很难将多个产品的事件做串联组合,无法形成规模效应,很难挖掘出有用的业务价值。


  • 事件响应能力弱:当前大多数云产品事件的处理场景都停留在事件本身的监控、告警展示层面,属于离线分析的场景,而云上的用户更加需要将这些事件连接到自身的在线业务系统中,实现事件的在线响应处理,以发挥更大的价值。


  • 事件管理能力差:当前大部分云产品的事件管理能力处于初级阶段,缺乏对事件生命周期的全程管理,缺少事件长期归档、查找、轨迹诊断等能力,用户使用过程中定位问题较为困难。



EventBridge 事件总线基本模型


为了解决这些现实问题,2020年11月,阿里云发布了 EventBridge 事件总线。作为一款无服务器事件总线服务,EventBridge 作为云事件的枢纽,以标准化的 CloudEvents 1.0 协议连接云产品和云应用,提供中心化的事件治理和驱动能力,帮助用户轻松构建松耦合、分布式的事件驱动架构。


另外,在阿里云之外的云市场上有海量垂直领域的 SaaS 服务,EventBridge 将以跨产品、跨组织以及跨云的集成与被集成能力,助力客户打造一个完整的、事件驱动的、高效可控的上云新界面,阿里云EventBridge可以提供以下核心能力:


(1)海量阿里云官方事件源:EventBridge 当前支持了阿里云 60+云产品的官方事件接入,用户零成本即可获取各类资源、运维和审计事件。


(2)多类型自定义事件源:EventBridge 支持用户以 CloudEvent1.0 标准协议上传自定义的事件内容,同时还支持消息、数据库变更等类型的数据源清洗成自定义事件。


(3)丰富的事件目标和处理模式:EventBridge 支持短信、邮箱、钉钉、API 等 10+事件目标,并支持全量部分提取、常量、模板等 10+事件处理模式,用户无需任何代码即可完成事件驱动和处理。


(4)完善的事件管理和触达能力:EventBridge 支持事件生命周期查询、轨迹追踪等诊断能力,支持跨网络、跨账号、跨地域的复杂事件触达能力。


EventBridge 产品包含几个基本概念:事件、事件总线、事件源、事件规则以及事件目标。


12.png


如上图所示,事件由阿里云官方、自定义、第三方 SaaS 这三类事件源产生并传输到事件总线,用户在事件总线内配置事件规则以实现事件过滤、转换处理,并最终投递到用户指定的事件目标。


1.典型场景


根据 EventBridge 当前已经具备的能力,给大家介绍下三个典型的案例:


场景 1:云原生海量媒体处理业务


在线教育、游戏直播行业,伴随着在线课堂、直播间的产生,会有大量的媒体数据,例如视频、音频文件需要做剪辑、切分、转码等复杂处理。这类业务处理量往往存在较为陡峭的波峰波谷,业务上需要实时的事件驱动协调以及 Serverless 化的执行处理能力,以满足高实时、低成本、极致弹性的业务需求。


1624953046329-a91ffd5e-6516-4542-a27f-cab0a1dd172a.png


在这个业务场景中,EventBridge 收集来自原始文件的上传、变更事件,并根据业务逻辑驱动下游的函数计算做高并发、可弹性的媒体处理逻辑,在函数计算产品处理完成后将结果驱动下游的媒体通道,同时处理结果可以通过 EventBridge 触达到钉钉、短信邮箱等离线通知渠道以及 API、消息队列等在线渠道。使用 EventBridge+函数计算的方案弹性扩容能开强,运维成本更低、实时性更强。


场景 2:360 度业务全景


随着企业业务规模的扩大,业务的稳定性愈发重要,为了避免故障随着场景的复杂化而频繁发生,对应用建设 360  度全方位的可观测和监控体系尤为重要。传统的应用基于云原生重构后,享受云原生技术红利的同时也为应用的稳定性治理带来了更多的复杂性,最主要的就是变更难以控制:业务依赖了整套云的基础设施,IaaS 层物理资源、网络资源以及 PaaS 层云服务,甚至依赖的上下游服务,时刻都在进行变更,用户很难立马感知到变更的发生以及相应的影响,而 95% 的故障都是由变更导致的。


为了解决这个问题,通过 EventBridge 打造 360 度业务全景图,清晰地感知整个产品业务链路上,做了哪些变更,有哪些异常反应,这些异常反应是不是跟最近的变更有关联,遇到特殊问题时,我们甚至可以通过自运维的方式,帮助产品更快的恢复,将影响面降低到最小。


14.png


而这些能力的拥有,离不开 EventBridge 集成多个云产品事件的能力,也离不开 EventBridge 可以通过事件触发多个云产品响应的能力。事件作为一个信息的重要载体,通过 EventBridge 优雅的协调各个云产品进行有序工作。


场景 3:新零售智慧家具门店


EventBridge 未来可以触达的场景有多大?让我们看一个新零售智慧家具门店的场景:


  • 仓库的家具商品入库事件、门店的顾客进店事件通过 EventBridge 实时流转到在线分析系统,让我们知道现在店内有哪些家具商品,进店顾客的家具偏好是什么,并推送给商场门店的导购员或则广告屏,帮助门店更好的下单转化;


  • 顾客在线电子支付后,订单信息发送到 EventBridge,并触发第三方物流公司进行送货上门;


  • 第三方物流公司,可以实时的将家具的位置信息通过 EventBridge 推送给移动端APP,客户可以通过 APP 很方便的实时了解到自己的家具到哪了,预估还需要多久送到家;


所有这些通过EventBridge流转的在线业务事件数据,最终通过EventBridge流转到离线分析系统,自动生成业务报表,供管理层做绩效考核或则运营决策。


1624953046315-8d2c3f14-8ecb-4d6a-b1a1-c0f91bc4b155.png


在这个场景中,EventBridge 起着关键的通道作用,无论是 IoT、在线业务、还是大数据场景,EventBridge 将事件信息高效的流转,推动业务目标达成。Event 既作为在线业务数据,又作为离线分析数据,这种方式,既降低了成本,同时也提高了效率。


发布半年,what's new


EventBridge 距离上次发布已有半年,近一段时间在生态集成规模、事件触达能力、事件应用集成方面有了全面的发展和增强。


  • 在生态集成规模方面,基于阿里云审计产品实现了 30+ 云产品官方事件源接入,涵盖计算、存储、网络、数据库等主流云产品。
  • 在事件触达能力全面新增跨网络、跨地域、跨账号等深度事件触达能力,支持大企业客户使用资源账号做集中事件管理,管理其他成员账号、其他地域的事件。
  • 在事件处理方案:新增了事件查询和事件轨迹查询能力,方便用户快速定位事件驱动链路的异常问题。

未来展望


作为阿里云官方的事件中枢产品,EventBridge 的核心能力将聚集于连接和集成。在连接场景上,未来 EventBridge 会扩大场景范围,不局限于阿里云网络环境,业务应用部署在线下 IDC 机房、跨云厂商、边缘公网环境,阿里云 EventBridge 都将实现连接的触达。


在集成场景上,EventBridge 会继续扩大事件源和目标的范围,涵盖更多的云产品、自定义数据源以及三方 SaaS,同时为了降低用户事件集成的开发复杂度,EventBridge 将会根据各种应用场景构建事件应用模板,用户只需简单配置即可低成本集成。



如果对事件驱动架构和阿里云 EventBridge 产品有兴趣,欢迎加入钉钉群和我们交流。可搜索群号31481771, 加入 EventBridge 用户交流群


1624953046523-447ffdb0-4426-462f-b2b2-d2d9605cecb6.png

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
18天前
|
消息中间件 监控 测试技术
事件驱动架构是一种编程范式
【10月更文挑战第7天】事件驱动架构是一种编程范式
103 65
|
13天前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
|
18天前
|
存储 设计模式 监控
事件驱动架构的实现方式?
【10月更文挑战第7天】事件驱动架构的实现方式?
34 7
|
2月前
|
设计模式 开发框架 前端开发
在开发框架中实现事件驱动架构
【9月更文挑战第2天】事件驱动架构(EDA)通过事件机制让组件间解耦交互,适用于动态扩展和高响应性的系统。本文提供一个基于Beego框架实现事件驱动的示例,通过事件管理器注册和触发事件,实现用户注册和登录时的不同处理逻辑,展示了其在Web应用中的灵活性和高效性。
80 5
|
3月前
|
弹性计算 监控 数据挖掘
事件驱动架构的优势与应用:深度解析与实战应用
【8月更文挑战第17天】事件驱动架构以其松耦合、可扩展性、异步处理、实时性和高可靠性等优势,在实时数据处理、复杂业务流程、弹性伸缩和实时通信等多个领域展现出巨大的应用潜力。通过合理应用事件驱动架构,可以构建灵活、可扩展和可维护的系统架构,满足不断变化的业务需求和技术挑战。对于开发者而言,深入理解事件驱动架构的核心概念和优势,将有助于更好地设计和实现高质量的软件系统。
|
3月前
|
消息中间件 缓存 Kafka
混合云中的事件驱动架构
混合云中的事件驱动架构
40 4
|
3月前
|
消息中间件 Kafka Java
Spring 框架与 Kafka 联姻,竟引发软件世界的革命风暴!事件驱动架构震撼登场!
【8月更文挑战第31天】《Spring 框架与 Kafka 集成:实现事件驱动架构》介绍如何利用 Spring 框架的强大功能与 Kafka 分布式流平台结合,构建灵活且可扩展的事件驱动系统。通过添加 Spring Kafka 依赖并配置 Kafka 连接信息,可以轻松实现消息的生产和消费。文中详细展示了如何设置 `KafkaTemplate`、`ProducerFactory` 和 `ConsumerFactory`,并通过示例代码说明了生产者发送消息及消费者接收消息的具体实现。这一组合为构建高效可靠的分布式应用程序提供了有力支持。
104 0
|
4月前
|
消息中间件 监控 Java
在Java项目中实现事件驱动架构
在Java项目中实现事件驱动架构
|
4月前
|
消息中间件 监控 Java
使用Kafka实现分布式事件驱动架构
使用Kafka实现分布式事件驱动架构
|
4月前
|
Java 开发者 Spring
深入理解Spring Boot中的事件驱动架构
深入理解Spring Boot中的事件驱动架构