写点什么

CNCF Serverless 工作流社区携手华为云 FunctionGraph,开拓 Serverless 编排新时代

  • 2022 年 3 月 07 日
  • 本文字数:3260 字

    阅读完需:约 11 分钟

企业应用从微服务架构向 Serverless(无服务器)架构演进,开启了无服务器时代,面向无服务器计算领域的 Workflow 也应运而生。CNCF 为了给业界提供一种标准方法,建立 100%由社区贡献者驱动的 Serverless Workflow 开源社区,携手社区伙伴,以更全面的规范、更丰富的元素,赋能企业产品化,并有效解决厂商锁定等问题,推进无服务器计算领域的发展。


华为云作为 CNCF Serverless Workflow 社区的官方合作伙伴,联合 2012 实验室华为元戎团队在函数工作流优化、版本兼容等多方面提供了优质高效的改进建议。在 2021 年 10 月的 KubeCon NA 2021(North America)活动中,Tihomir Surdilovic 社区领导人介绍了 CNCF Serverless Workflow 的开源合作伙伴,华为是 2021 年度 CNCF Serverless Workflow 社区贡献排名榜前五中唯一的国内厂商。

工欲善其事,必先利其器

许多 Serverless 应用程序是由系列函数组成,这些函数可能会根据不同的事件触发器依次执行、并行执行或在分支中执行,我们称之为函数工作流。为了使 Serverless 平台正确执行 Serverless 应用程序的函数工作流,应用程序开发人员需要对系列函数进行编排,如何支持应用开发人员简单快速进行函数编排,需要定义一套完整、易用的工作流规范。


就像在微服务架构中,只需要编写 Workflow 定义的 JSON,就可以完成对不同业务流程的调度、编排与自动化,同时国际工作流管理联盟(Workflow Management Coalition,WfMC)还对微服务的 Workflow 定义了一套完整的参考规范,以使不同厂商的微服务工作流产品之间可以平滑地交换工作单元。


当下,Serverless 大行其道,各个大厂纷纷下场布局。Workflow 作为其工具链中的一部分,每个厂商都有一套自己的服务接口,当某一厂商暂停服务或者用户想要更换厂商时,这种各自为政的模式导致用户陷入被厂商锁定、移植困难、成本高甚至需要重构系统的艰难境地。


因此,如同 WfMC 为微服务的 Workflow 定义参考规范一样,Serverless Workflow 也急需一种完整的标准方法和参考规范来打破各大厂商闭门造车的局限。

集众人之长,成 Serverless 之利

为了给业界提供一种标准方法,CNCF 在 2020 年 7 月成立了 Serverless Workflow 社区,与社区贡献者一起共同构建、完善 Serverless Workflow 规范,以促进 Serverless 应用程序在不同厂商平台之间的可移植性。该社区的开源项目包括:基于 DSL 的工作流规范、为编程语言提供 SDK 等,同时与 CNCF 其他项目也有深度的合作,比如 CloudEvents, OpenAPI 等。


CNCF Serverless Workflow 规范针对无服务技术领域,所以关注点会在事件驱动应用、函数或微服务。CNCF Serverless Workflow 规范是一种用于微服务、事件和函数编排的工作流语言规范,可以通过 YAML 或 JSON 的格式描述和定义工作流,具有以下优势:

基于通用的、声明式的思想提炼语言,更容易表达

目前,工作流语言分为四个类型(如下图所示),CNCF Serverless Workflow 规范是一种基于通用的、声明性的思路提炼出的工作流规范,且支持通过 YAML 或 JSON 的格式描述和定义工作流,更容易表达像 functions, events, retries 这些无服务器技术领域的元素。

四类工作流语言

支持强大的、业界通用的控制流逻辑

CNCF Serverless Workflow 规范本身提供了非常强大的控制流逻辑,包括了大多数业界支持的核心功能,如顺序执行,以便用户可以定义流水线。在顺序执行的基础上,用户也可以定义并行的执行,如并行调用函数或微服务。另外,也支持使用不同种类的循环结构执行数据库循环调用之类的工作流。此外,重试、错误处理、工作流的手工干预,还有诸如等待和恢复之类的标准能力都被 CNCF Serverless Workflow 的规范所支持。


为解决实践中业务级的问题,CNCF Serverless Workflow 规范增强了诸多重要功能:

  • 自动重试、密钥和常量;

  • 定义可插拔的表达语言,以便用户可以插入自己选择的表达语言;

  • 不同类型的超时,如全局超时或分支超时等;

  • 短时和长时工作流的支持;

  • 工作流执行期间的补偿处理,如撤销已经成功完成的工作或状态;

  • 休眠,如等待某种事件或状态。


此外,CNCF Serverless Workflow 规范还提供了继续属性的功能,针对工作流在达到云平台运行限制后被迫停止,用户可以编排继续属性,停止当前工作流实例,启动新的工作流实例执行停止前的状态。

工作流逻辑说明图示


提供自定义拓展能力

除了上述核心的控制流逻辑,CNCF Serverless Workflow 规范也提供了自定义扩展能力。目前社区规范提供两个拓展:关键性能指标和限流。


用户可以通过关键性能指标的扩展能力(如工作流的整体指标、事件的消费与生产指标、函数使用指标、工作流状态指标等)定义工作流,使用自定义指标衡量工作流的性能,对性能和成本进行增强。此外,用户也能够通过限流的拓展能力对调用进行速率的限制,这在无服务器领域尤为重要,比如函数调用并发的限制、调用事件数量的限制、工作流状态总数的限制、工作流执行期间转换的限制等。

拓展能力说明图示


功能更全面,能支持更多复杂场景

CNCF Serverless Workflow Specification 支持更多元素,比如:CloudEvent、OpenAPI、AsyncAPI、GraphQL、gRPC 等开源事件和服务标准的集成。


  • 在功能方面,支持建模人工决策、定义超时和重试、定义并行执行逻辑和循环、做出基于数据或事件的决策、定义回调、编写强大的表达式、设置秘密和常量等。

  • 在应用方面,支持广泛的复杂场景,比如:网上车辆拍卖、网上订餐、付款处理、数据分析、错误通知、持续集成和部署等。


所以 CNCF Serverless 工作流规范更加全面,能支持更多复杂场景,也具备产品化更多新特性的潜力。基于 CNCF Serverless Workflow 规范本身的优势,不仅能有效避免厂商锁定,也能助力企业创新。目前,已有国内外企业关注并使用此规范产品化。

CNCF 群策群力,华为云竭诚尽智

从 KubeCon NA 2021 大会发布的各项数据可以看出,当前社区处于初期快速的成长阶段。2021 年全年,10 多家不同公司参与社区贡献,社区整体取得了显著的成就,工作流规范也已更新至 0.8 版本。


社区在 2021 全年总共有 500 合入的 PR、2K commits, CNCF Serverless Workflow Specification 有超过 200 个新星关注的增长,去年实现了新星关注的 100%增长,同时,社区的各类社交平台也受到广泛关注。在 2021 年 KubeCon EU 大会中,共计 300+人参与 CNCF Serverless Workflow 项目的办公时间;190+人参加了 2021 年 KubeCon NA 北美大会社区项目的办公时间。


作为社区官方合作伙伴,以及 CNCF Serverless Workflow 的开源合作伙伴,华为云联合 2012 实验室华为元戎团队,提供持续的技术能力支撑,主要贡献包括:

  1. Action 支持重试和错误处理已合并到 0.7 版本;

  2. 支持分支内部进行编排的想法,已被社区采纳,并规划在 0.9 版本中实现;

  3. 发现并提出规范版本之间兼容性不足的问题,社区确认从 0.8 版本之后会确保向后兼容;

  4. 帮助社区在 0.7 和 0.8 版本的发布做出了贡献,包括审查与规范相关的设计文档,审阅社区新提交的 PR(拉取请求)和 Issue.


作为 CNCF Serverless Workflow 社区官方合作伙伴,华为云与社区伙伴携手并进,共同推动无服务器计算领域的发展。

FunctionGraph Workflow——更上一层楼

在繁荣向上的社区生态中,华为云以 CNCF Serverless Workflow 规范为标准,联合 2012 实验室华为元戎团队共同打造了华为云 FunctionGraph Workflow,为用户提供函数流管理功能,并支持可视化拖拽式的函数编排。


在使用 FunctionGraph Workflow 时,用户无需进行二次开发,只要通过可视化拖拽的方式,即可将多个独立的无服务器函数用顺序、分支、并行等方式轻松快速地编排一个完整的应用。

FunctionGraph Workflow 可视化编排示意图


同时,FunctionGraph Workflow 提供监控和管理平台,用于诊断和调试应用,支持跟踪每次执行的状态,执行中的输入输出等,快速定位故障,用户可以轻松配置重试,处理异常分支。

FunctionGraph Workflow 监控管理平台示意图


目前,FunctionGraph Workflow 已应用于事务型业务流程编排、多媒体文件处理、数据处理流水线等场景。面向未来,华为云期望通过不断的技术突破,将华为云开源引擎打造为 CNCF Serverless Workflow 社区的默认实现,形成应用社区 Serverless Workflow 规范产品化案例,并在社区内部共享。


点击关注,第一时间了解华为云新鲜技术~​

发布于: 刚刚阅读数: 2
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
CNCF Serverless工作流社区携手华为云FunctionGraph,开拓Serverless编排新时代_json_华为云开发者社区_InfoQ写作平台