持续交付
黑蓝背景
什么是持续交付?

介绍持续交付对,包括最佳实践、优点和重要的持续交付工具。

持续交付支持开发团队自动执行在软件开发生命周期中的软件迁移,并且在配置集成工具箱时可以提供许多好处,包括 :

  • 通过持续测试和开发减少部署时间
  • 降低与传统软件开发相关的成本
  • 根据项目规模扩展软件开发
  • 将代码自动部署到开发周期的每个阶段

在下面的视频中,Eric Minick 介绍了有关持续交付的更多信息:


最佳实践

以下是使用持续交付时要考虑的一组最佳实践

  • 可发布的更改:如果使用持续交付使每个更改都可发布,那么必须包括用户文档、操作运行手册以及有关已更改内容的信息,以便进行审计。
  • 采用基于中继的开发:持续交付基于持续集成。 最大限度避免延迟集成的分支,便于共同构建、测试和部署每个更改,以最快的速度获取反馈。
  • 通过自动化管道交付:若要成功实现持续交付,您需要一个结构完整的自动化交付管道,来确保所有代码发布都以一致的方式进入测试和生产环境。
  • 最大程度的自动化:在持续交付中,您必须在软件开发生命周期中自动执行尽可能多的流程,以创建良好、可靠的交付管道,这不仅可用于代码构建和部署,还可用于创建新的开发环境。
  • 旨在实现零宕机:为了在进行频繁的持续交付更新时确保应用可用性,在将新功能推送到生产环境时,必须先对其进行验证,然后再将其部署到在公共环境中运行的应用实例。
  • 按测试粒度发布:如果必须一起测试系统的两个部分,那么应将它们同时发布,便于您了解系统的两个部分是兼容的。 发布自动化工具 有助于协调这种交付。 或者,完全分离。

持续管道/框架

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

使用持续交付管道阶段时,应将它们划分为单独的作业,即一个阶段中的执行单元:

  • 构建作业在生成作业中编译项目以准备部署,在这一步生成可发送到构建归档目录的项目。
  • 部署作业 将项目作为可从 URL 访问的应用上传到持续交付管道。 部署项目后,可在仪表板上查看。
  • 测试工作 在构建之前或之后定制并包含测试作业,使用第三方测试服务,根据单元测试或功能测试套件来部署作业。

以下是持续交付管道可以提供的帮助:

  • 自动构建、单元测试和部署
  • 使用 Git 存储库、问题跟踪和基于 Web 的 IDE(集成开发环境)编辑和推送代码
  • 创建一个集成的DevOps工具箱来构建、部署和管理您的应用与服务、开源工具以及第三方工具
  • 从您选择使用 IDE 创建、编辑、运行、调试和完成源代码控制任务的任何位置编辑代码
  • 使用自动化管道以可重复的方式持续交付构建、测试和部署
  • 通过了解构建状态、安全扫描结果、代码覆盖和测试覆盖来提高质量,便于评估是否将应用提升到下一个环境(通过策略关在提升之前自动确保质量)

持续部署 vs. 持续交付

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

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

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


工具

持续交付工具支持您使用开源工具来构建、部署和管理应用。 通过集成工具集,您可以创建可重复且可管理的任务,有助于开发团队和运营团队开展工作。

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

  • 用于构建和部署自动化的可重复模板。 如果它适用于您的某个应用,那么也会适用于其他应用。 不要让每个团队都面临配置难题。
  • 一个管道,帮助您在推送更改时自动构建,部署上云,将构建和部署合并到工具链中,以及管理工具链中的部署。
  • 有助于团队协作、规划、源代码管理和测试的工具。
  • 可显示团队进展迅速以及止步不前的领域的检测工具,为提高持续性提供指导。

用于强大的持续交付管道的开源持续交付工具包括:

  • Jenkins
  • Concourse CI
  • Spinnaker
  • Travis CI
  • GoCD
  • GitLab CI

敏捷和 DevOps

敏捷持续交付

以前,您只会发布一次软件,然后进行更新。 只会在开始和结束时咨询客户,以查看软件是否满足他们的需求。

敏捷是一种按照持续交付在短期迭代中生成软件的方式,如今的敏捷持续交付流程意味着您可以在每个定义的功能可用时向客户发布代码。 敏捷开发和持续交付是您在生产就绪后立即将功能提供给客户的关键。 您的目标是让每个功能在退出管道时做好发布的准备。

了解更多关于敏捷管道优点的信息。

DevOps 和持续交付

在过去数十年中,软件开发经历了重大变化,从标准的瀑布概念发展至更有效的敏捷方法。 要适应现状,您需要使用强调敏捷、DevOps 和持续交付的方法。 作为持续交付管道的一部分,这些重点突出的流程可实现更可靠、更高质量的软件发布和更新。

当您通过敏捷开发制作更快速、更小的软件版本时,您将更加集中精力关注软件开发的各个阶段。 同时,由于 DevOps 将开发和运营紧密融合到一个团队中,他们共同负责从编码到测试、部署和支持的整个软件开发生命周期,您可以关注“大局”和文化变革。

如需详细了解 DevOps 流程,请参阅“DevOps :基本指南”以及观看以下视频:


持续交付和 IBM Cloud

使用可定制、可共享的模板快速配置集成工具链的能力有助于自动执行构建和测试,并提高质量控制。 您可以使用 IBM 工具以及与第三方和开源插件的集成做到这一点。 IBM 流程和工具可以帮助您解决组织面临的最具挑战性的 DevOps 计划之一——在云之旅中构建和 现代化应用。

采取下一步行动:

  • 借助IBM Cloud Continuous Delivery,创建支持应用交付任务的面向 DevOps 的工具箱。
  • 在 IBM UrbanCode 的帮助下,开始加快构建、集成和部署应用(甚至复杂应用)的步伐。
  • 使用 IBM UrbanCode Deploy 应用发布工具,
  • 探索持续交付和部署自动化。
  •  使用 Tekton on IBM Cloud,跨多个云提供商或本地系统交付云原生应用,并受集成仪表板的监视。
  • 刚刚开始使用 DevOps? 按照该教程创建一个简单的部署工具链。

立即开始通过 IBM Cloud 帐户 使用该产品。


相关解决方案

IBM Cloud Continuous Delivery

IBM Continuous Delivery 是一种云服务,可帮助配置工具链,自动执行构建和测试,并通过分析来控制质量。


IBM UrbanCode

IBM UrbanCode 系列软件产品通过加速应用交付和减少手动流程,帮助您交付软件推向市场。


Tekton on IBM Cloud

创建具有最高速度和灵活性的 Kubernetes 原生 CI/CD 管道。