前言
- 写一个软件系统和建筑工程很类似,如果基础不牢固,结构性问题会暗中侵蚀建筑物的功能和完整性
- 基于AWS设计技术解决方案时,如果忽视卓越操作、安全性、可靠性、性能效率和成本优化这五大支柱,交付一个能满足你需求期望的系统可能就比较困难
- 如果把这五大支柱纳入架构设计时的考量范围,能够帮助我们构建稳定、高效的软件系统,从而有更多的精力投入其他方面的工作,例如业务功能需求
什么是AWS Well-Architected Framework?
AWS Well-Architected Framework可帮助云架构师为其应用程序构建安全、高性能、具有弹性和高效的基础设施。基于安全性、可靠性、性能效率、成本优化和卓越操作这五个基础支柱,此框架为客户和合作伙伴提供了一种评估架构的一致方法,并实施能够在使用中扩展的设计。
五大支柱概览
卓越操作
定义
卓越操作支柱侧重于运行和监测系统以提供业务价值,并不断改进流程和程序。关键主题包括:管理和自动化变更、响应事件以及定义标准以成功管理日常操作。
白皮书
https://d1.awsstatic-china.com/whitepapers/architecture/AWS-Operational-Excellence-Pillar.pdf
设计原则
- 使用代码进行操作
- 为文档做注释
- 用高频率、单一变更内容(小)、可回退的变更替代大批量的变更
- 持续改进变更流程
- 预见错误的发生
- 从所有操作错误中学习
最佳实践
- 运维人员需要理解业务和客户需求才能正确支撑业务
- 运维人员创建操作流程并在实践中检验流程是否有效支持业务需要
- 运维人员需要通过采集指标来衡量业务需要是否达到要求,得到满足
- 业务场景、业务优先级、客户需求会不断发生变化,在变化来临是,需要能够及时调整操作流程以适应改变
安全性
定义
安全支柱侧重于保护信息和系统。关键主题包括:数据的机密性和完整性、识别和管理谁可以进行哪些权限管理工作、保护系统以及建立检测安全事件的控制措施。
白皮书
https://d1.awsstatic-china.com/whitepapers/architecture/AWS-Security-Pillar.pdf
设计原则
- 强身份认证作为基础
- 使系统具备可追溯能力
- 在不同层级上确保安全性
- 自动化安全性最佳实践
- 静止的和传输中的数据都要保护
- 提前为安全事故做好准备
最佳实践
- 在设计系统之前,考虑谁可以使用它?怎么识别安全事故?如何保障数据的完整性和可靠性?
- 需要指定详细的并且经过实践验证的安全事故响应流程,这对于减少商业损失和遵循监管意义重大
- 定义AWS责任共担模型,AWS与客户分别承担相应的责任
可靠性
定义
可靠性支柱侧重于预防故障、快速从故障中恢复根据业务量动态调整资源以满足业务和客户需求的能力。关键主题包括:设置相关的基本要素、跨项目要求、恢复计划以及我们如何处理变更。
白皮书
https://d1.awsstatic-china.com/whitepapers/architecture/AWS-Reliability-Pillar.pdf
设计原则
- 测试故障恢复流程,演练异常恢复方案
- 自动从异常中恢复
- 通过水平扩展提升服务整体可用性
- 停止猜测系统能力
- 通过自动化管理变更
最佳实践
- 可靠性的达成,要求对系统各个方面进行监控、配置相应的告警策略、管控变更、能够从错误中自愈
- 考虑基础底座的可靠性,例如网络带宽
性能效率
定义
性能效率支柱侧重于高效使用 IT 和计算资源。关键主题包括:根据工作负载要求选择合适的资源类型和大小、监测性能以及做出明智的决策以在业务需求发展或技术革新时维持效率。
白皮书
https://d1.awsstatic-china.com/whitepapers/architecture/AWS-Performance-Efficiency-Pillar.pdf
设计原则
- 广泛采用先进技术
- 全球范围分钟级可达
- 使用无服务器架构
- 频繁进行实验
- 理解机器?
最佳实践
- 数据驱动,收集各个方面的数据,从高层次的设计层面决定资源的规格
- 通过监控发现性能效率异常以及时采取行动,循环检视确保在云化过程中活得了收益
- 根据业务场景需求,适当权衡取舍,比如压缩或缓存、降低一致性要求优化性能
成本优化
定义
成本优化侧重于避免不必要的成本。关键主题包括:了解和控制资金的使用、选择最合适的资源类型和数量、分析一段时间内的支出以及扩展以满足业务需求而不超支。
白皮书
https://d1.awsstatic-china.com/whitepapers/architecture/AWS-Cost-Optimization-Pillar.pdf
设计原则
- 确定一个消费模型
- 度量整体的效率
- 停止在数据中心操作上支出
- 分析分类支出
- 相对于完全拥有服务的所有权,使用代理管理的服务以减少支出
最佳实践
- 成本也是需要权衡的,比如需要快速上线,过点、交付市场,提供新特性,把成本先放一放也不是不可以
- 违背了经验数据进行设计决策,总是想着以防万一,可能会导致极大的资源浪费增加不必要的开销
- 选择合适规格的资源实例是成本控制的钥匙,比如一个业务程序在小规格实例上需要跑5个小时,而在大规格的实例上只需要跑1个小时,哪一种才是最高效的?
总结
AWS Well-Architected Framework提供了架构完善的五大支柱以及最佳实践,帮助我们基于AWS设计和操作可靠、安全、性能成本高效的系统,从而有更多的精力投入其他方面的工作,例如业务功能需求。
More
卓越操作与可靠性,卓越操作其实是为了降低运维过程中犯错的可能,或缩短因犯错导致系统不可用的时长,从运维层面保障了系统的可靠性。AWS架构完善五大支柱中的卓越操作与可靠性相关的设计原则和最佳实践与Google的SRE中的许多思想(如监控系统、变更管理、制定服务质量目标等)是一致的。
安全性,作为一名开发人员,曾经被测试提出不少安全问题,类别五花八门:有横向纵向越权问题、存储/打印用户敏感信息、文件目录权限过大、系统使用弱密码、使用root权限启动业务进程,引入带有漏洞或存在法务风险的第三方软件等。系统的安全性是重中之重,在实际工作中,我们通过安全设计、安全编码以及安全测试保障系统的安全性达到要求、符合地方法规。