概述
通过自动化部署,您能够使用自动化流程在测试环境和生产环境之间移动软件。它可以在整个软件交付周期实现可重复的可靠部署。
自动化部署可让您更快速、频繁地发布新功能和应用,同时在应用部署时无需人工干预。
CI/CD 和自动化部署
自动化部署是支持 DevOps 实践和管理 CI/CD 管道的重要环节。
持续集成/持续交付(CI/CD)是一种向客户频繁交付应用的方法,依赖于贯穿整个生命周期(从集成和测试到交付和部署)过程的持续自动化和持续监控。
持续集成通常是指开发人员对应用的更改会自动进行错误测试并上传到存储库(如 GitHub 或容器镜像仓库),然后由运维团队(或使用自动化部署)将其部署到实时生产环境中。
一旦开发人员对应用所做的更改被合并,系统就会通过自动构建应用并运行不同级别的自动化测试(通常是单元测试和集成测试)来验证这些更改,确保这些更改没有对应用造成破坏。
什么是持续交付?了解 CI/CD 管道如何让您用自动化助力应用开发。
持续部署(缩写也为“CD”)指的是使用自动化部署将开发人员的更改从存储库发布到生产环境,以供客户使用。
由于部署管道在生产之前的这个阶段没有手动部署门控,因此持续部署在很大程度上都要依赖精心设计的测试自动化。
通过自动化进行的持续部署,能够解决因手动流程降低应用交付速度,使运维团队超负荷的问题。
它通过在部署管道的后续阶段自动化,能够更好发挥持续集成的优势。
红帽资源
利用自动化支持 DevOps
CI/CD 需要开发和运维团队携手,通过 DevOps 或站点可靠性工程(SRE) 方法以敏捷方式协同支持。
采用敏捷方法进行软件开发将加快发布周期,缩短停机时间,以及能够在错误发生时立刻修复,而不是等到新版本发布之后再进行修复。
如果开发团队以一种方式部署应用或配置环境,而运维团队以另一种方式部署和配置,则自动化部署不能发挥作用。
环境要实现自动化,需要保持一致。每种环境应使用相同的部署过程,包括生产环境。
如果这些团队不一致,您就可能遭遇运维团队手动部署的风险,从而导致出错、不一致以及发布周期延长。
正因为此,让开发团队和运维团队协同工作并遵循 DevOps 实践相当重要。自动化部署流程需要由开发团队和运维团队一起创建,以便团队之间相互协调,保持一致,确保流程可重复。
软件部署流程自动化
部署管道通常包含 3 个主要步骤(虽然可能还有更多步骤):构建、测试、部署。这个管道能够支持您实现部署流程自动化,并确保代码快速从提交移至部署。
- 构建:开发人员将代码提交到软件存储库。对代码进行的更改应集成到与生产环境匹配的环境中。
- 测试:Jenkins 或 Ansible 等自动化部署工具将识别新的代码,并触发一系列测试。一旦构建版本通过所有测试,即可发布到生产环境中。如果没有自动化部署流程,这一步会手动进行。
- 部署:在这个阶段,应用部署到生产环境中并可供用户使用。
对于采用敏捷和 DevOps 方法的团队,测试应该与开发同时进行。反馈意见应不断地传回给开发团队。
开发过程中应不断进行持续集成,从而避免这些频繁的更新彼此发生冲突。成功的 CI 表明应用代码的新更改会定期构建、测试并合并到共享存储库中。
您还应能够按需部署环境。如果您需要提交环境创建请求,则您的流程不会自动执行。
通过红帽 Ansible 自动化平台实现自动化部署
红帽® Ansible® 自动化平台中包含了实现企业级自动化所需的各种工具,包括 Playbook、可视化控制面板和分析功能。
红帽 Ansible 自动化平台允许您从一个通用框架可靠一致地部署多层应用。您可以配置所需的服务,并从一个通用系统推送应用工件。
用 YAML 编写的 Ansible Playbook 描述了系统的理想状态,其通常保留在源代码控制中。不管您的系统当前状态如何,红帽 Ansible 自动化平台都可使其进入理想状态。
Ansible Playbook 使您的安装、升级和日常管理具有可重复性和可靠性。
此外,红帽 Ansible 自动化平台在 2020 年第 3 季度的“Forrester Wave™:基础架构自动化平台”中还被 Forrester Research 评为“领导者”。
企业不仅需要具备轻松创建自动化的能力,而且需要能在项目和团队之间以适当的监管和控制水平来共享和重新使用自动化。
有了适合的自动化解决方案,您就可以更快速地部署新的应用和服务,更有效地管理 IT 基础架构,同时还可以提高应用开发效率。
红帽官方博客
获取有关我们的客户、合作伙伴和社区生态系统的最新信息。