登录 / 注册 Account

DevOps

什么是持续交付?

持续交付是一种软件开发方法,它利用自动化来加快新代码的发布。

在持续交付流程中,开发人员对应用所做的更改可通过自动化被推送至代码存储库或容器镜像仓库

持续交付与 CI/CD 有何关系?

持续交付是 CI/CD 的一部分,后者这种方法通过对应用开发的某些阶段自动化,来更频繁地交付软件。 

CI/CD 中的"CI"是指持续集成。借助持续集成,我们可以定期将应用代码的新变更构建、测试并合并到共享存储库中。这种方法可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。

CI/CD 中的"CD"可以指连续部署或持续交付,指的是自动化管道后续阶段的方法。

持续交付与持续部署之间有什么区别?

持续交付和持续部署是两个紧密相关的概念,但它们有时也会单独使用,表明自动化不同的程度。

持续交付通常是指开发团队对应用的更改会自动进行错误测试并上传到存储库(如 GitHub 或容器镜像仓库),然后由运维团队将其部署到实时生产环境中。这旨在解决开发和运维团队之间可见性及沟通较差的问题。因此,持续交付的目的就是确保尽可能减少部署新代码时所需的工作量。

另一方面,持续部署则涵盖了新软件发布过程中的一些额外步骤。它通常指的是自动将开发人员的变更内容从存储库发布到生产环境,以供客户使用。它主要为了解决因手动流程降低应用交付速度,从而使运维团队超负荷的问题。持续部署以持续交付的优势为根基,实现了管道后续阶段的自动化。

什么是 CI/CD 管道?

CI/CD 管道是为了交付新版本的软件而执行的一系列步骤。把 CI/CD 投入实用,就相当于完成了 CI/CD 管道的构建。

CI/CD 管道加入了监控和自动化来改进应用开发工作流,尤其是在集成和测试阶段以及交付和部署过程中。 

尽管可以手动执行 CI/CD 管道的每个步骤,但 CI/CD 管道的真正价值在于应用生命周期的自动化。

连续交付与 DevOps 有何关系?

DevOps(一个将"开发"和"运维"合二为一的概念)是指对企业文化、业务自动化和平台设计等方面进行全方位变革,从而实现迅捷、优质的服务交付,提升企业价值和响应能力。

持续交付是一种特定的软件开发实践,通常与 DevOps 结合使用。DevOps 方法中可能会创建持续交付管道。

DevOps 旨在实现既快又稳的工作流程,使每个想法(比如一个新的软件功能,一个功能增强请求或者一个 bug 修复)在从开发到生产环境部署的整个流程中,都能不断地为用户带来价值。 

借助 DevOps,通常在标准开发环境编写代码的开发人员也可与测试人员和 IT 运维团队紧密合作,加速软件构建、代码提交、单元测试和发布,同时保障开发成果的稳定可靠。

实施 DevOps 的一大重要成果,就是由开发和运维团队利用敏捷方法共同支持的 CI/CD 管道。 

管道自动化如何助力持续交付?

CI/CD 依靠自动化来加快开发、部署和测试流程。自动化有助于在保持质量的同时减少人为错误。在 DevSecOps 策略中,自动化还有助于提高安全性。

有些工具专门处理集成 (CI) 方面的问题,有些工具负责管理开发和部署 (CD) 工作,而另外一些工具则专注于持续测试或相关功能。

针对 CI/CD 的最著名的开源工具之一就是自动化服务器 Jenkins。从简单的 CI 服务器到完整的 CD 集线器,Jenkins 都可以处理。

另一个常用的开源项目是 Tekton,它是持续交付基金会旗下的产品。Tekton 允许使用 Kubernetes 以声明式描述交付管道,并按需在容器中执行这些交付管道。

Tekton 是 OpenShift 管道(面向红帽® OpenShift® 的 CI/CD 解决方案)的基础。

CI/CD 管道的构建模块

Red Hat Openshift

有助于加速部署云原生应用的容器和 Kubernetes 平台。

Red Hat Ansible Automation

CI/CD 需要进行自定义编码,并且要使用多个软件数据包。作为一种开源自动化语言,红帽 Ansible 自动化平台可轻松提供上述所有功能。

通过部署应用,管理多个集群,在多个集群上大规模实施策略,进一步提升红帽 OpenShift 的价值。

巧借 CI/CD,助力您的事业持久畅行