最IN的云原生架构,阿里云 Serverless 事件总线 EventBridge 重磅发布

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: Serverless 是云计算下一个10年的主要形态,通过大量端到端的整合和云服务的集成,能极大地提高研发效率。了解阿里云 Serverless 产品家族的最新进展,包括函数计算FC、Serverless应用引擎SAE和 Serverless事件总线EventBridge。

发布会传送门

产品详情页

EventBridge 简介

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

近年来,随着云原生和 Serverless 概念的深入人心,事件驱动再一次成为了云应用架构领域的热门词汇。在 2018 年,Gartner 评估报告将 Event-Driven Model 列为10大战略技术趋势之一,事件驱动架构(EDA)将成为未来微服务的主流。该报告同时做出了以下预言:

到 2022 年,事件通知的软件模型将成为超过 60% 的新型数字化商业的解决方案;
到 2022 年,超过 50% 的商业组织将参与到事件驱动的数字化商业服务的生态系统当中;
同年 5 月,云原生 CNCF 基金会托管了开源 CloudEvents 项目,该项目旨在用统一和规范的格式来描述事件,来加强不同的服务、平台以及系统之间的互操作性,事件在云原生大图中的重要性不言而喻。

与此同时,在阿里云上实践事件驱动架构却不是一件简单的事情:

阿里云的云产品,从 IaaS 到 PaaS,每天都有数以亿计的事件产生,但却没有一种简单和统一的方式来触达这些事件;

很多云产品有自建的事件中心,但没有采用统一的标准和规范来描述这些事件,用户无法用同样的方式来解释这些事件;

云上的的事件目前非常独立,无法形成规模效应,很难挖掘出有用的业务价值,只有充分发挥数据的规模效应,建立起数据的血缘关系,我们才能更好的发掘出数据的价值;

目前事件应用的场景偏离线分析,因缺乏开箱即用的中心化事件处理能力,无法应用在在线业务的场景。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

为了解决这些问题,阿里云正式发布了最新云产品 EventBridge,一款无服务器事件总线服务,其使命是作为云事件的枢纽,以标准化的 CloudEvents 1.0 协议连接云产品和云应用,提供中心化的事件治理和驱动能力,帮助用户轻松构建松耦合、分布式的事件驱动架构;另外,在阿里云之外的云市场上有海量垂直领域的 SaaS 服务,EventBridge 将以出色的跨产品、跨组织以及跨云的集成与被集成能力,助力客户打造一个完整的、事件驱动的、高效可控的上云新界面。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

EventBridge 核心能力

作为一款全新的云产品,EventBridge 是完全面向云原生设计和架构的,EventBridge 提供的核心能力分为以下几类。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

集成与被集成

集成能力和集成度是产品的关键点,EventBridge 将以低成本甚至零成本,低代码甚至0代码,跨组织和跨云的方式去连接云产品、云应用以及SaaS应用。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

集成云产品

今天的阿里云,有数百个成熟的云产品,有数百万应用的计算实例,它们每天会产生亿级的云事件,但这些事件目前处于失控的状态,是一片尚未被挖掘的数据宝藏。EventBridge 将连接大部分阿里云的云产品,作为事件源或者事件目标,提高阿里云事件的中心化治理能力,充分挖掘云事件的业务价值;同时,通过一站式的云产品连接服务,帮助用户更好地上云和用云。

集成云应用

用户上云的最终目的是充分撬动云计算带来的技术红利,所以上云的过程不仅仅是 Rehost,还需要进行 Replatform 和 Refactor,EventBridge 提供丰富的集成能力,让应用更好地连接和使用云服务。目前用户可以通过 EventBridge 官方的 HTTP 接口、多语言客户端(Java、Golang、Python、C#、PHP)以及 CloudEvents 社区的开源客户端轻松接入阿里云的 EventBridge 生态。

集成第三方 SaaS

对于 SaaS,阿里云坚持被集成的战略,可以预计在阿里云上会成长出一批又一批优秀的 SaaS 提供商,EventBridge 将为 SaaS 提供便捷的方式融入阿里云生态体系,与阿里云一方云产品深度融合。

协调与驱动

Serverless 应用架构的最佳实践便是事件驱动,无论是传统的微服务还是函数计算,EventBridge 将极大地简化事件驱动架构的研发成本,海量的函数以及微服务将以事件的形式被有序协调。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

关于编排(Orchestration)和协调(Choreography),Gartner 报告中对比了两种架构的区别,通过请求驱动来组合和编排微服务和函数的方式带来了很多不必要的强耦合,而通过事件驱动的方式来协调微服务和函数,将是更彻底的解耦,提高程序的韧性,业务的开发也将变得更加敏捷和高效。

数据通道

EventBridge 另一个核心能力是为流式的数据承担通道的责任,通过 CloudEvents 规范和 Schema 注册表(Coming Soon)来统一描述这些数据,并提供基础的过滤和转换的能力,在不同的数据仓库之间、数据处理程序之间、数据分析和处理系统之间进行数据路由。

为此,EventBridge 即将上线 Connect 能力,通过大量的 Source 和 Sink Connector 将用户的数据在云上流动起来。

EventBridge 基本模型

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

如上图所示,事件从事件源被投递至事件总线,经过规则的过滤和转换处理,最终被投递给多种事件目标,完成事件的处理。

事件

事件,代表了事情的发生、条件和状态的变化。在云的时代,事件是无处不在的,云的任何一个产品、一个应用、甚至一个资源都在时刻发生事件,它们称为事件源。事件源来自不同的组织和环境,事件源对事件将被如何响应没有任何预期,事件目标通过中心化的事件总线来订阅事件,依赖事件具备的自描述能力,来低成本地理解和处理事件。

EventBridge 中的事件通过云原生事件标准 CloudEvents 来描述,CloudEvents 是 EventBridge 生态系统中的一等公民。EventBridge 采取 CloudEvents 的主要原因为:

采取统一的云原生事件标准,有助于统一表达来自不同事件源中的事件,提升事件驱动程序的互操作性。
标准化,用户没有厂商锁定的担忧,基于 CloudEvents 的事件驱动程序可以在不同云之间随意移植。
CloudEvents 具备非常简单的结构,如下 JSON 文本为一个 CloudEvents 事件。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

阿里云 EventBridge 目前支持两类事件:自定义事件和阿里云服务事件。

阿里云服务事件:具备预先定义好的 Schema,来自各个云产品关于用户资源状态变更的事件,比如云视频会议事件,包括会议开始、结束、成员变更等会议事件。
自定义事件:用户可以使用 CloudEvents 社区的开源 SDK、EventBridge 官方的多语言轻量级 SDK、EventBridge Connect、WebHook等(后两种能力即将开放)方式投递自定义事件至 EventBridge,丰富的事件源接入方式助力客户快速打造事件驱动的 Serverless 应用程序。

事件总线

事件总线是一个抽象概念,是事件的载体,阿里云 EventBridge 的事件总线具备用户纬度的多租户能力,每个总线有唯一的资源 ARN。事件发送至事件总线,随后被事件规则路由至事件目标。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

如上图所示,阿里云的事件总线分为两类:

默认事件总线:用户开通 EventBridge 时自动创建 default 总线,所有接入的云服务事件都将主动投递至 default 上,对于用户来说云产品的事件是开箱即用的。
自定义事件总线:用户自行创建,用来接受自定义的事件,是用户研发事件驱动架构程序的必备资源。

规则

规则对事件总线中的事件进行过滤,过滤成功的事件经过一定的转换路由到规则中指定的阿里云目标服务或者HTTP网关。

EventBridge 中的规则有两端,一端连接事件总线,一端连接事件目标,并且是一对多的关系,每个规则最多关联 5 个事件目标。同时,规则中的过滤和转换组件,为用户提供了轻量级的事件过滤和转换的能力。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

规则中过滤能力由事件模式(Event Pattern)提供,当前支持的过滤模式包含:

  • 指定值匹配
  • 前缀匹配
  • 后缀匹配
  • 除外匹配
  • 数值匹配
  • 数组匹配
  • 以及复杂的组合逻辑匹配

规则中的转换用于将 CloudEvents 转变事件目标接受的格式,EventBridge 提供了四种转换器:

  • 完整事件:不做转换,直接投递原生 CloudEvents。
  • 部分事件:通过 JsonPath 语法从 CloudEvents 中提取部分内容投递至事件目标。
  • 常量:事件只起到触发器的作用,投递内容为常量。
  • 模板转换器:通过定义模板,灵活地渲染自定义的内容投递至事件模板。

EventBridge 产品架构

EventBridge 作为一款全新的云产品,全面采用了云原生技术栈,如下图所示,EventBridge 搭建在容器服务提供的 Kubernetes 集群之上,设计了一整套基于 K8S 的 DevOps 研发体系,研发阶段实践 GitOps 提高交付和迭代效率,测试阶段配备了大量的自动化测试,发布阶段有完善的灰度机制,运维阶段依赖 K8S 的自愈能力大幅度降低运维成本,并通过 Prometheus ,SLS 等产品建立了云原生的监控体系。

除此之外,EventBridge 依赖 RocketMQ 提供核心的事件存储能力,RocketMQ 作为阿里自研的消息中间件,经历过多次双11流量高峰的考验和无数个阿里内部业务场景的验证,为 EventBridge 提供了高 SLA 的,高性能的事件传输服务。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

EventBridge 典型场景

在本章节,我们根据 EventBridge 当前以及具备的能力,列举三个典型的案例。随着 EventBridge 生态的丰富,未来可以挖掘更多的业务场景,我们后续也会出一系列的样板间项目,方便用户快速将事件驱动的方式契合大盘自己的业务场景中。

场景 1:360 度业务全景

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

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

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

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

场景 2:网页截图制作每日快报

场景 1 是一个比较复杂的案例,再来看一个可以快速上手的场景:使用 EventBridge 驱动函数计算帮我们进行网页截图,并通过邮箱发送出去,制作每日快报。

  • 首先,业务系统通过分析,计算出今日有价值的头条新闻,并把新闻 URL 地址通过 Event,发送给EventBridge;
  • EventBridge 接收到 Event 后,根据预配置的规则,开始触发函数计算的网页截图程序进行工作;
  • 函数计算接收到 Event 后,自动创建资源,并运行网页截图程序进行截图,保存到 OSS,同时通知 EventBridge 截图完成,然后自动释放资源;
  • EventBridge 接收到函数计算完成的 Event 后,根据预配置的规则,开始触发邮箱服务,将网页截图以邮件的形式发送给目标用户;

从这个例子中,可以发现:Serverless 和 EventBridge,是云原生时代一个非常强有力的组合。通过事件去驱动函数计算,让业务按需调度资源,不仅可以预防突发流量带来的稳定性风险,还可以最大程度的降低成本,按需付费。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

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

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

  • 仓库的家具商品入库事件、门店的顾客进店事件通过 EventBridge 实时流转到在线分析系统,让我们知道现在店内有哪些家具商品,进店顾客的家具偏好是什么,并推送给商场门店的导购员或则广告屏,帮助门店更好的下单转化;
  • 顾客在线电子支付后,订单信息发送到 EventBridge,并触发第三方物流公司进行送货上门;
  • 第三方物流公司,可以实时的将家具的位置信息通过 EventBridge 推送给移动端APP,客户可以通过 APP 很方便的实时了解到自己的家具到哪了,预估还需要多久送到家;
  • 所有这些通过EventBridge流转的在线业务事件数据,最终通过EventBridge流转到离线分析系统,自动生成业务报表,供管理层做绩效考核或则运营决策。
    9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

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

EventBridge 未来规划

作为云上的事件枢纽,EventBridge 最核心的能力就是连接。所以,未来EventBridge会重点建设生态网络。无论是在线业务场景、IoT 场景、还是大数据场景,都能够通过低代码甚至 0 代码的方式,集成到 EventBridge。如果你的应用部署在私有 IDC 机房,或则其他云厂商环境,我们也都将提供安全可靠的集成方式。

当然,云时代下这么庞大的神经中枢系统,不是一日可以建成的,需要大家一起的努力。所以未来,EventBridge 同时会致力于开源社区建设,也希望志同道合的朋友一起加入进来,成为云原生时代,Event-Driven Model 的第一批布道师。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
2天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
19 5
|
4天前
|
Kubernetes 负载均衡 Cloud Native
云原生架构下的微服务治理策略
随着云原生技术的不断成熟,微服务架构已成为现代应用开发的主流选择。本文探讨了在云原生环境下实施微服务治理的策略和方法,重点分析了服务发现、负载均衡、故障恢复和配置管理等关键技术点,以及如何利用Kubernetes等容器编排工具来优化微服务的部署和管理。文章旨在为开发者提供一套实用的微服务治理框架,帮助其在复杂的云环境中构建高效、可靠的分布式系统。
17 5
|
4天前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型浪潮中,企业纷纷拥抱云计算,而云原生架构作为其核心技术支撑,正引领着一场深刻的技术变革。本文聚焦于云原生环境下微服务架构的治理策略与实践,探讨如何通过精细化的服务管理、动态的流量调度、高效的故障恢复机制以及持续的监控优化,构建弹性、可靠且易于维护的分布式系统。我们将深入剖析微服务治理的核心要素,结合具体案例,揭示其在提升系统稳定性、扩展性和敏捷性方面的关键作用,为读者提供一套切实可行的云原生微服务治理指南。 ####
|
4天前
|
消息中间件 缓存 Cloud Native
云原生架构下的性能优化实践与挑战####
随着企业数字化转型的加速,云原生架构以其高度解耦、弹性伸缩和快速迭代的特性,成为现代软件开发的首选模式。本文深入探讨了云原生环境下性能优化的关键策略与面临的主要挑战,通过案例分析,揭示了如何有效利用容器化、微服务、动态调度等技术手段提升应用性能,同时指出了在复杂云环境中确保系统稳定性和高效性的难题,为开发者和架构师提供了实战指南。 ####
16 3
|
4天前
|
运维 Kubernetes Cloud Native
深入理解云原生架构:从理论到实践
【10月更文挑战第38天】本文将引导读者深入探索云原生技术的核心概念,以及如何将这些概念应用于实际的软件开发和运维中。我们将从云原生的基本定义出发,逐步展开其背后的设计哲学、关键技术组件,并以一个具体的代码示例来演示云原生应用的构建过程。无论你是云原生技术的初学者,还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和实操指南。
|
4天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用架构中的实践与思考
【10月更文挑战第38天】随着云计算的不断成熟和演进,云原生(Cloud-Native)已成为推动企业数字化转型的重要力量。本文从云原生的基本概念出发,深入探讨了其在现代应用架构中的实际应用,并结合代码示例,展示了云原生技术如何优化资源管理、提升系统弹性和加速开发流程。通过分析云原生的优势与面临的挑战,本文旨在为读者提供一份云原生转型的指南和启示。
16 3
|
4天前
|
运维 Kubernetes Cloud Native
云原生技术在现代应用架构中的实践与挑战####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在实际项目中的应用案例,分析了企业在向云原生转型过程中面临的主要挑战及应对策略。不同于传统摘要的概述性质,本摘要强调通过具体实例揭示云原生技术如何促进应用的灵活性、可扩展性和高效运维,同时指出实践中需注意的技术债务、安全合规等问题,为读者提供一幅云原生技术实践的全景视图。 ####
|
1月前
|
JavaScript 调度
Vue事件总线(EventBus)使用指南:详细解析与实战应用
Vue事件总线(EventBus)使用指南:详细解析与实战应用
57 1
|
3月前
|
JavaScript
Vue学习之--------全局事件总线(2022/8/22)
这篇文章介绍了Vue中全局事件总线(GlobalEventBus)的概念和使用方法,它允许不同组件之间进行通信。文章通过图解和代码实例详细解释了如何安装全局事件总线、在组件中接收和提供数据,以及如何在组件销毁前解绑事件,以避免潜在的内存泄漏问题。
Vue学习之--------全局事件总线(2022/8/22)

热门文章

最新文章

相关产品

  • 函数计算