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

OPS 5: 如何减少缺陷、简化修复和改进生产流程?

支持在生产时调整改进流程并支持重构、快速质量反馈和错误修复方法。这些方法可以加快有益更改进入生产环境的速度、减少产生的问题,并能够快速识别和修复通过部署活动引入的问题。

资源

CI/CD for Serverless Applications on AWS
Design with Ops in Mind
AWS Developer Tools

最佳实践:

改进计划

使用版本控制

  • 使用版本控制: 在受到版本控制的存储库中维护资产。这让您能够跟踪更改、部署新版本、检测对现有版本的更改,以及恢复到以前的版本(例如在发生故障时回滚到已知的良好状态)。将配置管理系统的版本控制功能集成到程序中。
    Introduction to AWS CodeCommit
    What is AWS CodeCommit?
  • 测试并验证变更

  • 测试并验证变更: 应该在所有生命周期阶段(例如开发、测试和生产阶段)测试更改并验证结果。使用测试结果来确认新功能,并减少部署失败的风险和影响。实现自动测试和验证,以便确保审核的一致性、减少手动过程引起的错误并减少工作量。
    What is AWS CodeBuild?
    Local build support for AWS CodeBuild
  • 使用配置管理系统

  • 使用配置管理系统: 使用配置管理系统来跟踪并实施更改,以便减少手动过程引起的错误,并减少工作量。
    Infrastructure configuration management
    AWS Config
    What is AWS Config?
    Introduction to AWS CloudFormation
    What is AWS CloudFormation?
    AWS OpsWorks
    What is AWS OpsWorks?
    Introduction to AWS Elastic Beanstalk
    What is AWS Elastic Beanstalk?
  • 使用构建和部署管理系统

  • 使用构建和部署管理系统: 使用构建和部署管理系统来跟踪并实施更改,以便减少手动过程引起的错误,并减少工作量。将集成和部署管道完全自动化,从代码签入到构建、测试、部署和验证都包含在内。这可以减少准备时间、提高更改频率,并减少工作量。
    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?
  • 执行补丁管理

  • 补丁管理: 修补系统以便纠正问题、获得所需的特性或功能、符合监管政策并满足供应商支持需求。在不可变系统中,使用适当的补丁集进行部署,以便实现所需结果。自动执行补丁管理机制以便缩短修补时间、减少手动过程引起的错误,并减少修补工作量。
    AWS Systems Manager Patch Manager
  • 共享设计标准

  • 共享设计标准: 在不同团队间共享现有的最佳实践、设计标准、检查清单、操作程序、指南和监管要求,以便降低复杂性并充分发挥开发工作的作用。确保建立针对设计标准的更改、补充和例外请求程序,以便支持持续改进和创新。确保团队了解已发布的内容,从而让他们能够利用内容,并减少返工和浪费的工作。
    Delegating access to your AWS environment
    Share an AWS CodeCommit repository
    Easy authorization of AWS Lambda functions
    Sharing an AMI with specific AWS accounts
    Speed template sharing with an AWS CloudFormation designer URL
    Using AWS Lambda with Amazon SNS
  • 实施提高代码质量的实践

  • 实施提高代码质量的实践: 实施提高代码质量的实践,以便尽可能减少缺陷并降低部署代码的风险。例如测试驱动型开发、结对编程、代码审查和标准采用。
  • 使用多个环境

  • 使用多个环境: 为开发人员提供控制机制最少的沙盒环境,以便支持试验。提供单独的开发环境以便支持并行工作,并提高开发的灵活性。在接近生产的环境中实施更严格的控制,让开发人员能够自由创新。使用基础设施即代码和配置管理系统来部署与生产环境中的控制机制配置一致的环境,以便确保系统在部署后按照预期运行。关闭不使用的环境,以免空闲资源(例如晚上和周末的开发系统)产生费用。在负载测试时部署与生产等效的环境,以便实现有效结果。
    What is AWS CloudFormation?
    How do I stop and start Amazon EC2 instances at regular intervals using AWS Lambda?
  • 频繁进行可逆的小规模更改

  • 频繁进行可逆的小规模更改: 频繁进行可逆的小规模变更可以减少变更的范围和影响。这可以简化故障排除、支持更快的修复,并提供回滚更改的选项。这还可以加快企业实现价值的速度。
  • 完全自动化集成和部署

  • 使用构建和部署管理系统: 使用构建和部署管理系统来跟踪并实施更改,以便减少手动过程引起的错误,并减少工作量。将集成和部署管道完全自动化,从代码签入到构建、测试、部署和验证都包含在内。这可以减少准备时间、提高更改频率,并减少工作量。
    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?