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

服务端思维

共 3507字,需浏览 8分钟

 ·

2021-07-17 19:18

点击上方“服务端思维”,选择“设为星标

回复”669“获取独家整理的精选资料集

回复”加群“加入全国服务端高端社群「后端圈」


作者 | 尘央
出品 | 阿里巴巴中间件


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

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


美好的未来,骨感的现实

Aliware


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

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


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

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

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



EventBridge 事件总线基本模型

Aliware


为了解决这些现实问题,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 产品包含几个基本概念:事件、事件总线、事件源、事件规则以及事件目标。


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

1

典型场景

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

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


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


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

场景 2:360 度业务全景


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

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


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

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


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

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


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


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


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


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



发布半年,what's new

Aliware


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

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


— 本文结束 —


● 漫谈设计模式在 Spring 框架中的良好实践

● 颠覆微服务认知:深入思考微服务的七个主流观点

● 人人都是 API 设计者

● 一文讲透微服务下如何保证事务的一致性

● 要黑盒测试微服务内部服务间调用,我该如何实现?



关注我,回复 「加群」 加入各种主题讨论群。



对「服务端思维」有期待,请在文末点个在看

喜欢这篇文章,欢迎转发、分享朋友圈


在看点这里
浏览 38
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报