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

微软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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/231026

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。