REL08-BP05 使用自动化功能部署更改 - 可靠性支柱

REL08-BP05 使用自动化功能部署更改

自动部署与修补以消除负面影响。

对许多组织来说,对生产系统进行变更是风险最大的工作之一。除了软件解决的业务问题外,我们认为部署也是亟待解决的首要问题。如今,这意味着根据实际情况在操作中使用自动化,包括测试和部署更改、添加或删除容量以及迁移数据。

期望结果:您通过全面的预生产测试、自动回滚和分阶段生产部署,将自动化部署安全性融入发布流程中。这种自动化尽可能地减少了部署失败对生产造成的潜在影响,开发人员不再需要主动关注部署到生产的情况。

常见反面模式:

  • 您手动执行更改。

  • 您跳过自动化流程中的步骤,采用手动应急工作流。

  • 您急于求成,而不遵循既定的计划和流程。

  • 您在不预留烘焙时间的情况下,快速执行了后续部署。

建立此最佳实践的好处:当您使用自动化功能来部署所有更改时,可以消除引入人为错误的可能性,并实现了在更改生产环境之前进行测试的能力。在生产推送之前执行此流程,以便验证您的计划是否能完成。此外,自动回滚到发布流程可以识别生产问题,并将您的工作负载恢复到以前的正常工作运行状态。

在未建立这种最佳实践的情况下暴露的风险等级:中等

实施指导

实现部署管道的自动化。借助部署管道,您可以调用自动化测试和异常检测,并且能够在生产部署前的某个步骤停止管道,或自动回滚更改。其中必不可少的是采用持续集成和持续交付/部署(CI/CD)文化,这样一来,提交或代码更改会经过各种自动化阶段,完成构建和测试,并最终部署至生产环境中。

虽然传统观点认为,您应该让人来处理循环中最困难的操作程序,但出于相同的原因,我们建议您将最困难的程序自动化。

实施步骤

您可以按照以下步骤实现自动化部署,从而消除手动操作:

  • 设置代码存储库来安全地存储您的代码:使用 AWS CodeCommit,创建基于 Git 的安全存储库。

  • 配置持续集成服务来编译源代码、运行测试和创建部署构件:要为此目的设置构建项目,请参阅 Getting started with AWS CodeBuild using the console

  • 设置部署服务,以自动执行应用程序部署并处理复杂的应用程序更新,而无需依赖容易出错的人工部署过程:AWS CodeDeploy 可自动将软件部署到各种计算服务,例如 Amazon EC2、AWS FargateAWS Lambda 和本地服务器。要配置这些步骤,请参阅 Getting started with CodeDeploy

  • 设置持续交付服务,实现发布管道的自动化,从而带来更快、更可靠的应用程序和基础设施更新:请考虑使用 AWS CodePipeline 来帮助您实现发布管道的自动化。有关更多详细信息,请参阅 CodePipeline tutorials

资源

相关最佳实践:

相关文档:

相关视频: