主页 topics 持续交付简介 什么是持续交付?
持续交付使开发团队能够自动化软件在开发生命周期中的移动。
订阅 IBM 时事通讯
黑色和蓝色背景
什么是持续交付?

持续交付使开发团队能够自动化软件在开发生命周期中的移动,不但配置集成工具箱,还具有诸多优势,包括:

  • 通过持续测试和开发缩短部署时间

  • 降低与传统软件开发相关的成本

  • 根据项目规模扩展软件开发

  • 将代码自动部署到开发周期的每个阶段

在下面的视频中,Eric Minick 详细解释了持续交付:

持续交付最佳实践

以下是使用持续交付方法时需要考虑的一套最佳实践

  • 使每次变更都可发布:如果通过持续交付使每次变更都可发布,出于审核目的,您必须包含用户文档、操作手册以及有关变更内容的信息。

  • 采用基于主干的开发:持续交付建立在持续集成之上。尽可能避免延迟集成的分支,以便每次变更都能与集成体一起构建、测试和部署,以获得最快的反馈。

  • 通过自动化管道交付:要成功实现持续交付,您需要一条构建良好的自动化交付管道,确保所有代码版本以一致的方式进入测试和生产环境。

  • 尽可能自动化:在持续交付中,您必须在软件开发生命周期中自动化尽可能多的流程,以打造良好、可靠的交付管道,不仅用于代码构建和部署,还用于创建新的开发环境。

  • 目标是不停机:为了在进行频繁、持续交付更新的同时确保应用程序可用性,您在将新功能推送到生产环境时,必须首先进行验证,然后再部署到公共运行的应用程序实例中。

  • 以测试粒度发布:系统的两个部分如果必须一起测试,那么也必须一起发布,以便您知道系统各个部分是兼容的。发布自动化工具擅长协调这种交付。另一方面,也可以完全解耦。
连续管道/框架

为了利用持续交付的优势,您还需要持续框架的其他元素,例如持续探索、持续集成、持续部署和按需发布。

使用持续交付管道阶段时,您应该将这些阶段划分为各个作业,也即阶段内的执行单元。

  • 构建作业在构建作业中编译项目,为部署做准备;您可以在构建作业中生成可发送到编译档案目录的工件。

  • 部署作业将项目作为可通过 URL 访问的应用程序上传到持续交付管道。部署后,可在仪表板上查看项目。

  • 测试作业根据单元测试套件或第三方测试服务的功能测试,在构建和部署作业之前或之后自定义并纳入测试作业。

持续交付管道可以帮助开发团队:

  • 自动化构建、单元测试和部署

  • 使用 Git 存储库、问题跟踪和基于 Web 的 IDE(集成开发环境),编辑和推送代码

  • 创建集成型 DevOps 工具箱,利用您的服务、开源工具和第三方工具,构建、部署和管理应用程序

  • 从您选择使用 IDE 来创建、编辑、运行、调试和完成源代码管理任务的任何位置编辑代码

  • 使用自动化管道以可重复的方式持续交付构建、测试和部署

  • 通过了解构建状态、安全扫描结果、代码覆盖率和测试覆盖率来提高质量,以便评估是否将应用程序提升至下一个环境(通过策略闸门在提升前自动保证质量)
持续部署与持续交付

持续部署可以是持续交付管道的一部分。具体来说,持续交付是代码在整个开发生命周期(有时称为交付生命周期)中的自动化移动;持续部署是指在通过所需的自动化测试后,将该代码自动转移生产环境。

是否将持续部署作为交付管道的一部分取决于您的业务需求。如果业务需要交付团队重复、可靠或尽快地将新的或更新的软件发布到生产中,或者如果解决方案具有多个依赖项,那么您可能会从持续部署中受益。

有关持续部署和持续交付之间差异的更多信息,请观看此视频:

持续交付工具

通过持续交付工具,您能够使用开源工具来构建、部署和管理应用程序。通过集成工具集,您能为开发团队和运营团队创建可重复且可管理的任务。

您的工具箱可以包括当前的云服务、开源工具和第三方工具,但您还需要考虑包含以下内容的持续交付工具:

  • 用于构建和部署自动化的可重复模板:如果适合您的某个应用,那么也应该适合其他应用。不要让每个团队都为配置而苦恼。

  • 满足下列条件的管道:在推送变更时自动构建,部署到云,将构建和部署合并到工具链中,管理跨工具链的部署。

  • 用于团队协作、规划、源代码管理和测试的工具。

  • 仪表盘:能够显示团队在哪里进展迅速、在哪里陷入困境,从而为变得“更加持续”提供指导。

有助于构建强大的持续交付管道的开源持续交付工具包括 Jenkins、Concourse CI、Spinnaker、Travis CI、GoCD 和 GitLab CI。

敏捷和 DevOps

敏捷持续交付

以前,您只发布一次软件,然后不断更新。那时,您只在开始和结束时咨询客户,了解软件是否满足客户需求。

敏捷是一种按照持续交付计划在短迭代中生产软件的方法。当今的敏捷持续交付流程意味着您可以在每个定义的功能可用时向客户发布代码。敏捷开发和持续交付是在生产就绪后立即向客户提供功能的关键。您的目标是在每项功能在退出管道时即可发布。

进一步了解敏捷原则的优势

DevOps 和持续交付

几十年来,软件开发经历了重大变化,从标准的瀑布概念转向更高效的敏捷方法。为了适应这一趋势,您需要采用聚焦敏捷、DevOps 和持续交付三大流程的方法。作为持续交付管道的一部分,这些流程可实现更可靠、更高质量的软件发布和更新。

通过敏捷开发进行更快速、更小的软件发布时,您将更加关注软件开发的各个阶段。同时,DevOps 关注大局和文化变革,因为开发和运营紧密合并为一个团队,致力从编码到测试、从部署到支持的整个软件开发生命周期。

如需详细了解 DevOps 流程,请观看下面的视频:

相关解决方案
IBM Cloud® Continuous Delivery

IBM Continuous Delivery 云服务可帮助配置工具链、自动化构建和测试以及通过分析控制质量。

探索 IBM Cloud® Continuous Delivery
IBM UrbanCode®

IBM UrbanCode 系列软件产品可加速应用程序交付并减少手动流程,帮助您更快地将软件推向市场。

探索 IBM UrbanCode®
Tekton on IBM Cloud®

以最快的速度和灵活性创建 Kubernetes 原生 CI/CD 管道。

探索 Tekton on IBM Cloud
资源 什么是 DevOps?

DevOps 通过将软件开发和 IT 运营团队的工作结合并实现自动化,加快交付更高质量的软件。

什么是持续集成?

持续集成是一个迭代开发过程,开发人员每天至少将新代码集成到代码库中一次。

什么是 CI/CD 和 CI/CD 管道?

持续集成/持续交付 (CI/CD) 管道实用指南。

采取下一步行动

您准备好实施 DevOps 了吗?按照市场需求的速度交付软件和服务,要求团队快速迭代和试验,并在反馈和数据的驱动下频繁部署新版本。最成功的云开发团队通过现代 DevOps 文化和实践,采用云原生架构,并使用一流的工具组装工具链,释放生产力。

找到您的 DevOps 解决方案