CI/CD 试金石:您的管线是完全 CI/CD 吗? - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CI/CD 试金石:您的管线是完全 CI/CD 吗?

Steven Guggenheimer 和 Ananya Koduri,Amazon Web Services(AWS)

2023 年 8 月文档历史记录

您的管线是否已实现自动化? 这是一个简单的问题,但许多组织给出的答案却过于片面。答案蕴含的复杂性远非所能概括。

技术创新日新月异,有时组织可能很难跟上步伐。这项新技术是昙花一现,还是会成为下一个主流? 我应该彻底改革现有的做法,还是应该静观其变? 通常,当明确某项技术是大势所趋时,企业往往已陷入被动追赶的境地。持续集成和持续交付(CI/CD)已成为长期趋势,但并非一直如此。许多人花了很长时间才被说服,有些人仍持观望态度。

CI/CD 是自动化软件发布流程的源代码、构建、测试、暂存和生产阶段,通常将其描述为管线。如今,CI/CD 自动化带来的成本节省和速度提升已使大多数组织认可其价值。但过渡到这种新方法并非易事。您需要确保员工接受过正确的培训,需要升级一些资源,然后需要不断测试、测试、再测试。工作量巨大。大多数情况下,您需要逐步进行这些变更,以帮助组织适应。

本文档的目的是定义拥有完全 CI/CD 流程的意义。它提供了一种工具来评估您自身的流程,并为尚未实现的流程提供前进方向。这条前进的道路很少能一蹴而就。相关流程很复杂,取决于许多因素,包括当前员工的技能集以及当前基础设施需求。我们建议您分清轻重缓急,小幅、循序渐进地进行改进。

目标

实施本指南中的建议可能带来以下潜在优势:

  • 效率:完全 CI/CD 部署过程可以减少复杂性、减少工作量,以及节省大量调试、执行人工流程和维护所花的时间。有关更多信息,请参阅持续交付的优势。根据 TechAhead 博客文章,实施 CI/CD 流程预计可节省 20% 的时间、工作量和资源。

  • 成本削减:根据 Forbes Insight 报告,“四分之三的高管认为,相较于新项目开发或新举措,花费在持续维护和管理方面的时间、金钱和资源,正在影响其组织的整体竞争力。” 开发周期越短,您的组织就越有可能实现雄心勃勃的上市时间目标,并在恰当时机把握市场机遇。

  • 速度:通常,完全 CI/CD 管线能够在几个小时内向客户发布软件变更。尤其是在快速故障隔离和少量补丁推送的情况下,CI/CD 管线有助于缩短平均恢复时间(MTTR)。有关更多信息,请参阅 Reducing MTTR

  • 安全:完全 CI/CD 管线还可以通过减少可能的攻击入口点和降低人为错误的风险来保护发布流程。全自动化 CI/CD 管线带来的安全优势有助于避免数据泄露、服务中断等造成的代价高昂的后果。

  • 降低流失率:当开发人员可以花更多的时间用来创建出色的功能,而不是陷入无休止的维护和调试循环时,他们会更加满意。对于组织而言,这意味着能够更长时间地吸引和留住顶尖人才。

  • 卓越的代码质量:开发人员小批量地将代码发布到共享存储库中,这使他们能够进行并行测试(BrowserStack 博客文章)。他们并非各自为战,而是经常与团队共享构建成果,并协作识别关键错误。这为开发人员提供了支持,有助于防止不良代码进入生产环境。来自开发人员同行的支持有助于发布高质量版本,并推动组织发展。

  • 维护:维护和更新是制作一款出色产品的关键部分。但是,不要在流量高峰时段关闭系统。您可以使用 CI/CD 管线在使用量较低的时段执行维护,从而最大限度地减少停机时间和性能影响。