本文讲解AWS良好架构框架(AWS Well-Architected Framework)里其中五大支柱之一:性能效率(Performance Efficiency)。
性能效率支柱专注于高效利用计算资源来满足各类需求,同时随着需求变更和技术演进而不断保持这种效率水平。
设计原则
- 普及先进技术:在云环境中,我们可以直接使用很多先进的技术,比方说NoSQL数据库、媒体转码、机器学习、语音识别、大数据分析等等。这些服务会以PaaS的形式提供给你,你不需要具备每一个技术的专业技术能力,不需要一步一步去配置和管理新技术环境,只需要专注于使用这些现成服务进行产品开发。
- 数分钟内实现全球化:你需要在GUI环境轻松点击几下,就可以创建全球范围的低延迟、高性能的应用环境,并且保持最低的运营成本。
- 使用无服务架构:使用无服务架构(Serverless),我们可以不需要依赖于任何服务器资源(EC2、ECS或者Lighsail)。我们可以使用Lambda + API Gateway或者其他形式的无服务架构来帮助我们降低非常多的基础架构成本。
- 提升测试频率:利用虚拟化和自动化方法,我们可以利用不同实例、存储类型和配置来完成各种测试。
- 机器同理心:我们不需要对AWS服务的里里外外深入进行了解,但我们需要了解如何更好地使用各种服务。比如在设计数据库和存储方案时,我们需要考虑数据访问的规律和模式。
定义
我们应该着重考量以下四大主要资源类型(计算、存储、数据库和网络)。
- 计算(Comupte)
- 在AWS中,我们可以以三种方式来提供计算服务,它们分别是实例、容器(微服务)和函数(无服务)
- 我们在设计架构的过程中可能需要利用不同的计算解决方案来支持不同的组件,同时启用多种功能来实现性能提升
- 关键服务:AutoScaling
- 常见问题:
- 如何选择适合你的系统的实例类型?
- 如何确保你所使用的是最新/最适合的实例类型?
- 如何监控实例来确保它们的性能达到了要求?
- 如何确保实例的数量满足业务的需求?
- 存储(Storage)
- 特定的系统最优存储方案取决于访问方式(块存储、文件存储还是对象存储)、访问模式(随机还是连续)、数据吞吐量要求、访问频率(在线、离线还是归档)、更新频率(WORM [一次写入,多次读取] 还是动态)以及可用性和持久性的限制。
- 在AWS中,存储资源经过虚拟化并且可以通过不同方式交付
- 在S3中我们有11个9的持久性
- 在EBS中我们有不同类型的存储(SSD, Magenetic, PIOPS等)
- 关键服务:EBS,S3,Glacier
- 常见问题:
- 如何选择适合你的系统的存储方案?
- 如何确保你所使用的是最新/最适合的存储系统?
- 如何监控你的存储系统来保证其性能?
- 如何确保存储的容量满足你的业务需求?
- 数据库(Database)
- 在选择数据库方案的时候,我们需要考虑到很多特性,比如数据库可用性、一致性、分区容错性、延迟、持久性、可扩展性和查询能力等。
- 关键服务:RDS,DynamoDB,Redshift,ElastiCache
- 常见问题:
- 如何选择适合你系统的数据库方案?
- 如何保证当新的数据库方案发布的时候你用哪一种数据库最合适?
- 如何监控数据库保证其性能达到要求?
- 如何保证数据库的容量和吞吐量可以满足业务需求?
- 网络(Network)
- 设计系统最优的网络解决方案的时候,我们需要考虑到延迟、数据吞吐量等因素。
- 我们可以使用S3传输加速、CloudFront内容分发服务、Route53基于延迟的路由、AWS DirectConnect等方案来解决延迟和卡顿的问题
- 常见问题:
- 如何选择合适的网络方案?
- 如何保证新的网络技术出现的时候你使用哪一种网络方案最合适?
- 如何监控你的网络保证其性能?
- 如何确保网络性能满足业务需求?
更多关于性能效率的资料,请阅读性能效率支柱 – AWS良好架构框架。