- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
DolphinScheduler新特性:Workflow-as-code
展开查看详情
1 . 2021 DolphinScheduler 新特性: Workflow-as-code 讲师: 钟嘉杰
2 .一切都来自一个关于多样性的思考
3 .目录 CONTENTS 01 什么是DolphinScheduler 02 什么是Workflow-as-code 03 为什么Workflow-as-code 04 怎么Workflow-as-code 怎么Workflow-as-code
4 .01 什么是DolphinScheduler 02 什么是Workflow-as-code 03 为什么Workflow-as-code 04 怎么Workflow-as-code 怎么Workflow-as-code
5 .01 什么是DolphinScheduler? DolphinScheduler分布式易扩展的可视化工作流任务调度平台 • 工作流任务调度平台:负责多工作流多任务的调度。在一定限制下,运行满足条件的任 务,并处理运行结果的系统 • 分布式:master 和 worker 可以有多个节点,能分布在不同机器,且能协同工作 • 易扩展:能简单自定义任务类型、数据源类型、告警 • 可视化:提供方便高效的工作流、任务编辑界面
6 .01 什么是DolphinScheduler 02 什么是Workflow-as-code 03 为什么Workflow-as-code 04 怎么Workflow-as-code 怎么Workflow-as-code
7 .02 什么是Workflow-as-code -- 概念 通过 code 的配置或编写,构建 DAG 的过程 • code 是广义的:可以是编程语言,如 Java、Python、JavaScript、Ruby;也可以是 配置文件 yml、json、conf • 并非一定要写代码:因为 code 是广义的,所以可以通过配置实现工作流 • DAG First:推崇使用于在有依赖关系的任务,即 DAG ,而非独立任务
8 .02 什么是Workflow-as-code -- 常见例之CI CI: GitHub Action、TravisCI、CircleCI。定义 CI 整体流程 Airflow
9 .02 什么是Workflow-as-code -- 常见例之Dockerfile Dockerfile:定义 Docker 构建过程,特别是 multi stage 定义
10 .02 什么是Workflow-as-code -- 常见例之任务调度 任务调度:Airflow、CWL、Prefect等任务调度框架
11 .01 什么是DolphinScheduler 02 什么是Workflow-as-code 03 为什么Workflow-as-code 04 怎么Workflow-as-code 怎么Workflow-as-code
12 .03 为什么Workflow-as-code -- 多样性思考的来源 什么是任务调度系统的第一性原理? DolphinScheduler分布式易扩展的可视化工作流任务调度平台 -- 来自官网定义 • 跑得起:将满足运行条件的任务调起来 • 跑得快:尽可能大并发和高吞吐 • 跑得稳:尽可能持续稳定运行 结论:可视化重要,但却是锦上添花。是 DolphinScheduler 容易出现多样性的点
13 .03 为什么Workflow-as-code -- 存活基础 表达性和易用性呈负相关 UI操作数 >> 核心API数 复杂系统界面要操作的点 + Expressiveness - Web Definition 会大于核心API定义,例如 - Conciseness + 保存、修改、删除时应该 有 dialog 询问是否确定操 作 Code Definition
14 .03 为什么Workflow-as-code -- 优势 灵活性高 动态生成 批量修改:重构workflow、业务分 当一定模板确定后,可动态生成多 拆、资源调整后的批量修改行为 个workflow 表达力强 能较轻松完成重复任务、web页面 较难表达任务 操作步骤少且固定 创建相同workflow会比web页面步 骤少,且API相对固定
15 .01 什么是DolphinScheduler 02 什么是Workflow-as-code 03 为什么Workflow-as-code 04 怎么Workflow-as-code 怎么Workflow-as-code
16 .04 怎么Workflow-as-code -- 社区实现 社区已实现 workflow-as-code 的基本骨架,能通过 Python API 定义 DAG,以 Tutorial 为例
17 .04 怎么Workflow-as-code -- 基本概念 对上页 Tutorial 核心概念进行说明 ProcessDefinition Task Relation 工作流定义类,定义名称、 任务定义类,定义任务类型、 任务依赖定义,定义任务间 周期、起止时间等基本信息 名称、具体命令 上下游关系
18 .04 怎么Workflow-as-code -- 实现原理 一个声明式UI Python 和 Java 通信 Python Feedback Result Submit workflow Py4J JVM
19 .04 怎么Workflow-as-code -- 社区使用/想法 性能测试 3 任务迁移 1 批量生成含多个tasks 的多个workflow crontab 任务迁移 airflow任务迁移 DAG定义 0 算法 1 将已有算法py 打包组成workflow 通过WAC定义DAG 并提交调度
20 .04 怎么Workflow-as-code -- Join Us 如果你对 workflow-as-code 感兴趣,请加入我们 • User:体验 workflow-as-code 魅力,来到多样性的世界,quick-start • Developer:参与 workflow-as-code 构建,亲手实现多样性 • 任务类型:issue-6407 中任务类型部分 • 迁移工具:airtolphin。将 Airflow DAG 迁移到 DolphinScheduler Python API • 代码质量:更智能的CI,更高的code coverage • CWL集成:与 common-workflow-language 进行集成
21 . THANKS! Ending