AWS白皮书 – 卓越操作
本文讲解AWS良好架构框架(AWS Well-Architected Framework)里其中五大支柱之一:卓越操作(Operational Excellence)。
卓越操作包含了管理生产负载的运营实践和流程,比如计划的变更如何去执行、如何应对预料之外的运营事故。
变更的执行和响应应当可以自动化进行,所有卓越操作的流程和程序都应该被记录、测试和定期的审查。
设计原则
- 利用代码执行操作:我们可以将所有云环境中的基础架构都定义为代码,并且通过代码管理和更新它们。我们可以将操作步骤做成脚本,通过事件响应来触发脚本的自动执行。这样子可以减少人工的错误,保证对事件响应的一致性。
- 进行频繁、小型、可逆的变更:对工作负载中的组件进行定期更新,并且保证这些更新是小型的、增量的、可逆的。而不是大型的、批量的更新。
- 预见失败:通过“预演”来找出潜在的不足之处,并且从中找到并解决有可能的系统薄弱点。同时可以让操作人员熟悉这个响应过程和处理方法。比如NetFlix的Simian Army中的Chaos Monkey就是专门用来制造随机错误,帮助搭建更加健壮的系统的工具。
- 从失败中汲取经验:通过所有操作事件和失败中汲取经验来推动改进。将汲取的经验在团队内部或整个组织内进行分享。
- 注释文档:所有的文档可以在构建后自动注释,并且可以让注释文档作为你的操作代码输入。同时,需要保证文档的版本持续性地进行更新。
- 经常优化操作流程:寻找机会优化操作流程,组织定期的Game Day促销日来验证流程的有效性,并且让团队成员熟悉这么流程。
定义
云环境的卓越操作主要由以下三方面组成:
- 筹备(Preparation)
- 团队应该对整个工作负载,他们在其中的角色,以及共享的业务目标有一个共同的理解,从而设置能够帮助业务成功的操作优先级。
- 你需要通过日志记录以及富有洞察力的业务和技术指标进行观察。
- 你应该有一致的流程来了解何时准备好启动工作负载。
- 核心服务:Cloudformation, AutoScaling, AWS Config, Tagging
- 常见问题:
- 你使用的云操作流程有什么最佳实践?
- 你如何进行配置管理?
- 操作(Operation)
- 团队应该能够掌握工作负载的运行状况,你将系统通过基于运行结果的指标来获取有用的见解。你应该使用这些指标来实施具有业务和技术观点的仪表盘,来帮助团队成员做出明智的选择。
- 你应该预见操作事件,包括计划内的事件和计划外的事件,并且尽量自动化。
- 可以创建CI/CD流程 (源代码仓库、系统搭建、测试/开发自动化等)。
- 核心服务:AWS CodeCommit, AWS CodeDeploy, AWS CodePipeline, AWS CloudTrail
- 常见问题:
- 如何在最小变更影响的情况下对的你业务系统进行变革?
- 如何监控你的系统来保证它可以按预期一样运行?
- 演进(Response)
- 在出现故障时,保证你的团队能够从失败中汲取经验,并且制定改进计划。
- 分享团队的学习收获,增加整个团队的收益。
- 核心服务:CloudWatch
- 常见问题:
- 如何处理意料之外的运营事件?
- 在处理意料之外的事件的时候有什么事件升级的流程?
更多关于卓越操作的资料,请阅读卓越操作支柱 – AWS良好架构框架。