性能效率
性能效率 支柱包括 高效利用计算资源来满足系统要求,并随着需求变化和技术演进保持这种效率的能力。
性能效率支柱概述了设计原则、最佳实践和问题。如需有关具体实施的说明性指导,请参阅性能效率支柱白皮书。
设计原则
云中的 性能效率 有 five 项设计原则:
-
普及先进技术: 通过将复杂的任务委派给云供应商,降低您的团队实施高级技术的难度。与要求您的 IT 团队学习有关托管和运行新技术的知识相比,考虑将新技术作为服务使用是一种更好的选择。例如,NoSQL 数据库、媒体转码和机器学习都是需要专业知识才能使用的技术。在云中,这些技术会转变为团队可以使用的服务,让团队能够专注于产品开发,而不是资源预置和管理。
-
数分钟内实现全球化部署: 您可以在全球多个 AWS 区域中部署工作负载,从而以最低的成本为客户提供更低的延迟和更好的体验。
-
使用无服务器架构: 借助无服务器架构,您无需运行和维护物理服务器即可执行传统计算活动。例如,无服务器存储服务可以充当静态网站(从而无需再使用 Web 服务器),事件服务则可以实现代码托管。这不仅能够消除管理物理服务器产生的运行负担,还可以借由以云规模运行的托管服务来降低业务成本。
-
提升试验频率: 利用虚拟和可自动化的资源,您可以快速利用各种类型的实例、存储或配置执行各种测试。
-
考虑软硬件协同编程: 了解如何使用云服务,并始终使用最适合您工作负载目标的技术方法。例如,在选择数据库或存储方法时考虑数据访问模式。
定义
云中的 性能效率 有 four 个最佳实践领域:
采用数据驱动型方法来构建高性能架构。收集架构各方面的数据,从总体设计到资源类型的选择与配置都包括在内。
定期审核您的选择,确保充分利用不断发展的 AWS 云的优势。监控可以确保您随时发现与预期性能的偏差。您可以对您的架构作出权衡以便提高性能,例如使用压缩或缓存,或放宽一致性要求。
最佳实践
选择
针对特定工作负载的最佳解决方案各不相同,而且解决方案通常会结合多种方法。架构完善的工作负载会使用多种解决方案,并且启用各种不同的功能来提高性能。
我们提供多种类型和配置的 AWS 资源,可让您更轻松地找到最能满足您工作负载需求的方法。此外,我们还提供了无法使用本地基础设施轻松实现的选项。例如,Amazon DynamoDB 之类的托管服务可以提供完全托管的 NoSQL 数据库,确保在任何规模下都只会有几毫秒的延迟。
以下问题主要针对 性能效率 的准备阶段。
PERF 1: 如何选择性能最好的架构? |
使用数据驱动型方法来为您的架构选择模式和实施方式,获得经济高效的解决方案。AWS 解决方案架构师、AWS 参考架构和 AWS 合作伙伴网络 (APN) 合作伙伴可以根据自身的专业知识帮助您选择合适的架构,不过将需要通过基准测试或负载测试提取的数据来优化您的架构。
您的架构可能会结合多种不同的架构方法(例如事件驱动、ETL 或管道)。架构的实现将使用各种专门用于优化架构性能的 AWS 服务。在接下来的章节中,我们会介绍您应该考虑的四种主要资源类型:计算、存储、数据库和网络。
计算
选择满足您的要求和性能需求并具有出色成本效益的计算资源,将使您能够利用同等数量的资源获取更多收益。在评估计算选项时,请注意您的工作负载性能需求和成本要求,并以此做出明智的决策。
在 AWS 中,计算有三种形式:实例、容器和函数:
-
实例是虚拟化的服务器,因此您只需单击一个按钮或发起一次 API 调用即可更改其功能。因为云中的资源决策不是固定不变的,所以您可以尝试使用不同的服务器类型。在 AWS 中,这些虚拟服务器实例具有不同的系列和尺寸,并且可以提供各种功能,包括固态硬盘 (SSD) 和图形处理单元 (GPU)。
-
容器是实现操作系统虚拟化的一种方法,让您能够在资源隔离的进程中运行应用程序及其依赖项。AWS Fargate 是适用于容器的无服务器计算引擎。如果您需要控制计算环境的安装、配置和管理,则可以使用 Amazon EC2。此外,您还可以从多个容器编排平台中进行选择:Amazon Elastic Container Service (ECS) 或 Amazon Elastic Kubernetes Service (EKS)。
-
函数从您要执行的代码中抽象出执行环境。例如,AWS Lambda 让您可以在不运行实例的情况下执行代码。
以下问题主要针对 性能效率 的准备阶段。
PERF 2: 如何选择计算解决方案? |
在设计如何使用计算资源时,您应该利用弹性机制来确保自己具有充足的容量,以便在需求发生变化时保持性能水平。
存储
云存储是云计算的关键组成部分,它存储着工作负载所使用的信息。云存储通常比传统的本地存储系统更加安全可靠且可扩展。从对象、数据块和文件存储服务以及您工作负载的云数据迁移选项中进行选择。
在 AWS 中,存储有三种形式:对象、数据块和文件:
-
对象存储提供了一个可扩展的耐用平台,允许从任何互联网位置访问数据,适用于用户生成的内容、活跃的存档、无服务器计算、大数据存储或备份,以及恢复。Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。Amazon S3 的耐用性可达到 99.999999999%(11 个 9),为全球各地的公司存储数百万个应用程序的数据。
-
数据块存储可为每个虚拟主机提供具有高可用性、一致性且低延迟的数据块存储,类似于直连式存储 (DAS) 或存储区域网络 (SAN)。Amazon Elastic Block Store (Amazon EBS) 旨在满足需要持久性存储的工作负载的需求,此类持久性存储可通过 EC2 实例访问,可帮助您根据适合的存储容量、性能和成本对应用程序进行微调。
-
文件存储可以跨多个系统提供对共享文件系统的访问。Amazon Elastic File System (EFS) 等文件存储解决方案非常适合大型内容存储库、开发环境、媒体存储或用户主目录等使用案例。Amazon FSx 让您可以轻松且经济高效地启动和运行热门文件系统,因此您可以利用应用广泛的开源和商业许可文件系统的丰富功能集和快速性能。
以下问题主要针对 性能效率 的准备阶段。
PERF 3: 如何选择存储解决方案? |
选择存储解决方案时,确保它与您的访问模式保持一致对于实现预期性能至关重要。
数据库
云可以提供专用数据库服务,解决您的工作负载所带来的各种问题。您可以从许多专用数据库引擎(包括关系、键值、文档、内存、图形、时间序列和分类账数据库)中进行选择。通过选择最佳数据库来解决特定问题或一组问题,您可以摆脱限制性的“一刀切”整体式数据库,并专注于构建应用程序以满足客户的性能需求。
在 AWS 中,您可以从多个专用数据库引擎(包括关系、键值、文档、内存、图形、时间序列和分类账数据库)中进行选择。有了 AWS 数据库,您再也无需担心数据库管理任务,例如数据库预置、修补、设置、配置、备份或恢复。AWS 会通过自修复存储和自动扩展功能持续监控您的集群,以使您的工作负载保持正常运行,这样您就可以专注于更高价值的应用程序开发。
以下问题主要针对 性能效率 的准备阶段。
PERF 4: 如何选择数据库解决方案? |
工作负载的数据库方法对性能效率具有重大影响。它通常是根据组织默认设置(而不是通过数据驱动型方法)选择的区域。如同考虑存储问题时一样,请务必要考虑工作负载的访问模式,另外还要考虑其他非数据库解决方案是否可以更高效地解决问题(例如图形、时间序列或内存存储数据库)。
网络
由于网络位于所有工作负载组件之间,因此可能会对工作负载性能和行为产生巨大的正面和负面影响。还有一些严重依赖网络性能的工作负载,例如,对于高性能计算 (HPC),深入了解网络对于提高群集性能很重要。您必须确定带宽、延迟、抖动和吞吐量方面的工作负载要求。
在 AWS 中,网络资源以虚拟化形式存在,而且支持多种类型和配置。这让您可以更轻松地找到贴合您需求的网络方案。AWS 提供多种产品功能(例如增强联网、Amazon EBS 优化实例、Amazon S3 Transfer Acceleration 和动态 Amazon CloudFront)来优化网络流量。AWS 还提供多种联网功能(例如 Amazon Route 53 的基于延迟的路由、Amazon VPC 终端节点、AWS Direct Connect 和 AWS Global Accelerator)来减少网络距离或抖动。
以下问题主要针对 性能效率 的准备阶段。
PERF 5: 如何配置联网解决方案? |
您必须考虑部署网络的位置,您可以选择将资源放置在靠近使用地点的位置,以缩短距离。使用网络指标来随着工作负载的发展对网络配置进行更改。利用区域、置放群组和边缘服务,您可以显著提高性能。基于云的网络可以快速重建或修改,因此有必要随着时间的推移改进网络架构,以保持性能效率。
审核
云技术的发展日新月异,因此您必须确保工作负载组件使用的是最新的技术和方法,以持续提高性能。您必须不断评估工作负载组件并考虑对其进行更改,以确保您能够满足其性能和成本目标。机器学习和人工智能 (AI) 等新技术可以让您重塑客户体验,并对所有业务工作负载进行创新。
利用由客户需求驱动的 AWS 持续创新。我们会定期发布新的区域、边缘站点、服务和功能。这些发布内容都可以明显提高架构的性能效率。
以下问题主要针对 性能效率 的准备阶段。
PERF 6: 如何改进工作负载以便利用新的版本? |
通常,不存在或不完整的性能审核流程会导致架构性能不佳。如果您的架构性能不佳,请实施性能审核流程,以便应用戴明的计划-执行-检查-处理 (PDCA) 循环来驱动迭代改进。
监控
实施工作负载后,必须监控其性能,以便在问题对客户造成影响之前进行补救。您应该使用监控指标,确保系统在指标超出阈值时发出告警。
Amazon CloudWatch 是一项监控和可观测性服务,可为您提供相关数据和切实见解,以监控工作负载、响应系统范围的性能变化、优化资源利用率,并在统一视图中查看运行状况。CloudWatch 以日志、指标和事件的形式从在 AWS 和本地服务器上运行的工作负载中收集监控和运营数据。AWS X-Ray 可以帮助开发人员分析和调试分布式生产应用程序。借助 AWS X-Ray,您可以了解应用程序的执行情况,发现性能问题,并找到根本原因。使用这些分析结果,您可以快速做出反应,保证工作负载顺畅运行。
以下问题主要针对 性能效率 的准备阶段。
PERF 7: 如何监控资源以确保其性能? |
有效监控解决方案的关键是确保不会看到误报。自动触发器可以避免人为错误,并且可以缩短解决问题的用时。请安排时间在生产环境中执行模拟以测试告警解决方案,确保它可以正确识别各种问题。
权衡
在架构解决方案时,需要权衡各种因素才能确保获得最佳方案。根据具体情况,您可以在一致性、持久性和空间与时间或延迟之间进行权衡,以便实现更高的性能。
使用 AWS,您可以在几分钟内实现全球化部署,并可在世界范围内的多个位置部署资源,从而缩短与最终用户的距离。您还可以将只读副本动态添加到信息存储系统(例如数据库系统),以减少主数据库的负载。
以下问题主要针对 性能效率 的准备阶段。
PERF 8: 如何使用权衡机制来提高性能? |
对工作负载进行更改时,需要收集并评估各项指标,以确定更改产生的影响。衡量对系统和最终用户的影响,以便了解权衡机制如何影响工作负载。使用负载测试等系统的方法来确定权衡机制是否可以提高性能。
资源
请参阅以下资源,详细了解有关 性能效率 的最佳实践。
Performance Efficiency PillarAmazon S3 Performance Optimization
Amazon EBS Volume Performance
AWS re:Invent 2019: Amazon EC2 foundations (CMP211-R2)
AWS re:Invent 2019: Leadership session: Storage state of the union (STG201-L)
AWS re:Invent 2019: Leadership session: AWS purpose-built databases (DAT209-L)
AWS re:Invent 2019: Connectivity to AWS and hybrid AWS network architectures (NET317-R1)
AWS re:Invent 2019: Powering next-gen Amazon EC2: Deep dive into the Nitro system (CMP303-R2)
AWS re:Invent 2019: Scaling up to your first 10 million users (ARC211-R)