上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
01
声明式持续部署概述
持续交付(Continuous Delivery)和持续部署(Continuous Deployment)是一种软件工程实践方法,最终目的是实现自动化交付的过程。但我们通常容易将持续交付和持续部署与DevOps混为一谈,这是一种常见的误区。
DevOps提供的核心价值是:推倒开发人员与测试、运维人员之间信息不对称的“墙”,使围绕着软件开发的上下文在3种角色之间更加流畅、高效地传递。而持续交付和持续部署的核心价值是提供“构建物”随时可交付与可部署的状态,以及对构建物实施自动化部署流程。
持续交付和持续部署具有以下共同点。
• 自动化:在应用编译、测试、生成构建物等环节实现不同程度的自动化。
• 随时可交付:通过一系列机制确保构建物随时可被交付。
• 降低交付风险:通过持续性地以更小修改的单位对应用进行更改,快速响应问题。
持续部署在2009年第一次作为工程实践方法由IMVU公司的Timothy Fitz提出,在经历了多年的发展后,持续交付和持续部署的概念已经被市场和企业接受。随着云原生、多云部署架构的普及,持续交付和持续部署被赋予了新的使命和要求。
持续部署本身的复杂性较高,即便是在单一环境下实施自动化持续部署,大多数中小团队也难以完成。艾瑞咨询关于云基础设施的报告指出,现阶段每家企业平均需要2.14家公有云提供商,未来预计每家企业将需要3.08家公有云提供商。这意味着在多云环境下,持续部署的复杂性将进一步提高,面向多云环境的持续部署将是每个团队需要面临的实际问题。
开源社区正不断收到用户关于改进持续部署的呼声,尤其是面向云原生和多云环境。其中,“声明式”和“模板化”的持续部署方案正呼之欲出。