阿里巴巴 姜天意-基于bpmn流程引擎驱动的前端研发平台
2020-02-27 549浏览
- 1.基于BPMN流程引擎驱动的 前端研发平台 姜天意 阿里巴巴-前端技术专家 2017.thegiac.com www.top100summit.com
- 2.Topic • 前端⼯工程的变迁及对研发流程的诉求 • 基于BPMN流程引擎 - DSL化/可编排的前端研发平台技 术介绍 • 基础服务BAAS化与前端⼯工程架构分层 • 研发流程管理理带来的价值 2017.thegiac.com
- 3.没有CDN的时代,开发者通过直接开发代码上传到ftp进⾏行行部署 ⼯工作流: 开发 部署 2017.thegiac.com
- 4.要有⼯工程 2017.thegiac.com
- 5.刀耕火种 Apache Ant 是⼀一个将软件编译、测试、部署等 步骤联系在⼀一起进⾏行行⾃自动化的⼯工具, ⼤大多⽤用于Java环境中的软件开发。 ⼯工作流: 开发 合并 压缩 打包 2017.thegiac.com 部署
- 6.新时代 ⼯工作流: 包管理理 脚⼿手架 开发 合并 压缩 2017.thegiac.com 打包 部署
- 7.yeoman的进化 ⼯工作流: 包管理理 脚⼿手架 开发 合并 压缩 2017.thegiac.com 构建 部署
- 8.⼯工作流: 包管理理 脚⼿手架 开发 合并 压缩 2017.thegiac.com 构建 部署
- 9.线下工作流的百花齐放 ⼯工作流: 包管理理 脚⼿手架 开发 编译 后处理理 合并 压缩 打包 部署 2017.thegiac.com
- 10.包管理理 脚⼿手架 开发 合并 压缩 构建 部署 够了了吗? • 静态代码检查 • 线上编译与构建 • ⾃自动化测试 • 灰度发布 • ⾃自动雪碧 • 前端性能和错误监控 • 源站版本管理理与组件管理理 2017.thegiac.com
- 11.准备阶段 线下开发阶段 需求 包管理理 脚⼿手架 开发 合并 压缩 构建 打包 线上监控 上线阶段 灰度 部署 发布阶段 预发环境 ⾃自动化测试 测试环境 测试阶段 2017.thegiac.com 代码检查
- 12.case1 • 拉代码 • 开发完啦 • 静态代码检查 • 线上编译与构建 • ⾃自动化测试 • 灰度发布 • ⾃自动雪碧 • 前端性能和错误监控 • 源站版本管理理与组件管理理 • 上线啦! • bug 2017.thegiac.com
- 13.case2 • 需求A,B拉代码 • A开发完了了,提测 • B拉代码,开发,提交 • 测试部署:tm什什么⻤鬼,A这功能有bug 吧? • A把B⼲干掉,重新revert commit • 测试好啦,上预发! • 线上有个bug,C赶紧拉代码改⼀一下! • ⽤用户投诉太多了了!C赶紧上线! • A预发验证好了了,合并主⼲干失败?? • D改了了个基础组件,Z位升级发到npm • A解(删)决(掉)冲突,预发重新构 建 • D你这什什么破组件,这个场景有 bug?? • A写死版本号,封⽹网了了。。。 2017.thegiac.com
- 14.case3 • 新⼈人,记得先去XXX平台创建⼀一个新需求,然后去XXX代码仓库 克隆隆下代码,拉代码的时候使⽤用XXX平台的脚⼿手架,然后去XXX 站下载⼀一个开发⼯工具,开发的时候去XXX⽂文档中⼼心看下我们的开 发规范,去XXX组件库找你要的组件,开发完毕后去XXX平台创 建⼀一个测试任务,并在XXX平台申请⼀一台测试机,等测试过了了去 XXX平台提交代码部署,然后去XXX平台通过⼀一下⾃自动化测试, 然后在XXX平台提⼀一个发布单,去XXX平台要个预发绑定,上线 时别忘了了去XXX平台申请⼀一个灰度发布单,对了了,记得去XXX平 台查看业务数据,去XXX平台查看监控数据,去XXX平台查看错 误数据,之后别忘了了去XXX平台写篇⽂文章总结下!! 我唱了了⼋八⼗十⼋八个差不不多 都差不不多 2017.thegiac.com 差不不多先⽣生不不会在乎这么多
- 15.流程缺失 效率低下 ⽆无 法 追 溯 难 以 量量 化 2017.thegiac.com
- 16.流程管控 2017.thegiac.com
- 17.流程管控的诉求 • 研发流程应该是DSL化的,可描述的 • 研发流程应该是收敛的 • 研发流程必须可追溯 • 研发流程必须⽅方便便接⼊入其他服务,只专注于流程 2017.thegiac.com
- 18.演示 2017.thegiac.com
- 19.流程管控平台?怎么特么又有一个平台??????? 2017.thegiac.com
- 20.如何实现 BPMN流程引擎 + 基础服务BAAS化 2017.thegiac.com
- 21.流程引擎-概念 BPMN:业务流程建模与标注 2017.thegiac.com
- 22.何为工作流 ⼯工作流(Workflow)指“业务 过程的部分或整体在计算机应 ⽤用 环 境 下 的 ⾃自 动 化 ” 。 是 对 ⼯工 作流程及其各操作步骤之间业 务规则的抽象、概括描述。 2017.thegiac.com
- 23.流程引擎介绍 • Shark - XPDL - Process Activity • osworkflow - fsm - State-action • Jbpm, Activiti5 - bpmn2.0 2017.thegiac.com
- 24.BPMN:业务流程建模与标注 • Activities(活动)——在⼯工作流中所有具备⽣生命周期状态的都可以称之为“活动”, 如原⼦子级的任务(Task)、流向(Sequence Flow),以及⼦子流程(Sub-Process)等 • Gateways(⽹网关)——顾名思义,所谓“⽹网关”就是⽤用来决定流程流转指向的,可能 会被⽤用作条件分⽀支或聚合,也可以被⽤用作并⾏行行执⾏行行或基于事件的排它性条件判断 • Events(事件)——在BPMN2.0执⾏行行语义中也是⼀一个⾮非常重要的概念,像启动、结 束、边界条件以及每个活动的创建、开始、流转等都是流程事件,利利⽤用事件机制, 可以通过事件控制器器为系统增加辅助功能,如其它业务系统集成、活动预警等 2017.thegiac.com
- 25.工作流为什么适合驱动研发流程 • 可编排,⼯工作流引擎的描述有标准,驱动也有标准引擎。 • 强⼤大的驱动能⼒力力,可以完成节点的⾃自动运⾏行行,重试等复杂场景。 • 服务与流程解耦,前端基础服务不不再揉杂到平台中,⽽而是下沉,流程只需关注 研发过程本身。 • 改进和优化业务流程,提⾼高流程⼯工作效率。 2017.thegiac.com
- 26.BPMN 实例 2017.thegiac.com
- 27.回顾,如何解决这个case • 拉代码 • 开发完啦 • 静态代码检查 • 线上编译与构建 • ⾃自动化测试 • 灰度发布 • ⾃自动雪碧 • 前端性能和错误监控 • 源站版本管理理与组件管理理 • 上线啦! • bug 2017.thegiac.com
- 28.一根筋类型开发 2017.thegiac.com
- 29.回顾,如何解决这个case • 需求A,B拉代码 • A开发完了了,提测 • B拉代码,开发,提交 • 测试部署:tm什什么⻤鬼,A这功能有bug 吧? • A把B⼲干掉,重新revert commit • 测试好啦,上预发! • 线上有个bug,C赶紧拉代码改⼀一下! • ⽤用户投诉太多了了!C赶紧上线! • A预发验证好了了,合并主⼲干失败?? • D改了了个基础组件,Z位升级发到npm • A解(删)决(掉)冲突,预发重新构 建 • D你这什什么破组件,这个场景有 bug?? • A写死版本号,封⽹网了了。。。 2017.thegiac.com
- 30.多人,单仓库,奶妈型开发流程 奶妈负责merge 2017.thegiac.com
- 31.实现:⼯工作流引擎如何驱动研发流程 2017.thegiac.com
- 32.开源框架 • 添加mysql持久化引擎 • 适配async/await • 缓存服务⽀支持接⼊入redis • ⼦子流程能⼒力力⽀支持 2017.thegiac.com
- 33.流程引擎-最简单实现 2017.thegiac.com
- 34.流程引擎-分支控制 2017.thegiac.com
- 35.整体架构-WFMC模型 2017.thegiac.com
- 36.系统整体架构 2017.thegiac.com
- 37.系统分层 2017.thegiac.com
- 38.流程定制-可视化搭建 2017.thegiac.com
- 39.基础服务BAAS化 2017.thegiac.com
- 40.baas化-概念 2017.thegiac.com
- 41.baas化-技术架构 2017.thegiac.com
- 42.baas化-服务注册 2017.thegiac.com
- 43.baas化-接入注册 2017.thegiac.com
- 44.流程定制-调用服务 获取baas准⼊入 初始化baas client 调⽤用服务 写上下⽂文,持久化 2017.thegiac.com
- 45.流程定制-隔离 沙箱中运⾏行行代码, 避免⼲干扰引擎 2017.thegiac.com
- 46.工程终局 线上平台 代码托管 研发流程平台 BAAS⽹网关 需求与⽂文档管理理 线下工具链 基础服务 代码扫描 ⾃自动化测试 源站部署 2017.thegiac.com 云构建
- 47.我们的收获 研发全流程数据集中, 分析这些数据更更利利于针 开放接⼊入 严控研发过程,避免开 发者绕过质量量检查步骤 发布全貌 前端开发者可以在平台 对性优化 研发数据 开放接⼊入最⼩小化改造成 本,最⼤大化集中收益 流程卡点 中看到发布的全貌,⽅方 便便开发者回溯⾃自查,也 ⽅方便便线上问题及时定位 2017.thegiac.com
- 48.研发能力指标 2017.thegiac.com
- 49.研发效率指标 2017.thegiac.com
- 50.研发质量指标 2017.thegiac.com
- 51.您的质量量得分 88分,效率得分70分,能⼒力力得 分99分,超过了了阿⾥里里99.99%的迭代。。 Thank you Q&A 2017.thegiac.com
- 52.扫码关注GIAC公众号 2017.thegiac.com www.top100summit.com