持续交付(英语:Continuous delivery,缩写为 CD),是一种
软件工程手法,让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以发布的状况。它的目标在于让软件的构建、测试与发布变得更快以及更频繁。这种方式可以减少
软件开发的成本与时间,减少风险。
持续交付与DevOps的含义很相似,所以经常被混淆。但是它们是不同的两个概念。DevOps的范围更广,它以文化变迁为中心,特别是软件交付过程所涉及的多个团队之间的合作(开发、运维、QA、管理部门等),并且将软件交付的过程自动化。另壹方面,持续交付是壹种自动化交付的手段,关注点在于将不同的过程集中起来,并且更快、更频繁地执行这些过程。因此,DevOps可以是持续交付的壹个产物,持续交付直接汇入DevOps。
有时候,持续交付也与持续部署混淆。持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到生产环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部署,必须先实施持续交付。
自动化流程被视为是人工流程的次级,一些人担心他们会做自动化工作。自动化减少了疲劳感,使开发人员有更多的时间关注在更多有趣的工作上。使较新的自动化工具,如Puppet and Chef,以及一些新的云服务,都对流程有帮助。
Edmunds通过亚马逊web服务使用公有云资源,以及他们专有的本地虚拟化,以及带有防火墙的私有硬件。在这两种情况下,优势是一样的。广泛的虚拟化给他们提供了部署、测试和生产环境,这不仅仅是随时可用,而且与人工提供的环境相比更加一致。
每天通过他们的虚拟化环境自动化管理费数千万的个人设置和配置,这要求巨大量的硬件设备,以及每台设备的个人配置。有了虚拟化架构,新环境可以自动化得到支持。不再使用的旧环境可以迅速关闭,给新项目释放资源。