微软Azure再升级,为无服务器事件而生的Event Grid

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介:

微软Event Grid无疑是对无服务器选项的一大重要补充,可提供一套可构建大规模分布式应用程序的后台,且将管理与编排工作量控制在最低水平。另外,也为微软的无服务器工具提供了一套事件路由结构,从而简化其它Azure服务以及外部来源的相关事件订阅机制。

微软Azure再升级,为无服务器事件而生的Event Grid

无服务器计算作为现代云应用架构的基础,具有摆脱底层基础设施——甚至是网络因素——以减少应用编排工具管理负担等优势。但微软Auzre Functions这类无服务器模式本身就存在局限性,即要求以响应事件的方式启动。如果未收到信号,则不会启动。

Azure事件使用方法

那么我们该如何捕捉事件?传统事件队列隶属于分布式体系架构,但其问题在于往往难以确保事件的正确传送。在理想情况下,信息应符合幂等要求,即进行且仅进行一次传送以保证交付。但这在实际场景中难以实现,因此大家必须采用相应的系统来完成这项任务。如此一来,我们即可利用后端代码清理日志并存储数据,并利用事件与消息ID来标记重复内容。

利用Event Grid,微软方面建立起一套发布与订阅系统,并与其它Azure服务通知机制集成起来。现在各事件成为一级对象,而Event Grid配置可实现事件过滤并将其定向至正确的服务。凭借着可扩展性,也能够对接简单架构以及包含数千个来源的复杂环境。

简单来讲,Event Grid是一款负责将Azure内各来源的事件通知路由至Azure Functions的工具。其能够将Azure环境转化为通知体系,而且与传统服务总线不同,Event Grid中不存在传统工作流模式:当某一事件发生时,会启动对应的函数,并触发与之相关的应用。

在应用程序中使用Event Grid

Event Grid最初只支持部分Azure服务,包括来自各基础设施服务(例如Event Hubs)以及Azure订阅的通知。而最为有趣的是,大家可以将Event Grid与Azure Functions捆绑起来以共同配合其它服务。例如,微软允许大家在blob存储容器当中使用事件以触发对应Azure函数,用以在每一次图片上传时运行机器学习支持型图像识别。

通过上述实例,可以看到其最重要的能力是将原本松散耦合的各项操作聚合在一起。无需整体应用,您只需要上传服务以及图像分析功能即可。这种关联由您的Azure存储帐户提供,意味着当图像被上传至指定的blob容器时,相关事件会被传送至Event Grid。此后,Event Grid利用过滤机制获取特定消息,并将其作为输入内容传递给某一函数——即刚刚上传完成的图片文件的链接。

这种能力相信能够得到大家的广泛青睐,特别是对于希望将Azure作为自主平台即服务应用构建工具的用户。利用Event Grid配合Azure Functions,您不再需要管理大量事件处理程序以支持无服务器代码。相反,各函数会在事件符合条件时自行触发,并在处理完成后被丢弃。

另外,现有Azure服务(例如Logic Apps)使用大量计算资源进行事件轮询。但Event Grid能够有效克服这一问题。随着服务被迁移至Event Grid当中,相关执行效率将得到显著提升,进而降低计算需求以及应用支持成本。

将Event Grid纳入新的无服务器容器化Azure

凭借着Logic Apps与Flow,微软的无服务器模式不再局限于Auzre之内。这意味着大家可以利用Event Grid触发Flow操作,将来自电子商务应用的馈送信息转发至Dynamics 365,从而根据实时情况更新客户记录或快速为特定客户提供产品报价。另外,大家也可以在Azure的物联网平台内使用Event Hubs以实现物联网设备事件推送——这不仅能够快速根据需求实现数据推送,同时也可节约传输带宽并避免因物联网中枢架构过于复杂而导致的高成本问题。

作为微软无服务器模式的核心方案,大家可以利用Azure Functions构建起理想的应用体系——通过Event Grid从Azure服务处获取数据源,触发函数而后利用Azure容器实例API启动负责运行复杂服务的容器,从而将数据处理与底层事件触发机制关联起来。这意味着用户将不再需要由Kubernets实现的容器资源编排机制。利用这类架构,您不再需要建立昂贵的永久性虚拟基础设施,而仅在服务运行时支付开销。

而着眼于未来,也许无基础设施应用将进一步取代无服务器应用,成为这场升级之旅的最终目标。 


本文作者:核子可乐译

来源:51CTO

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
弹性计算 双11 开发者
阿里云ECS“99套餐”再升级!双11一站式满足全年算力需求
11月1日,阿里云弹性计算ECS双11活动全面开启,在延续火爆的云服务器“99套餐”外,CPU、GPU及容器等算力产品均迎来了全年最低价。同时,阿里云全新推出简捷版控制台ECS Lite及专属宝塔面板,大幅降低企业和开发者使用ECS云服务器门槛。
157187 23
|
1月前
|
人工智能 安全 Linux
|
1月前
|
弹性计算 大数据 双11
阿里云ECS“99套餐”再升级!双11一站式满足全年算力需求
弹性计算双11爆款清单来袭,感恩回馈好礼,优惠惊喜不断!
|
2月前
|
移动开发 JavaScript 前端开发
HTML5 服务器发送事件(Server-Sent Events)详解
**服务器发送事件(Server-Sent Events, SSE)** 是一种用于构建单向实时通信的技术,允许服务器主动向客户端(通常是浏览器)推送更新。SSE 提供了一个简单的 API,非常适合实时应用,如新闻更新、天气变化、社交媒体通知等。SSE 基于 HTTP 协议,通过长连接实现数据传输。其主要优点包括简洁的 API、持久连接和自动重连功能。大多数现代浏览器都内置了对 SSE 的支持。通过简单的服务器端和客户端代码,可以轻松实现数据的实时推送和接收。
|
3月前
|
存储 弹性计算 运维
自动化监控和响应ECS系统事件
阿里云提供的ECS系统事件用于记录云资源信息,如实例启停、到期通知等。为实现自动化运维,如故障处理与动态调度,可使用云助手插件`ecs-tool-event`。该插件定时获取并转化ECS事件为日志存储,便于监控与响应,无需额外开发,适用于大规模集群管理。详情及示例可见链接文档。
|
2月前
|
并行计算 Ubuntu 算法
Ubuntu18 服务器 更新升级CUDA版本 pyenv nvidia ubuntu1804 原11.2升级到PyTorch要求12.1 全过程详细记录 apt update
Ubuntu18 服务器 更新升级CUDA版本 pyenv nvidia ubuntu1804 原11.2升级到PyTorch要求12.1 全过程详细记录 apt update
130 0
|
3月前
|
消息中间件 弹性计算 运维
阿里云ECS事件通知产品详解
介绍阿里云ECS事件通知产品的详情和使用案例,包括控制台、OpenAPI、调试等。
|
4月前
|
安全 C#
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
168 1
|
4月前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
78 0
|
4月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题