申请试用
HOT
登录
注册
 
杨伟伟-《前端大规模构建CI实践优化分享》
0 点赞
0 收藏
1下载
白玉兰开源
/
发布于
/
27
人观看
  • 掌⻔教育⾃动化构建历程
  • 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

0 点赞
0 收藏
1下载