让持续交付流水线灵动起来
测试开发社区
共 5482字,需浏览 11分钟
·
2021-09-07 15:32
一、百度构建发展史
1.1 什么是构建
1.2 百度构建发展史
![](https://filescdn.proginn.com/3ea34dba4d4b7bdb4bc1afb865a346ca/98cf1ff54f5407b58315c96b76bf5911.webp)
1.3 新的问题
新产品形速度态、新技术应用、复杂架构,对构建有新的要求 迭代要求越来越高,对构建效率要求同步提高 不同的业务类型、不同技术栈对构建要求不尽相同
构建量增加,构建稳定性、构建成功率下降 构建链路变长,各类异常的人工成本 资源紧缺状态下提高构建效率 工具平台散乱,同质平台过多,无法统一管理优化 工具平台散乱带来版本不一致、管理混乱,稳定性也受到影响
二、百度双引擎生态方案
![](https://filescdn.proginn.com/7a5065df866d7e562ea13ee05a1e0634/6eaf872e28fd2103f0cb67327115a55d.webp)
2.1 工程能力标准
![](https://filescdn.proginn.com/d1125cd0a15a098008282ae3191c4a23/1cd8b00d8be22c01cfe61e25c4ea95cb.webp)
![](https://filescdn.proginn.com/3625177015201308e90e752d9e5236b0/cd66da6ba99e8e4beca09c17b7c2cb33.webp)
2.2 标准构建引擎—插件中心
![](https://filescdn.proginn.com/a22d06367c3acbf00d3c817bfa87e129/2181b4aa1da15dc4c1e397c1d77dd05a.webp)
2.2.1 快速获取标准插件能力
![](https://filescdn.proginn.com/712f51041f765687bc37d7de6d55f513/444e934ee68404903c2a53e2ecd09d2d.webp)
2.2.2 获取稳定优质的插件
![](https://filescdn.proginn.com/8b483ae19e30107497b908daf0a24a69/786034f1da518cd88123581c67827381.webp)
![](https://filescdn.proginn.com/89223a460d536609f0b87be8b1dce17f/9485c7d1d68d421a3e67888f9abbb9fc.webp)
2.3 非标准构建引擎—CI容器化
时间短:54%的任务执行小于30秒,这就要求: 任务执行稳定性必须很高 不能有长时间的任务排队 稳定性低:整体稳定性不足95% 1)slave机器上的软件环境手工运维,标准缺失,环境问题导致任务 失败率高达5% 2)宿主机上直接执行任务,任务间会相互影响 资源利用率低:长尾流量大部分是绑定slave进行,这样会造成极大浪费。
即申请即释放的docker容器执行任务,主要优点有: 速度快:docker容器构建速度快,2~3秒就可以创建出新容器; 稳定性好:容器隔离性好,软件环境通过镜像构建完成,标准统一; 排队少:资源整体配置管理,动态获取容器,用完即释放; 稳定性专项优化:主要的工作有,容器缓存系统构建、灾备系统、跨地域 多机房资源池调度等; 效率专项优化:主要的工作有,容器缓存系统构建、镜像预分发、任务高 并发执行等;
![](https://filescdn.proginn.com/f4e7f15b5f1c9652ae7a7656ce728422/98dd8e00e2e4e804af6383bb4d25b30f.webp)
三、智能构建
3.1 智能构建的产生
在业务线能过构建双引擎生态快速搭建自己的流水线后,随着业务的快速迭代,对构建效能提出了更高的要求,传统的流水线存在:
1.执行流程固定,存在一些无效执行,如在执行中不能根据执行的历史信息进行执行决策,导致冗余执行,不能站在风险的角度进行选择性的构建也导致了冗余;
2.执行资源的浪费,如在执行过程中同类型的任务反复执行,不考虑业务优先级进行动态调度执行,导致有限资源未被高效利用;
3.构建中人力的浪费,如构建过程中任务失败,阻塞执行时,需要人工介入进行分析定位排查,导致人力的消耗等。
![](https://filescdn.proginn.com/5332d5618d2207f58f2653d34632bab9/8ef415b96a63d8bfd934ef9655728b17.webp)
3.2 按需动态执行的智能构建
![](https://filescdn.proginn.com/c6e3ab8a83a9db5ce967b14dfe618b69/8e6e152be00c57bd26b120adca4aacfe.webp)
![](https://filescdn.proginn.com/cdf31496c08feca43fdafcff42fdc395/c43b630a94b27112e2d3e155613cee2e.webp)
3.3 长尾构建后闭环
![](https://filescdn.proginn.com/273856a024df922d21ad374da89ed640/7938cf794ace65361fba3083294f654d.webp)
3.4 智能构建业务交互逻辑
![](https://filescdn.proginn.com/b6b0c68c59d6fd2da95a5c3a3bd643db/6a57ebca874d4b9fa34633c009c4e565.webp)
四、总结
评论