流水线提速是什么
从等待结构上压缩流水线时长:并行化(DAG 依赖、矩阵、测试分片)、缓存、增量构建、预构建镜像,逐项测量收益再推广。先分清三段时长:排队看容量与并发,执行看任务本身,关键路径才是真正决定反馈时间的链路;优化不在链上的步骤,反馈时间纹丝不动。
基本信息
| 结构性手段 | DAG 依赖、矩阵并行、测试分片、缓存命中去重 |
|---|---|
| 环境手段 | 预热镜像与依赖镜像、就近 Runner |
| 流程手段 | 只跑受影响范围、删除重复步骤、推迟非阻塞检查 |
| 度量三段 | 排队、执行、关键路径分开统计 |
| 原则 | 先测后改,每次只改一项并记录前后对比 |
典型使用场景
- 提交变慢:先看排队时长,判断是容量问题还是任务问题。
- 依赖安装占大头:先做缓存与镜像预装,再谈测试优化。
- 长尾作业:找出关键路径上最慢的节点单独优化。
- 无效重复:删除重复步骤与已经过期的检查项。
- 缓存恶化:监控命中率,掉下去先修缓存键再扩容。
- 节奏控制:流水线更快后提交更频繁,容量需要同步跟上。
测量口径
测量口径
关注三段时长:
- 排队(queued):容量与并发问题
- 执行(running):任务本身
- 关键路径(critical path):真正决定反馈时间的链路手段与前提
| 手段 | 典型收益 | 前提 |
|---|---|---|
| DAG 依赖 | 消除阶段间空等 | 依赖关系梳理清楚 |
| 缓存依赖 | 重复安装变命中 | 缓存键稳定、命中率被监控 |
| 测试分片 | 长测试套件时间收敛 | 用例可均匀切分 |
| 预构建镜像 | 省去环境准备时间 | 镜像有维护机制 |
先测后改:多数团队的瓶颈集中在排队与重复安装依赖,而非测试本身。
关键路径思维:优化前先确认目标步骤确实在关键路径上,否则做完毫无感知。
为速度牺牲稳定性:跳过必要检查省下的时间,会在故障处理里加倍偿还。