应用场景
工作流主要用来协调分布式应用以构建复杂的、多步骤的、有状态的(Stateful)和长时间运行的业务流程。
ETL数据处理流水线
一些数据处理系统中,常常需要周期性/计划性地处理庞大的数据量,使用工作流可以快速搭建一个高可用的数据处理流水线。例如,专注L4级别无人驾驶技术研发的企业在进行无人驾驶技术研发依赖大量的路测试验数据积累,高效进行路测、快速对路测数据进行处理来指导模型的更新迭代是这类场景的核心诉求。路测过程中会有大量数据产生,而对这些数据的处理流程则复杂多变,即使对于同一批数据,不同的业务小组也会有不同的使用及处理方式。使用工作流可以有效管理不同的数据处理流程,降低人为介入频率,降低成本。
多媒体文件处理
工作流同样适用多任务编排,比如多媒体文件如转码、截帧、人脸识别、语音识别、审核上传等各类处理。用户可以编排成一个完整的处理流程,通过函数计算提交媒体处理任务(或自建处理云函数),产出一个符合业务需求的输出。各任务的执行错误异常可以被可靠的重试,大大提升多媒体任务处理吞吐量。
自动化运维
自动化运维常见有步骤繁琐、时间长短不一、单机脚本可靠性低、依赖复杂、人工效率低等常见的挑战,另外进度无法可视化。工作流可以很好的解决这类问题。例如自动化的软件部署从构建 Docker 容器、上传容器镜像,开始并追踪各节点下拉镜像并启动新版本镜像的容器,每一步云函数产生的日志会被保存到日志服务可供查询分享。基于工作流的自动化运维比单机运维脚本具有高可用、自带的错误处理机制和进度图形化的特点。
机器学习模型训练
机器学习中常常要对模型进行训练,模型训练一般过程为:首先读取原始训练数据;对原始数据进行数据处理如数据清洗等;对数据进行转换;提交数据到机器学习平台进行模型训练;模型训练完毕后得到模型参数数据;应用模型进行预测测试模型效果。整个模型训练的过程可以使用工作流来完成任务编排。