1.4.2 持续交付
CNCF 指出,云原生技术应与强大的自动化相结合,以经常进行影响较大的更改。其中一部分是通过持续交付提供的。
持续交付是“一种软件开发规程,让您在的软件可以随时投入生产的方式”。
通过持续交付,团队在短周期内实现功能,确保软件可在任何时间可靠释放。
持续集成
(CI)是持续交付的先决条件,包括集成提交更改后的软件,构建它,并最终在类生产环境进行自动化测试。此过程应自动化,并由 CI 服务器执行。这个流程中涉及的步骤被声明为 流水线(pipelines)
。
持续交付
(CD)通过在流水线中包含额外步骤而构建在 CI 之上。之后通过运行自动化测试,软件被打包,发布版本被构建并部署到
类生产环境,以验证其是否有效。自动化流水在连续生产中的应用交付称为 部署流水线
。
由于持续交付的基础是持续集成,我们通常将其称为 CI/CD。在本书中,您将构建部署流水线以保持发布分支处于良好状态。最后,您将使用它将应用程序自动部署到 Kubernetes 集群进行测试,然后发布到生产。
有时,人们会把 持续交付
与 持续部署
相混淆。前一种方法确保每次更改后,软件都处于可以部署的状态。何时真正做到这一点是一个业务决策。而对于连续部署,您可以在一个 CI/CD 流水线的最后添加一步,在每次发布后自动在生产中部署新版本。
持续交付
不仅仅是工具。这是一个规程,涉及文化和组织中的结构变化。设置自动化流水线以测试和交付您的应用程序,并不意味着您在进行持续交付。这就引出了下一个话题,也通常被误认为只是工具。