应用场景

云工作流(CloudFlow)用于协调分布式应用和微服务以构建复杂多步骤的、异步调用任务以及长时间运行的业务流程。

事务型业务流程编排

复杂的业务场景如电商网站、酒店和机票预定等应用通常要访问多个远程服务,并且对操作事务性语义(即所有步骤全部成功或全部失败,不存在中间状态)有较高要求。在流量较小、数据存储集中的应用中,事务性可以通过关系型数据库提供的ACID特性满足。然而在大流量场景下,为了高可用和可扩展性,业务通常选择向微服务的分布式架构方向演进。在这样的架构中提供多步骤事务性的保证通常需要引入队列和数据库来持久化消息以及展现流程状态,这类系统的开发和运维会给业务方带来额外的成本和负担。使用云工作流可以提供长流程分布式事务保证,帮助您聚焦于自身业务逻辑。

关于如何使用云工作流编排事务型业务流程,请参见分布式多步骤事务

多媒体文件处理

使用云工作流可以帮助您将多个任务,如转码、截帧、人脸识别、语音识别、审核上传等,编排成一个完整的处理流程,通过函数计算,提交媒体处理(IMM)任务,或自建处理器,产出一个符合业务需求的输出。各任务的执行错误异常可以被可靠的重试,较大地提升多媒体任务处理吞吐量。

基因数据处理

云工作流可以将多个批量计算分布式作业串联或并行编排,可靠地支持执行时间长、并发量大的大规模计算。如基因数据分析中将基因序列对齐,将所有染色体并行做变异分析,最终将各染色体数据聚合产出结果。云工作流根据指定的依赖关系提交不同CPU、内存、带宽规格的批量计算作业,提升执行可靠性,提高资源利用率,优化成本。

数据处理流水线

使用云工作流可以快速搭建一个高可用的数据处理流水线(Data Pipeline)。例如,来自不同数据源的计量数据被收集到日志服务,函数计算的定时器定时触发云工作流执行,云工作流利用函数计算对多个Shard的计量数据做并行处理,并将结果分别写回日志服务;然后可以将所有Shard产生的文件进行聚合,写入表格存储,最后为您生成账单。云工作流支持对流程中的单个步骤失败进行重试,降低流程失败概率。云工作流支持动态并行任务执行,实现数据处理能力的高可扩展性。

image

自动化运维

自动化运维面临着步骤繁琐、时间长短不一、单机脚本可靠性低、依赖复杂等常见的挑战,另外进度无法可视化。云工作流+函数计算的流程可以很好地应对这些挑战。例如自动化部署软件,从构建Docker容器、上传容器镜像,开始并追踪各节点下拉镜像并启动新版本镜像的容器,每一步函数产生的日志会被保存到日志服务可供查询分享。基于云工作流的自动化工具比单机运维脚本具有高可用、自带的错误处理机制和进度图形化的特点。