- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
杨伟伟-《前端大规模构建CI实践优化分享》
- 掌⻔教育⾃动化构建历程
- v . ⾯对的挑战
- v . 优 化 ⽅ 案
- 带来的收益
- 迁移过程
- 总结
杨伟伟 掌门教育效能研发前端工程师
展开查看详情
1 . 2021 前端⼤规模构建演进实践 掌⻔教育· 研发效能 · 杨⻙⻙ 2021年4⽉10⽇
2 .前端构建概况
3 .前端构建概况 400+ 前端应⽤ 2000+ 构建/周 300+ ⽣产发布/周
4 .前端构建演进 2019 2020 1.0 构建 2.0 构建 1. 从⽆到有,⼑耕⽕种 1. 解决构建慢 2. 满⾜绝⼤部分构建需求 2. 优化错误反馈不明确等问题 3. 优化资源调度 4. Job 任务颗粒化
5 .v1.0 构建是如何进⾏的?
6 .v1.0 构建概况
7 .v1.0 虽好,但是问题多
8 .存在的挑战 第⼀次构建慢 错误⽇志反馈不明显 JOB 维护困难 ⽆法复⽤ 机器资源调度浪费 workspace
9 .不让构建成为快速迭代的瓶颈
10 .优化 - 资源调度 利⽤ DSL (Domain Specific Language) ⾃定义调度 1. 分布式集群构建 2. 均衡资源分配
11 .优化 - 构建 job 流⽔线化 基于流⽔线:给予了更多的可能性 1. 更多的 API 2. 任务⽣命周期化 3. ⾃定义 DSL 4. 可接受交互输⼊ 5. 增量拉取代码
12 .优化 - 构建错误治理 构建失败类型: 1. 语法错误:代码冲突... 2. 程序异常:内存溢出… 3. Install 失败:未找到安装包… 4. 配置错误:构建未按照规范输出… 观察⽇志-沉淀规则-修正反馈准确率 • Error • Warning
13 .优化 - npm install 阶段优化 1. 合理使⽤缓存 2. 避免不必要的 node_module 污染
14 .优化 - npm install 跳过
15 .带来的收益
16 .如何平滑迁移v2.0 ?
17 .迁移过程 1. 每个应⽤建⽴独⽴ v2.0 Job 2. ⻚⾯上⽀持快速回滚到 v1.0 3. 选择 git commit、node 版本等信息保持不变,⽆感知 4. 制品仓库地址不变,保证发布⽆需调整 5. 代码⽆侵⼊式,⽆需修改代码
18 .实施策略 1. 资源调整:v1.0 机器池缩容,v2.0 机器池扩容 2. 构建切换:使⽤ CD 平台切换 v1.0 & v2.0 构建策略 • 构建速度 > 20%
19 .未来我们还能做些什么?
20 .未来思考 好的架构不是设计出来⽽是演进出来 1. 并⾏:FAT、UAT、PRO 并⾏构建 2. 测试化:增加可选单元/⾃动化测试 3. ⾃定义:可选⾃定义脚本
21 .THANK YOU