AWS 完善架构框架 | AWS 白皮书摘要
框架的五大支柱
通用设计原则
(1)卓越运营
(2)安全
(3)可靠性
(4)性能效率
(5)成本优化
(6)可持续性
大家好,今天我将介绍 AWS
Original One中最重要的白皮书之一
AWS 完善架构框架可帮助您了解在 AWS 上构建系统时所做决策的利弊。通过使用该框架,您将学习在云中设计和运行可靠、安全、高效且经济高效的系统的架构最佳实践。它为您提供了一种根据最佳实践持续衡量架构的方法,并确定需要改进的领域。
AWS 还提供免费工作负载审查服务。AWS Well-Architected Tool(AWS WA Tool)是一项云服务,它为您提供一致的流程,让您能够使用 AWS Well-Architected Framework 审查和衡量您的架构。AWS WA Tool 提供
建议,帮助您提高工作负载的可靠性、安全性、效率和成本效益。
框架的五大支柱
AWS 完善架构框架基于五大支柱——
- 卓越运营能够支持开发并有效运行工作负载,深入了解其运营情况,并不断改进支持流程和程序以实现业务价值
- 安全安全支柱描述了如何利用云技术来保护数据、系统和资产,以改善您的安全态势。
- 可靠性可靠性支柱涵盖工作负载在预期时间内正确且一致地执行其预期功能的能力。这包括在工作负载的整个生命周期内对其进行操作和测试的能力。
- 性能效率有效利用计算资源来满足系统要求的能力,并随着需求变化和技术发展而保持这种效率的能力。
- 成本优化以最低价格运行系统以提供商业价值的能力
- 可持续性是帮助组织学习、衡量和改进云计算环境最佳实践的支柱
通用设计原则
* 停止猜测您的容量需求:
* 生产规模的测试系统:
* 自动化使建筑实验更容易
* 允许进化架构
* 使用数据驱动架构
* 通过游戏日提高
(1)卓越运营
卓越运营支柱包括支持开发和有效运行工作负载的能力、深入了解其运营情况以及不断改进支持流程和程序以实现业务价值的能力
设计原则
1. 按照代码执行操作
2. 进行频繁、小规模、可逆的更改
3. 经常改进操作程序
4. 预测故障
5. 从所有操作故障中学习
云端卓越运营的最佳实践领域有四个:
1.组织
- 您的团队需要对您的整个工作量和共同的业务目标有共同的理解,以便设定能够实现业务成功的优先事项。
- 评估涉及关键利益相关者(包括业务、开发和运营团队)的内部和外部客户需求,以确定努力的重点。
- 评估客户需求将确保您彻底了解实现业务成果所需的支持。
- 了解每个组件、流程和程序的商业价值,了解为什么这些资源到位或活动执行,以及为什么存在所有权,将指导您的团队成员的行动。
- 定义团队之间的协议,描述他们如何合作以相互支持并实现您的业务成果。
- 为您的团队成员提供支持,以便他们能够更有效地采取行动并支持您的业务成果。
- 授权团队成员在结果面临风险时采取行动,及时、清晰、可操作地沟通已知风险和计划事件,以便团队成员能够及时采取行动
- 如果您的组织有外部监管或合规性要求,您应该使用 AWS Cloud Compliance 提供的资源来帮助培训您的团队,以便他们能够确定对您的优先事项的影响。
- 您应该使用 AWS Support(AWS 知识中心、AWS 讨论论坛和 AWS 支持中心)和 AWS 文档提供的资源来培训您的团队。
2.准备
当您了解您的工作负载及其预期行为时,捕获广泛的信息以实现态势感知(例如,状态变化、用户活动、特权访问、利用率计数器),并知道您可以使用过滤器来选择随时间推移最有用的信息。
这些加速了进入生产的有益变化:
- 限制部署的问题
- 能够快速识别和修复部署过程中引入的问题
- 采用能够快速提供质量反馈并能够从未达到预期结果的变化中快速恢复的方法。
- 了解您环境中的计划活动,以便您可以管理影响计划活动的变更的风险。
- 了解利益和风险,以便做出明智的决定,允许变更进入生产。
3.操作
- 工作负载的成功运行取决于业务和客户成果的实现情况。
- 定义预期结果,
- 确定如何衡量成功
- 确定将在这些计算中使用的指标来确定您的工作负载和操作是否成功。
- 使用收集到的指标来确定您是否满足客户和业务需求,并确定需要改进的领域。
要实现卓越运营,就需要对运营事件进行高效、有效的管理。
4. 不断演进。
您必须学习、分享并持续改进,才能保持卓越的运营。在您的流程中纳入反馈循环,以便快速识别需要改进的领域,并从运营执行中汲取经验教训。
分析经验教训中的趋势,并对运营指标进行跨团队回顾性分析,以确定改进的机会和方法。
成功的运营演进基于以下几点:频繁的小改进;提供安全的环境和时间来实验、开发和测试改进;以及鼓励从失败中学习的环境。沙盒、开发、测试和生产环境的运营支持,以及不断提升的运营控制水平,促进了开发,并提高了部署到生产环境中的变更成功结果的可预测性。
也查看此会话
(2)安全
安全支柱包括保护数据、系统和资产的能力,以利用云技术来提高您的安全性
设计原则
1. 实施强大的身份基础(最小特权、职责分离、无长期静态凭证)
2. 启用可追溯性(监控、警报和审计操作)
3. 在所有层应用安全性
4. 自动化安全最佳实践
5. 保护传输中和静止的数据
6. 让人们远离数据
7. 为安全事件做好准备
云端安全有六个最佳实践领域:
1.安全
- 您必须将总体最佳实践应用于安全的每个领域。
- 及时了解 AWS 和行业建议以及威胁情报
- 自动化安全流程、测试和验证
2.身份和访问管理
- 您应该定义主体(即可以在您的帐户中执行操作的帐户、用户、角色和服务)
- 制定符合这些原则的政策
- 实施强有力的凭证管理
- 您应该在 IAM 服务中应用细粒度策略
- 应用强密码实践
- 使用临时凭证
- 任何用户或系统之间不得共享凭证
- 遵循最低权限方法
3.检测
- 使用侦探控制来识别潜在的安全威胁或事件
- 使用内部审计,检查控制措施
- 根据定义的条件自动发出警报通知
- CloudTrail 日志、AWS API 调用和 CloudWatch 提供带有警报的指标监控,AWS Config 提供配置历史记录
- 使用 GuardDuty 检测恶意或未经授权的行为
4.基础设施保护
任何具有某种形式的网络连接的工作负载,无论是互联网还是专用网络,都需要多层防御来帮助防御外部和内部网络威胁。
5.数据保护
- 您可以加密数据并管理密钥
- 提供包含重要内容(例如文件访问和更改)的详细日志记录
- 版本控制,可以作为更大的数据生命周期管理过程的一部分
- AWS 永远不会在区域之间发起数据移动
5.事件响应
- 提供包含重要内容的详细日志记录,例如文件访问和更改
- 通过使用 AWS API,可以自动处理事件并触发自动响应的工具
确保您有办法快速授予安全团队访问权限,并自动隔离实例以及捕获数据和状态以进行取证
AWS 责任共担模型助力采用云技术的组织实现其安全性与合规性目标。由于 AWS 以物理方式保护支持我们云服务的基础设施,因此作为 AWS 客户,您可以专注于使用服务来实现您的目标。
(3)可靠性
是指工作负载在预期时间内正确、一致地执行其预期功能的能力。
设计原则
- 自动从故障中恢复
- 测试恢复程序
- 水平扩展以提高总体工作负载可用性
- 别再猜测容量
- 管理自动化变革
云可靠性有四个最佳实践领域:
1.基础。AWS
有责任满足充足的网络和计算容量服务配额(也称为服务限制)。这些配额旨在防止意外配置超出需求的资源,并限制 API 操作的请求速率,从而保护服务免遭滥用
。2.工作负载架构。AWS
SDK 通过为 AWS 服务提供特定于语言的 API,简化了编码工作。这些 SDK 以及语言选择使开发人员能够实施此处列出的可靠性最佳实践。
即使这些网络中出现数据丢失或延迟,您的工作负载也必须可靠运行
。3.变更管理
- 必须预见到诸如需求激增、功能部署和安全补丁等变化
- 您可以监控工作负载的行为,并在工作负载获得更多用户时采取行动,例如添加其他服务器
- 您可以控制谁有权进行工作负载变更并审核这些变更的历史记录
- 变更管理控制确保您可以执行提供所需可靠性的规则。
4.故障管理
- 工作负载必须能够承受故障并自动修复问题
- 使用 AWS,当特定指标超过阈值时,您可以触发自动操作来解决问题
- 您可以替换失败的资源,而无需浪费时间去修复它
- 定期备份数据并测试备份文件
- 积极跟踪 KPI,以及恢复时间目标 (RTO) 和恢复点目标 (RPO)
- 您的恢复过程应该像您的正常生产过程一样得到良好的执行
(4)性能效率
能够高效利用计算资源来满足系统需求,并在需求变化和技术发展时保持这种效率
设计原则
- 使先进技术民主化(不要要求您的 IT 团队学习托管和运行新技术,而要考虑将该技术作为服务来使用)
- 几分钟内走向全球(多个 AWS 区域)
- 使用无服务器架构
- 更频繁地进行实验
- 考虑机械同情心,即:了解云服务的使用方式
云端性能效率的最佳实践领域有四个:
1. 选择
- 使用数据驱动的方法来选择适合您的架构的模式和实现,并实现具有成本效益的解决方案
- 您的架构的实施将使用专门用于优化架构性能的 AWS 服务
- 这里我们将讨论需要考虑的四种主要资源类型(计算、存储、数据库和网络)。
计算
- 我们有 3 种类型(实例、容器和函数)
- 工作负载的最佳计算解决方案因应用程序设计、使用模式和配置设置而异
- 您可以针对不同的组件使用不同的计算解决方案
贮存
- 云存储通常更可靠、可扩展且安全
- 存储有三种形式:对象、块和文件
- 系统的最佳存储解决方案会根据访问方式(块、文件或对象)、访问模式(随机或顺序)、所需的吞吐量、访问频率(在线、离线、归档)、更新频率(WORM、动态)以及可用性和持久性约束而有所不同。架构完善的系统会使用多种存储解决方案并启用不同的功能来提高性能并高效利用资源。
数据库
- 云提供专用数据库服务,解决您的工作负载所带来的不同问题
- 您拥有关系、键值、文档、内存、图形、时间序列和分类账数据库
- 您无需担心数据库管理任务,例如服务器配置、修补、设置、配置、备份或恢复
- 系统的最佳数据库解决方案根据可用性、一致性、分区容错性、延迟性、持久性、可扩展性和查询能力的要求而变化
网络
- 您必须确定带宽、延迟、抖动和吞吐量的工作负载要求
- 在 AWS 上,网络是虚拟化的,有多种不同的类型和配置可供选择
- 部署网络时必须考虑位置。您可以选择将资源放置在靠近使用地点的位置,以减少距离
- 通过利用区域、放置组和边缘服务,您可以显著提高性能
2.评论
- 您必须确保工作负载组件使用最新的技术和方法来不断提高性能
- 您必须不断评估并考虑对工作负载组件进行更改
- 使用机器学习和人工智能 (AI) 将使您能够在所有业务工作负载中进行创新
3.监控
- 您必须监控其性能,以便在问题影响客户之前进行补救
- Amazon CloudWatch 是您的英雄!
- AWS X-Ray 帮助开发人员分析和调试生产
4. 权衡取舍
您可以用一致性、持久性和空间来换取时间或延迟,从而实现更高的性能。
在对工作负载进行更改时,请收集并评估相关指标,以确定这些更改的影响。衡量这些更改对系统和最终用户的影响,以了解您的权衡取舍如何影响工作负载。使用系统性方法(例如负载测试)来探索这种权衡取舍是否能够提升性能。
(5)成本优化
是否能够以最低的价格运行系统来提供商业价值
设计原则
- 实施云财务管理
- 采用消费模式(仅为所需的计算资源付费)
- 衡量整体效率(业务产出与成本)
- 停止在无差别的繁重工作上花钱(AWS 就可以!)
- 分析和归因支出(这有助于衡量投资回报率(ROI))
云上成本优化的最佳实践领域有五个:
1.实践云财务管理
- 您可以使用 Cost Explorer,也可以选择将 Amazon Athena 和 Amazon QuickSight 与成本和使用情况报告 (CUR) 结合使用,以在整个组织内提供成本和使用情况感知
- AWS Budgets 提供成本和使用情况的主动通知
- 在您的组织中实施成本意识
2.支出及使用意识
- 准确的成本归因可以让您了解哪些产品真正有利可图,并让您在预算分配方面做出更明智的决策
- 您可以使用 AWS Organizations 创建账户结构来管理成本和使用情况
- 您还可以使用资源标记将业务和组织信息应用于您的使用情况和成本
- 使用 AWS Cost Explorer 了解您的成本和使用情况
- 使用 Amazon Athena 和 Amazon QuickSight 创建自定义仪表板和分析
- 使用 AWS 预算控制成本
- 您可以使用成本分配标签对 AWS 使用情况和成本进行分类和跟踪
3.高性价比的资源
- 为您的工作负载使用适当的实例和资源是节省成本的关键
- 使用托管服务来降低成本
- AWS 提供多种灵活且经济高效的定价选项,用于从 Amazon EC2 获取实例(按需实例/节省计划/预留实例/竞价实例)
- 使用 CloudFront 最大限度地减少数据传输,或完全消除成本
- 利用 RDS 上的 Amazon Aurora 消除昂贵的数据库许可成本
- 使用 AWS Trusted Advisor 定期审查您的 AWS 使用情况
4.管理需求和供应资源
- 您可以在需要时提供资源以满足工作负载需求,从而避免了昂贵且浪费的资源配置
- 自动扩展使用需求或基于时间的方法允许您根据需要添加和删除资源
- 您可以使用 Amazon API Gateway 实现限制,或使用 Amazon SQS 在工作负载中实现队列。这两种方式都允许您修改工作负载组件的需求。
5. 持续优化
- 实施新功能或资源类型可以逐步优化您的工作负载
- 您还可以使用新服务替换或向工作负载添加新组件
- 你必须定期检查你的工作量
(6)可持续性
最近,AWS 推出了新的 AWS Well-Architected Sustainability Pillar,以帮助组织使用云计算的环境最佳实践来学习、衡量和改进工作负载。
可持续发展
可以定义为“既满足当代人的需求,又不损害子孙后代满足其自身需求的能力的发展”。您的企业或组织可能会对环境产生负面影响,例如直接或间接的碳排放、不可回收的废物以及对清洁水等共享资源的破坏。
在构建云工作负载时,可持续性的实践是了解所使用服务的影响,量化整个工作负载生命周期的影响,并应用设计原则和最佳实践来减少这些影响
云端可持续性设计原则
在构建云工作负载时应用这些设计原则,以最大限度地提高可持续性并最大限度地减少影响。
-
了解您的影响:衡量云工作负载的影响,并模拟其未来的影响。涵盖所有影响源,包括客户使用您的产品所产生的影响,以及产品最终退役和淘汰所产生的影响。
-
制定可持续性目标:针对每个云工作负载,制定长期可持续性目标,例如减少每笔交易所需的计算和存储资源。为现有工作负载的可持续性改进建模投资回报,并为所有者提供投资可持续性目标所需的资源。
-
最大化利用率:合理调整工作负载规模,并实施高效设计,以确保高利用率,并最大限度地提高底层硬件的能效。由于每台主机的基准功耗,两台利用率为 30% 的主机的效率低于一台利用率为 60% 的主机。
-
预测并采用新的、更高效的硬件和软件产品:支持合作伙伴和供应商进行的上游改进,以帮助您减少云工作负载的影响
-
使用托管服务:在广泛的客户群中共享服务有助于最大限度地提高资源利用率,从而减少支持云工作负载所需的基础设施数量。例如,客户可以通过将工作负载迁移到 AWS 云并采用托管服务(例如用于无服务器容器的 AWS Fargate)来分担电源和网络等常见数据中心组件的影响。AWS 在这些服务中大规模运行并负责其高效运行。
-
降低云工作负载对下游的影响:减少使用服务所需的能源或资源。减少甚至消除客户升级设备以使用服务的需求。使用设备农场进行测试以了解预期影响,并与客户一起进行测试以了解使用服务的实际影响。
最后,感谢您耐心阅读此摘要,希望您觉得它有用
萨拉姆!
Ahmed Samir
AWS 英雄,你可以在Twitter或LinkedIn
上关注我