如果你从事 DevOps 工作,你可能听说过或熟悉持续集成和持续部署。通常,人们可以互换使用这些术语,但这是不正确的。假设您希望对您的 Web 应用程序进行更改——对于简单的更改,这些更改通常是直接进行的。但是,当您考虑改进开发工作流程时,您会希望能够暂存这些更改、在单独的环境中测试它们并进行部署——所有这些都不会导致最终用户暂时无法访问您的站点。
本质上,持续集成和持续部署是两个相关但独立的过程,用于自动化部署以更改代码。它们是更改代码以使事情顺利进行的方法,减少了手动测试和更改的需要。虽然它们确实相互关联,但每个都是一个需要理解的不同概念。
在本指南中,我们将分解这些术语的含义、它们的不同之处、在您的工作流程中利用它们的好处,以及如何在 WordPress 中正确实施它们——所以,让我们开始吧。
正如我们之前提到的,它们都是将更改部署到代码的方法。如果您需要对站点的代码进行一些更改,则需要同时了解持续集成和部署才能做到这一点。
然而,为了使事情可能有点混乱,它们可以一起工作,每个方面、集成和部署代表不同的因素。您必须使用持续集成作为持续部署的一部分,但是您可以选择退出持续部署。因此,它们并不相同,需要独立理解。让我们深入了解这些术语的确切含义。
持续集成是开发工作流程中良好 CI/CD 设置的第一个要素,它是组合代码版本和验证结果的自动化方法。这在您更频繁地进行更改时特别有用,因为您可以创建一个 CI 管道,在合并更改之前自动构建和测试更改。
如果您已经开发了自动化测试,则尤其如此。CI 的好处是开发人员可以专注于开发,而关键测试在后台运行以捕获与任何其他现有代码冲突的任何更改。这可以采用部署到暂存环境或简单地在后台运行自动化测试的形式。
另一方面,持续部署 (CD) 是 CI/CD 工作流的最后一个元素。通过 CI 管道集成和测试修改后,下一步就是部署新版本。许多开发人员仍然手动执行此操作,这是一种巨大的时间浪费。幸运的是,如果您使用像 RunCloud 这样的服务来管理您的服务器基础架构,您可以轻松地实现部署自动化,从而可以根据需要尽可能频繁地无缝发布代码。
► 无需再为发布日和推动个别功能而彻夜难眠。
► 无需停机即可为您的用户进行部署,如果您发现在生产中发生的任何在测试期间未发现的问题,则可以轻松回滚更改。
注意:有时会使用另一个术语:持续交付。这与持续部署非常相似,因为它构成了涉及确保可以随时推送更改的开发方法的重要组成部分。这意味着可以更高效地构建、测试和发布软件。
实际上,持续集成是如何让代码更新为开发人员所用,协助他们将代码更改落实到主分支中。持续部署是以不干扰分支的方式将代码提供给最终用户,并进行测试以确保更改自动实施而不会出现问题。它们彼此相关,因为持续集成在持续部署中发挥作用,但部署是将结果提供给最终用户的步骤。
如果要进行持续部署,则需要持续集成。因此,如果一个提交被定期部署到生产环境中,它就需要正常工作,而你需要确保这一点。持续集成使您能够确保其正常工作。所以,如果你想做定期提交的持续部署,你需要做持续集成。
但是,如果您没有定期更改,则可能不需要进行持续部署;相反,您可以选择持续交付和集成。集成确保所有代码更改有效,并且交付需要手动批准更改的实施。当您对测试过程感到满意时,部署就会变得更有用,并且您有更多的定期更改需要实施。
持续集成对您和您的团队很有用,可确保代码更改有效。您应该使用这种方法的原因有几个,我们现在概述一下:
通过持续部署,从长远来看,您的生活会变得更加轻松。它允许高效部署,并且鉴于您信任您的测试,这意味着您可以花更多时间进行开发,而不是担心您的更改是否会在生产之外工作。
以下是考虑使用持续部署的原因:
如果你想要持续部署的好处,但到目前为止只使用持续集成和交付,那么采用持续部署的难易程度将取决于你的项目状态。 在启动项目时,您可以尽快实施持续部署。您可以在拥有最终用户之前自动化部署,以确保一切顺利运行,并通常检查一切是否正常。您可以增加测试,当您最终对部署过程感到满意时,您可以启动一个完整的持续部署过程。
如果您的项目已经在运行,并且最终用户已经存在,则需要考虑更改一些事项:
有多种工具可以通过持续集成和持续部署来完成繁重的工作。通常,它们有助于促进代码的集成和自动化部署。
如果您已经使用 RunCloud 来管理云基础设施,我们提供内置的原子部署,因此您不必担心设置、配置和支付另一项服务来处理您的持续集成和部署需求。
话虽如此,为持续集成和部署提供服务的其他知名企业还有 Jenkins、CircleCI 和 GitLab 等。
Jenkins是一个开源自动化服务器,具有构建和集成过程,它支持数百个插件来帮助集成和部署。
使用CircleCI,您可以拥有从构建到部署的自动化管道,并且它与许多其他程序兼容,包括 Jenkins、GitLab 等。它还在云上或在您自己的服务器上的防火墙后面托管持续集成。
GitLab是一个 Git 存储库管理器,可让您在每次推送或提交时触发构建、运行测试或部署代码。
查找您需要哪些工具来帮助您满足持续集成和部署需求。
通常,由于缺少用于内置单元和集成测试的套件,WordPress 项目有点不同。但是,这些过程仍然适用于 WordPress。开发人员在使用 WordPress 时主要关心的是确保一切正常而不影响页面速度。持续集成和持续部署可以解决这个问题。
请记住,如果项目有一个独立的主题或插件,或者 WordPress 的功能主题,结构的性质将会受到影响。
通常,您首先需要构建依赖项。
其次,你测试你的代码。如果您使用持续集成和持续部署,您可以在您的站点内进行测试。不同的开发人员使用不同的方法,但这是可以用 WordPress 完成的事情。
最后,您可以部署。当您在 WordPress 中部署时,您很可能正在部署插件、主题或完整站点。
RunCloud 的原子部署功能是平台无关的,这意味着它适用于 WordPress,但它也适用于其他平台,例如Laravel。PHP 管理工具对于 WordPress 来说是必不可少的。
持续集成和持续部署是两个可以互换使用的术语,部分原因是它们经常联系在一起。但是,我们解释了每一种事物的不同性质。您是否希望使用持续部署取决于您,但一旦设置好,这是一种节省大量时间和精力的好方法。