此内容已过时。此版本的架构完善的框架现在可在以下位置找到: https://docs.aws.amazon.com/zh_cn/wellarchitected/2022-03-31/framework/operational-excellence.html

OPS 6: 您如何缓解部署风险?

采用提供快速质量反馈,并且若更改没有达到目标成效,则支持快速恢复的方法。使用这些实践可以减轻因部署更改而产生的问题的影响。

资源

Deep Dive on Advanced Continuous Delivery Techniques Using AWS
AWS Developer Tools
AWS CodeDeploy User Guide
Try a Sample Blue/Green Deployment in AWS CodeDeploy

最佳实践:

改进计划

针对不成功的更改制定计划

  • 针对不成功的更改制定计划: 制定计划,以便在更改没有实现所需成果时在生产环境中恢复到已知良好状态(即回滚更改),或者进行修复(即前滚更改)。如果发现在失败后无法回滚的更改,请在提交更改之前做好准备。
  • 测试并验证变更

  • 测试并验证变更: 在所有生命周期阶段(例如开发、测试和生产)测试更改并验证结果,以便确认新功能并尽可能减少部署失败的风险和影响。
    AWS Cloud9
    What is AWS Cloud9?
    How to test and debug AWS CodeDeploy locally before you ship your code
  • 使用部署管理系统

  • 使用部署管理系统: 使用部署管理系统来跟踪并实施更改。这可以减少手动过程引起的错误,并减少部署更改的工作量。将集成和部署管道自动化,从代码签入到测试、部署和验证都包含在内。这可以减少准备时间、提高更改频率,并进一步减少工作量。
    Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
    What is AWS CodeDeploy?
    What is AWS Elastic Beanstalk?
    What is Amazon API Gateway?
  • 使用有限部署进行测试

  • 使用有限部署进行测试: 在全面部署之前使用现有系统和灰度发布进行测试,以便确认所需成果。例如使用 Canary 部署测试或一体化部署。
    Working with deployment configurations in AWS CodeDeploy
    Blue/Green deployments with AWS Elastic Beanstalk
    Set up an API Gateway canary release deployment
  • 使用并行环境进行部署

  • 使用并行环境进行部署: 在并行环境中实施更改,然后过渡或切换到新环境。保留之前的环境,直到确认部署成功为止。这样可以支持回滚到以前的环境,从而尽可能缩短恢复时间。例如在不可变基础设施中采用蓝/绿部署。
    Working with deployment configurations in AWS CodeDeploy
    Blue/Green deployments with AWS Elastic Beanstalk
    Set up an API Gateway canary release deployment
  • 部署频繁、小规模、可逆的更改

  • 部署频繁、小规模、可逆的更改: 频繁进行可逆的小规模更改可以缩小变更的范围。这样可以简化故障排除工作、加快修复速度,并支持回滚更改。
  • 完全自动化集成和部署

  • 使用构建和部署管理系统: 使用构建和部署管理系统来跟踪并实施更改,以便减少手动过程引起的错误,并减少工作量。将集成和部署管道完全自动化,从代码签入到构建、测试、部署和验证都包含在内。这可以减少准备时间、提高更改频率,并减少工作量。
    What is AWS CodeBuild?
    Continuous integration best practices for software development
    Slalom: CI/CD for serverless applications on AWS
    Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
    What is AWS CodeDeploy?
  • 自动测试和回滚

  • 自动测试和回滚: 自动测试部署的环境以便确认目标效果。在没有达到预期时自动回滚到之前的已知良好状态,尽可能缩短恢复时间,并减少手动过程引起的错误。例如,在部署之后执行详细的综合用户事务、验证结果,并在失败时回滚。
    Redeploy and roll back a deployment with AWS CodeDeploy