缩短持续交付周期的五种方法
了解持续部署
加快持续部署周期的五种方法
长达数月的发布周期时代即将结束,持续集成(CI)和持续交付(CD)运动正在取而代之。
CI/CD 的最终目的是采用一套实践和工具来加速软件的部署,从编写的那一刻到在网站上线的那一刻。
CI/CD 有很多好处:
- 您可以更快地将初始想法或新功能推向市场
- 任何特定部署的风险较小
- 由于您的团队能够可靠地交付代码而无需人工干预,因此他们会感到更高效、更专业、更快乐
CI/CD 发布周期中的接触点很多,应该单独优化以尽可能缩短周期时间,这样您的团队就可以更快、更可靠、更少麻烦地交付软件。
了解持续部署
CI/CD 的核心是通过自动化代码部署来提高向客户交付软件的速度,同时保持对其稳定性的信心。
持续集成 (CI) 是一种将代码持续集成到共享代码库中,并确保代码提供所需客户体验的实践。持续交付 (CD) 则负责管理如何以自动化方式实际部署持续集成的代码。
任何成功的 CI/CD 流程都有四个基本要素:
- 尽可能频繁地签入代码
- 测试覆盖率保持较高
- 测试完全自动化
- 部署无需人工干预
维护 CI/CD 文化需要在流程上进行大量投资、在组织上致力于速度,以及在代码审查、CI 和 CD 交付阶段中促进每个步骤的工具。
加快持续部署周期的五种方法
为了提高发布软件的速度,您应该优化交付周期的每个阶段,从代码审查到构建和测试代码,再到实际部署变更集。
以下是我们缩短周期的五个技巧,从如何编写代码开始,到如何部署代码结束。
确定最小可行变更集
保持拉取请求较小既可以提高审查速度,又可以降低与下游故障相关的风险。
- 如果你的 PR 规模过大,没人会愿意去审核它们。因此,编写较小的 PR 可以减少每个 PR 的“首次审核时间”。
- 较小的 PR 更容易审查,因此变更集越小,“审查所花费的时间”就越少。
- 涉及代码库许多部分的大型 PR 会带来更大的后续合并冲突风险,以及潜在的测试失败。
减少拉取请求的发现时间
代码闲置会带来巨大的成本。它会降低开发速度,并打击代码编写者的积极性。
- 为了确保 PR 得到及时审核,请使用工具向团队明确责任。拉取提醒功能是发现需要审核的 PR 并在公开渠道中通知团队成员的好方法。
- 通过在每个 PR 中添加更少的审阅者来消除旁观者效应,这样每个审阅者都会对该审阅感到更有责任感。
自动化测试
测试自动化是 CI/CD 流程良好运行的关键要素。依赖手动 QA 或任何形式的人为干预都会阻碍部署,并违背持续交付的初衷。
然而,如果实施不当,测试也会像人为因素一样阻碍你的部署。网站频繁变更导致的测试不稳定,最终可能导致部署失败。
最终,为了保持持续部署,您需要高覆盖率和灵活的自动化测试。您不能只拥有一个。
想要用一行代码实现更好的测试覆盖率吗?
试试walrus.ai – 一行代码,用简单的英语完成集成测试。剩下的交给我们。
采用功能标志系统
功能标志是一种很好的机制,可以测试生产中的变化,而无需一次性将其推广给所有用户。
- 创建动态标志,为您特定域中的人们提供新的体验。
- 随着时间的推移,增加更新体验的曝光度,以进一步降低变更集的风险。
关注生产监控
CI/CD 需要快速且自信地行动。自动化测试有助于提供一层保护,防止客户体验不佳,但它们很少能捕捉到所有问题。
- 确定反映客户体验真实状态的关键业务指标。
- 使关键指标的仪表板可公开查看,这样如果部署破坏了客户体验,您就可以快速发现它。