View a markdown version of this page

OPS05-BP03 使用配置管理系统 - AWS Well-Architected Framework

OPS05-BP03 使用配置管理系统

使用配置管理系统来实现和跟踪配置更改。这些系统可以减少手动过程引起的错误,并减少部署更改的工作量。

静态配置管理在初始化资源时设置值,这些值在资源的生命周期内预期会保持一致。这样的例子包括为实例上的 Web 或应用程序服务器设置配置,或者定义 AWS 服务的配置(在 AWS 管理控制台 内或者通过 AWS CLI)。

动态配置管理在初始化时设置值,这些值在资源的生命周期内可能或预期会发生变化。例如,您可以设置一个功能切换,通过配置更改在代码中激活功能,或者在意外事件期间更改日志详细级别以捕获更多数据,然后在意外事件完成后更改回来,避免不再必要的日志记录及其相关费用。

在 AWS 上,您可以使用 AWS Config 持续监控 AWS 资源配置 - 跨账户和区域。这有助于您跟踪其配置历史记录,了解配置更改会如何影响其他资源,并使用 AWS Config 规则AWS Config 合规包根据预期或所需的配置审计它们。

如果您在 Amazon EC2 实例、AWS Lambda、容器、移动应用程序或物联网设备上运行的应用程序具有动态配置,则可以使用 AWS AppConfig 在您的环境中配置、验证、部署和监控它们。

在 AWS 中,您可以使用像 AWS 开发人员工具 (例如,AWS CodeCommitAWS CodeBuildAWS CodePipelineAWS CodeDeployAWS CodeStar)这样的服务来构建持续集成/持续部署(CI/CD)管道。

期望的结果: 可以作为持续集成、持续交付(CI/CD)管道的一部分进行配置、验证和部署。通过监控来验证配置是否正确。这样可以最大限度地减少对最终用户和客户的任何影响。

常见反模式:

  • 您手动更新整个队列中的 Web 服务器配置,由于更新错误,许多服务器变得没有响应。

  • 手动更新应用程序服务器队列需要花费很长时间。在变更过程中,如果配置不一致会导致意外行为发生。

  • 有人更新了您的安全组,您的 Web 服务器无法访问了。如果不知道发生了哪些变更,您需要花费大量时间来调查问题,导致恢复时间延长。

  • 未经验证即通过 CI/CD 将预生产配置推送到生产环境中。您让用户和客户接触到不正确的数据和服务。

建立此最佳实践的好处: 采用配置管理系统可以减少更改及对其进行跟踪的工作量,还可以降低手动程序导致错误的频率。配置管理系统为治理、合规性和监管要求提供了保障。

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

实施指导

配置管理系统用于跟踪和实施对应用程序和环境配置的更改。配置管理系统还用于减少手动流程引起的错误,使配置更改可重复且可审核,并减少工作量。

实施步骤

  1. 确定配置负责人。

    1. 让配置负责人了解任何合规性、治理或监管需求。

  2. 确定配置项和可交付成果。

    1. 配置项是受您的 CI/CD 管道内的部署影响的所有应用程序和环境配置。

    2. 可交付成果包括成功标准、验证和要监控的内容。

  3. 根据您的业务需求和交付管道,选择配置管理工具。

  4. 考虑使用加权部署,例如用于重大配置更改的金丝雀部署,以尽可能减少错误配置的影响。

  5. 将您的配置管理集成到 CI/CD 管道中。

  6. 验证所有推送的更改。

资源

相关最佳实践:

相关文档:

相关视频: