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

举报
华为云PaaS服务小智 发表于 2022/03/07 15:51:37 2022/03/07
【摘要】 华为元戎底座持续加持技术发展。

企业应用微服务架构向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合入的PR2K 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规范产品化案例,并在社区内部共享。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。