基于AWS Step Functions的通用负载编排框架
前言
基于AWS Step Functions的通用负载编排框架是亚马逊云科技专业服务团队Data Analytics Foundations数据分析基座方案的系列博客之一。
背景
在数据工程的实现中,对工作负载合理高效的编排可以确保负载按照预定的工作流程执行。理想的数据平台上的编排工具能兼容多种工作负载、处理顺序及事件依赖、稳定的条件检查、异常检测与断点重试、以及便捷的开发接口。目前市场上有许多成熟的商用或者开源的工具可以供客户选择使用,其云上部署方式大多是通过云主机或者容器来承载运行时程序。为了客户更好的使用无服务器化的方式对云上计算负载例如Amazon EMR、Amazon Redshift、AWS Glue、AWS Lambda等进行工作流编排。本文探讨一种基于AWS Step Functions的解耦设计来实现通用负载编排框架的模式。
方案概要
AWS Step Functions 是一项可视化的工作流服务,可通过状态机为载体帮助开发人员使用AWS 服务来构建分布式应用程序、自动化流程、编排微服务以及创建数据和机器学习管道。利用AWS Step Functions可以从正在运行的状态机开始新的状态机执行这一特性,可以构建基于AWS Step Functions的通用负载编排框架(Workload Orchestration Framework, WOF),使用嵌套工作流以实现降低主要流程的复杂性。WOF由外层基于配置和事件驱动的框架或者顺序工作流(Workflow)和内层负载操作(Workload Operator)的AWS Step Functions状态机(State Machine)构成。负载操作状态机负责调用亚马逊云科技的计算或分析负载,包括但不限于Amazon EMR、Amazon Redshift、Amazon Athena、AWS Glue、AWS Lambda。外层的顺序工作流状态机规划负载执行顺序、条件检查和处理异常。为了更灵活的实现工作流,本方案开发了基于配置和Amazon EventBridge事件驱动的编排框架,可以通过配置文件而不是修改AWS Step Functions的JSON定义来编排工作流。
图一,技术架构
实现方法
负载操作状态机
对应每一种数据处理的工作负载,创建一个执行预期任务的Amazon Step Functions状态机,例如Amazon Athena查询的工作负载。
图二,Athena查询负载操作状态机
工作流状态机
WOF框架预设执行顺序工作流的状态机,满足简单的ETL工作负载编排需求。根据湖仓ETL常见的分层处理模式,实现分层依赖,同层并发。例如可以在Task.Dmt2Pub层使用适配Amazon Athena的负载操作状态机完成轻量的数据任务。
图三,顺序工作流状态机
基于配置和事件驱动的编排框架
Amazon EventBridge收集所需的 AWS Step Functions事件、自定义事件或计时器事件,通过Event Rule调用事件总线处理程序。事件总线处理程序负责启动流程、关闭流程或将候选步骤作为事件消息发送到工作负载队列中。工作负载处理程序接收来自工作负载队列的消息,并评估每个步骤的先决条件,以确定是否将候选步骤作为任务启动。
图四,基于配置和事件驱动的编排框架
讨论
基于AWS Step Functions的通用负载编排框架的优势包括:使用亚马逊云科技的无服务器Serverless技术;云原生的AWS Step Functions对亚马逊云服务的无缝集成;解耦的负载操作组件可重用;灵活的基于配置和事件驱动的触发机制。
总结
通过实现基于AWS Step Functions的通用负载编排框架WOF,客户可以在亚马逊云中自定义分离的负载操作,再使用顺序工作流状态机或者基于配置和事件驱动的框架定义流程,实现定期批处理作业或事件驱动任务。
基于AWS Step Functions的通用负载编排框架WOF已作为单独的功能模块整合到亚马逊云科技专业服务团队的Data Analytics Foundations数据分析基座方案中,如您需要了解Data Analytics Foundations数据分析基座的详细内容或有其它建议或经验,欢迎联系我们。
本篇作者
相关文章
- Jgit的使用笔记
- 利用Github Action实现Tornadofx/JavaFx打包
- 叹息!GitHub Trending 即将成为历史!
- 微软软了?开源社区讨论炸锅,GitHub CEO 亲自来答
- GitHub Trending 列表频现重复项,前后端都没去重?
- Photoshop Elements 2021版本软件安装教程(mac+windows全版本都有)
- (ps全版本)Photoshop 2020的安装与破解教程(mac+windows全版本都有)
- (ps全版本)Photoshop cc2018的安装与破解教程(mac+windows全版本,包括2023
- 环境搭建:Oracle GoldenGate 大数据迁移到 Redshift/Flat file/Flume/Kafka测试流程
- 每个开发人员都要掌握的:最小 Linux 基础课
- 来撸羊毛了!Windows 环境下 Hexo 博客搭建,并部署到 GitHub Pages
- 超实用!手把手入门 MongoDB:这些坑点请一定远离
- 【GitHub日报】22-10-09 zustand、neovim、webtorrent、express 等4款App今日上新
- 【GitHub日报】22-10-10 brew、minio、vite、seaweedfs、dbeaver 等8款App今日上新
- 【GitHub日报】22-10-11 cobra、grafana、vue、ToolJet、redwood 等13款App今日上新
- Photoshop 2018 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2017 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2020 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2023 资源免费下载(mac+windows全版本都有,包括最新的2023)
- 最新版本Photoshop CC2018软件安装教程(mac+windows全版本都有,包括2023