目录
什么是 CI/CD?
CI/CD 对业务有哪些好处?
一:确保卓越的代码质量
二:更快的发布速度 → 更快的交付
三:自动化降低成本
四:故障隔离
五:简化回滚
六:持续反馈
七:最佳透明度和问责制
八:提高 MTTR(平均修复时间)
九:监控指标数据
十:减少 Backlog 中的非重要缺陷
本文来源:about.gitlab.com
作者:Valerie Silverthorne
译者:极狐(GitLab) 市场部内容团队
数字时代,几乎每家公司都涉及软件业务。竞争对手、客户、投资人及员工都要求更快速地更新软件。因此,越来越多的企业拥抱现实,并为实现更高效的持续集成和交付上投入更多。
以下 10 个理由进一步阐述了为何企业需要 CI/CD。
CI/CD 包括了CI(Continuous Integration,持续集成)和 CD(Continous Delivery,持续交付)两步流程,通过使用自动化力量大大简化代码研发和交付流程。
CI 使代码集成和版本控制等研发任务更加高效,从而让软件更快上线,投入生产;
CD 使软件测试和部署自动化。
简而言之,CI/CD 共同构成了现代软件开发的强大引擎,让企业获益良多。
以下是企业采用 CI/CD 的十大理由:
在 GitLab 2021 年全球 DevSecOps 调研报告中,受访者表示实践 DevOps 的原因之一是提升代码质量,即团队需要 DevOps 功能之一是 CI/CD。因为 CI/CD 流水线提供测试自动化,研发几乎可以实时了解代码问题。“快速失败” 理念意味着团队不会在错误代码上浪费时间或资源;并且研发人员在转战其他项目时,也不会被无休止的 “修复” 请求所困扰。
节约时间、节约金钱,而且研发人员也不需要频繁进行上下文切换,换来的是 win-win!
对 CI/CD 收益持怀疑态度的人,请听全球金融巨头高盛公司的故事:高盛的技术部门从双周构建一次,演变到了每天构建 1000 次以上。
当讨论加速软件发布频率时,统一的 CI/CD 流水线像一个涡轮发动机。代码发布越快,就可以开发更多新代码,然后发布,以此往复。业务底线是:当成功的 CI/CD 流水线发挥作用时,昂贵的开发人员资源不会被闲置。
无需人工干预软件研发过程,则可以节省时间和金钱。这也就是为什么自动化是成功实践 DevOps 的基础。
CI/CD 自动化了源代码管理、版本控制、部署机制,还有很多测试工作。其中,测试可以说是最重要的。在 GitLab 2021 年的调研中,测试被认为是发版延迟的罪魁祸首。
发版延迟不仅会从成本、品牌、公共关系甚至声誉的角度影响企业,对于依赖快速上市时间的企业来说也是致命的。历史上,软件测试都是手动的,且非常耗时,这也是为什么企业通常一年或半年发版一次。在现如今,企业可以随时发布,而自动化软件测试是实现这一切的关键。
在 DevOps 和 CI/CD 获得关注之前,研发团队可能知道代码中存在问题,但却苦于得知问题的准确位置。
CI/CD 及自动化测试改变了这一切。研发人员可以轻易识别问题并进行故障隔离,显著提高生产效率。
CI/CD 流水线给予研发人员快速试错和快速恢复的能力。
一个简单流程就可以将代码发布到生产环境,如果发生问题,简单回滚即可。这种代码简单回滚的能力,节约了团队时间、精力以及资源,并且能够快速修复问题代码。
作为 DevOps 平台的一部分,统一的 CI/CD 流程让团队中的每个人(包括业务利益相关者),都可以清楚获悉发生了什么、在哪儿发生以及将会出现什么问题。
这听起来很简单,但在现实中,能够提供统一工具窗口查看完整流程,是革命性的转变。
因为在过去,需要使用很多的工具来完成项目工作,以至于项目经理不得不在众多地方查看,甚至询问一众人来获取状态更新信息,研发和运维也有同样困扰。显然,这极大浪费了时间和资源,特别是在出现问题时。
得益于持续反馈,CI/CD 流水线使得软件研发流程对业务侧完全透明。产品经理对项目状态一目了然,并根据需要追踪进度和跟踪责任。
得益于 CI/CD 流水线的可视化,DevOps 团队可以快速发现问题并进行快速修复。有一个关键指标衡量快速解决问题的能力:平均修复时间(MTTR)。MTTR 越好,DevOps 团队工作越高效,软件发版也越快。
团队和业务侧都需要知道在代码实际运行如何。在理想情况下,团队知道存在代码问题,并在终端用户感知到之前进行回滚。但在传统研发实践中,监控指标往往是缺失的。
CI/CD 流水线通过多种指标数据的持续反馈,让“理想”变为现实。访问指标数据不仅节省时间,也间接改进代码质量,没有组织希望与错误缠身的代码和性能不佳的应用程序相关联。
很明显,CI/CD 可以节约时间和金钱,让开发人员有时间去处理他们过往没有精力做的事情,比如回头去修复老代码中的问题,将其变得更加整洁和高效。
DevOps 和 CI/CD 给团队带来了改变:开发人员不仅可以解决积压的问题,还可以处理非关键缺陷,让产品更加完美。