Why?
Pipeline 的速度会随着工程的变大而逐渐变慢,如果 pipeline 的反馈时间太长。则会影响工程师的使用热情,工程师会倾向于跳过 pipeline 中的部分质量相关步骤,甚至全部步骤,这样的话,CI 上的质量防线就会形同虚设了。
因此,控制 Pipeline 的执行时间在一个合理的范围内,是一个非常重要的事。
How?
- 建立一个标准和度量系统:还是那句说了一万遍的话 “无法度量就无法改进”。度量什么呢?
pipeline 每个阶段花费的时间,一般会分为:静态代码扫描的时间,单元测试执行时间,其它自动化测试执行时间,构建时间,发布时间。每一段的执行时间其实都可以通过某种形式得到,然后汇总到一起,形成报表。每个阶段的时间进行分级,如:优秀,可接受,不可接受。对于不同级别给与不同的处理方式。
- 能力基线:约定一个组织级的能力基线,所有团队的能力都应该在这个基线以上,如果不达标,必须改进。
例如:约定项目单测阶段时间不超过 5 分钟,如果超过了需要做整改。基线不能定得太狠,需要让团队付出一些努力后,就可以达到,可以分一两个季度来爬坡,每半年 review 一下,确定是否提升一次基线要求。
- 让开发人员、QA、团队负责人低成本、高频率的获得这样的度量信息。
如:突破门限会自动收到报警邮件,不同角色邮件每日收到分级的报表,使用 IM 的 hook 推送消息到应用的所有者等。
- Pipeline 标准的建立:很多不正确的实践会让 pipeline 的性能很糟糕,这部分问题往往非常好改,同类技术栈,大家遵照一个标准去配置就好了。这里的标准应该是按照最佳实践来涉及的,能够有效降低实施成本,减少走弯路。
- 习惯的养成:确保团队把关注 pipeline 的健康变为日常工作的一部分,有问题及时解决(这是个不容易的工作)。
Tips
↙↙↙阅读原文可查看相关链接,并与作者交流