今天给大家带来的分享是基于 Apache DolphinScheduler 的持续集成方向实践,分享的内容主要为以下六点:

  • 研发效能

  • DolphinScheduler CI/CD 应用案例

  • DolphinScheduler 平台下的Serverless 理念

  • 基于DolphinScheduler DAG 搭建 CI/CD 流水线的解决方案

  • 模块化组装方案的实践案例

  • 为什么选择 DolphinScheduler

1 研发效能

效率竖井

  • 由局部优化导致,表现为:各个环节和部门繁忙而“高效”,但总体的效率和响应速度却很低。它是研发效能提升的普遍症结所在。(参照:https://developer.aliyun.com/article/687237)

基本介绍

  • 一个组织持续快速交付价值的能力,可以从流动效率、资源效率和质量三个方面来衡量。其中流动效率是改进研发效能的核心抓手,它带来系统和全局的改进。

持续集成支撑平台

  • 稳定任务平台 - DS

  • 可以支持DIY - 脚本

  • 可以自定义流程组装逻辑 - DAG

三要素

  • 准确(质量)

  • 快速(流动+资源)

  • 持续(流动+资源)

人员关系

  • DevOps:开发人员&测试人员&产品经理

平台要求

  • 平台易用性、门槛

  • 流程的模块化

  • 一个改动即使生效

  • 集成测试的模块化

维基百科:DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

支撑平台的效能

可定制化

    • 降低定制门槛 – 脚本

灵活组装

    • 减少写选择逻辑的可能

快速尝试

    • 复制

    • 删除

    • 增加

2 DolphinScheduler CI/CD 应用场景

场景:

  • 集群规模:16台(6master/10worker)

  • 每日任务量:task 级别 – 4000+

  • 新品-CICD铺设周期:< 0.5 天

  • 成品质量提高:80%+(降低线上事故)

  • 使用人物:开发、测试、管理者

3 DolphinScheduler 平台下的Serverless 理念

Serverless 无服务架构

  • 通过将复杂的服务器架构透明化,使开发者专注于“要做什么”,从而强调了减少开发者对服务器等计算资源的关注、工作粒度从服务器切换到任务的思想

Faas 方法即为服务 – OpenFaaS

4 基于DS DAG 搭建 CI/CD 流水线

脚本即为服务 – 脚本设计方式

  • 单一职责:只做一件事

  • 解耦:不过分依赖其他模块

  • 可配置参数:可以使用全局参数,或者从配置服务中读取参数

  • 自检结果:脚本执行结果,就是这件事的结果

脚本即为服务 – 通用性脚本介绍

  • 克隆代码

  • 镜像编译

  • 服务部署

  • 特定环境准备

  • 容器运行脚本

  • 包含特定场景的业务脚本

5 模块化组装方案的实践案例

基于DS DAG 搭建 CI/CD 流水线

  • 单模块持续集成配置方式

  • 关键字

    • 系统变量

  • 全局变量

  • 局部变量

  • 模板嵌套

  • 多模块单模块持续集成配置方式

6 为什么选择 DolphinScheduler

  • 支持UI 操作 - 编辑流程

  • DAG

  • 学习成本、教育成本

  • 社区文档

  • Java 生态

下面视频是分享演讲: 

Apache DolphinScheduler 的持续集成方向实践的更多相关文章

  1. fir.im weekly - 「 持续集成 」实践教程合集

    我们常看到许多团队和开发者分享他们的持续集成实践经验,本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等项目搭建持续集成的实践,以及一些国内外公司的内部持续集 ...

  2. 一个Web 持续集成工作实践

    一个web的持续基础实践: https://mp.weixin.qq.com/src=3&timestamp=1494325174&ver=1&signature=wFVC0E ...

  3. fir.im 持续集成技术实践

    互联网时代,人人都在追求产品的快速响应.快速迭代和快速验证.不论是创业团队还是大中型企业,都在探索属于自己的敏捷开发.持续交付之道.fir.im 团队也在全面实施敏捷,并推出新持续集成服务 - flo ...

  4. 视频云SDK iOS持续集成项目实践

    1. 前言 2016年, 我们维护的 iOS推流播放融合SDK KSYLive_iOS 在github上发布了40多个版本, 平均两周发布一个新版本, 经历了最初痛苦的全手动版本构建和维护, 到后来慢 ...

  5. Jenkins多环境持续集成架构实践

    自动化部署主要是为了解决项目多.环境多.持续集成慢.部署操作麻烦.手动操作易出错.自动化运维等问题. Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建.部署.自动化 ...

  6. 倒计时2日!基于 Apache DolphinScheduler&TiDB 的交叉开发实践,从编写到调度让你大幅提升效率

    当大数据挖掘成为企业赖以生存.发展乃至转型的生命,如何找到一款好软件帮助企业满足需求,成为了许多大数据工程师困扰的问题.但在当下高速发展的大数据领域,光是一款好软件似乎都不足以满足所有场景业务需求,许 ...

  7. Jenkins持续集成 入门实践

    本文测试环境: ASP.NET MVC项目,Windows 7环境,SVN代码仓库, MSBuild,TortoiseSVN 持续集成这种工具很多了,Jenkins比较常用,他的原理就是一个服务,有一 ...

  8. Linux下EclipseCDT工程和TFS的持续集成CI实践

    在Linux下使用TFS自动构建,需要自动执行连接tfs服务器的操作,命令行文件包TEE-CLC-10.1.0.2011121402.zip,下载地址:http://www.microsoft.com ...

  9. 学习笔记——Maven实战(四)基于Maven的持续集成实践

    Martin的<持续集成> 相信很多读者和我一样,最早接触到持续集成的概念是来自Martin的著名文章<持续集成>,该文最早发布于2000年9月,之后在2006年进行了一次修订 ...

随机推荐

  1. 联盟链 Hyperledger Fabric 应用场景

    一.说明 本文主要通过一个例子分享以 Hyperledger Fabric 为代表的联盟链应用场景. 关于 Fabric 的相关概念请先参考文章 <Hyperledger Fabric 核心概念 ...

  2. 注意:Spring Boot 2.7开始spring.factories不推荐使用了,接下来这么玩...

    如果你是Spring Boot用户的话,一定有这样的开发体验,当我们要引入某个功能的时候,只需要在maven或gradle的配置中直接引入对应的Starter,马上就可以使用了,而不需要像传统Spri ...

  3. Vben Admin 源码学习:状态管理-错误日志

    0x00 前言 本文将对 Vue-Vben-Admin 的状态管理实现源码进行分析解读,耐心读完,相信您一定会有所收获! 0x01 errorLog.ts 错误日志 文件 src\store\modu ...

  4. CabloyJS究竟是一款什么样的框架

    CabloyJS是什么样的框架 CabloyJS 是一款自带工作流引擎的 Node.js 全栈框架,一款面向开发者的低代码开发平台,更是一款兼具低代码的开箱即用和专业代码的灵活定制的 PAAS 平台 ...

  5. 部署ASP.NET Core最简单的办法,使用IIS部署ASP.NET Core应用

    本文迁移自Panda666原博客,原发布时间:2021年3月28日.写原文的时候.NET的最新版本是5.0,现在7的preview出来了,时间真快啊.抽空再写个在Windows Server Core ...

  6. 【Spring】事务的执行原理(三)

    事务的回滚 如果获取事务属性不为空,并且抛出的异常是RuntimeException或者Error类型,调用事务管理器中的rollback方法进行回滚 如果事务属性为空或者抛出的异常不是Runtime ...

  7. JVM学习笔记-从底层了解程序运行(二)

    解决JVM运行中的问题 一个案例理解常用工具 测试代码: /** * 从数据库中读取信用数据,套用模型,并把结果进行记录和传输 */ public class T15_FullGC_Problem01 ...

  8. linux-python安装pip

    wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate sudo python3 get-pip.py linux 建立软连接 ...

  9. Prometheus安装教程

    Prometheus安装教程 欢迎关注H寻梦人公众号 参考目录 docker安装Prometheus 基于docker 搭建Prometheus+Grafana prometheus官方文档 dock ...

  10. UiPath选择器之动态选择器的介绍和使用

    一.动态选择器的介绍 使用通配符, 能够替换字符串中的零个或多个字符的符号.这些在处理选择器中的动态更改的属性时非常有用. 二.动态选择器在UiPath中的使用 1.在设计库中新建一个Sequence ...