Anzeige
Anzeige

Más contenido relacionado

Presentaciones para ti(20)

Similar a 零到千万可扩展架构 AWS Architecture Overview(20)

Anzeige

Último(20)

零到千万可扩展架构 AWS Architecture Overview

  1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 云计算环境下的可扩展架构 -满足1,000万用户的扩展性 Leon 李磊 AWS 解决方案架构师
  2. 一些基础概念…
  3. 区域 US-WEST (Oregon) EU (Ireland) ASIA PACIFIC (Tokyo) US-WEST (N. California) SOUTH AMERICA (Sao Paulo) US-EAST (N. Virginia) AWS GOVCLOUD (US) (Sydney) ASIA PACIFIC (Singapore) CHINA (Beijing) ASIA PACIFIC EU (Frankfurt)
  4. US-WEST (Oregon) EU (Ireland) ASIA PACIFIC (Tokyo) US-WEST (N. California) SOUTH AMERICA (Sao Paulo) US-EAST (N. Virginia) AWS GOVCLOUD (US) (Sydney) ASIA PACIFIC (Singapore) CHINA (Beijing) ASIA PACIFIC 可用区 EU (Frankfurt)
  5. 节点网络
  6. 平台服务 基础服务 全球基础设施 Foundation Services Compute (VMs, Auto-scaling and Load Balancing) Storage (Object, Block and Archive) Security & Access Control Networking Infrastructure Regions CDN and Points of PresenceAvailability Zones Applications Platform Services Databases Relational No SQL Caching Virtual Desktops Analytics Hadoop Real-time Data Warehouse Data Workflows Mobile Services Identity Sync Mobile Analytics Notifications Collaboration and Sharing Deployment & Management Containers Managed User Directories Dev/ops Tools Resource Templates Usage Tracking Monitoring and Logs 应用 App Services Queuing Orchestration App Streaming Transcoding Email Search
  7. 平台服务 网络基础服务 基础设施 计算 (VMs, Auto Scaling and Load Balancing) 区域 安全与存取控制 CDN 与 PoP 存储 (Object, Block and Archive) 可用区 应用 虚拟桌面 协同与分享 数据库 Relational No SQL Caching 分析 Hadoop Real-time Data Warehouse Data Workflows 应用服务 Queuing Orchestration App Streaming Transcoding Email Search 移动服务 Identity Sync Mobile Analytics Notifications 部署与管理 Containers Managed User Directories Dev/ops Tools Resource Templates Usage Tracking Monitoring and Logs
  8. 现在让我们就从 一个用户的第一天 开始起步
  9. 第1天, 1个用户 • 1个Amazon EC2 实例 – 全栈服务器 • Web app • • • Database Management … • 1个Elastic IP • Amazon Route 53 用于 DNS Amazon EC2 instance Elastic IP Amazon Route 53 User
  10. • • • • “我们需要更强大的服务器” 简单的方法 使用预配置 IOPS 高 I/O 实例 内存优化实例 • • • • CPU 优化实例 存储优化实例 轻松地改变实例的类型与规格 满足最终的需要 c3.8xlarge m3.2xlarge t2.micro
  11. EC2 实例: 家族与世代 通用类型: M1, M3, M4 计算优化型: C1, CC2, C3, C4, C5 内存优化型: M2, CR1, R3, X1,R4 存储密集型: HS1, D2 I/O优化型: HI1, I2 GPU: CG1, G2 Micro: T1, T2
  12. c4.large 实例家族 实例世代 实例大小 EC2 实例: 类型与大小
  13. 实例大小 c4.8xlarge 2 - c4.4xlarge ≈ 4 - c4.2xlarge ≈ 8 - c4.xlarge ≈
  14. 第1天, 1个用户 • 我们可能支持几百个到几 千个用户,基于应用的复 杂性与网络流量 • 没有故障转移 • 没有冗余 • 太多的鸡蛋在一个篮子里 Amazon Route 53 Elastic IP EC2 Instance User
  15. 第2天, 用户数>1 首先,让我们将单个服 务器分成多个 • Web • 数据库 – 确定需要使用数据库服务? Web Instance Database Instance Elastic IP Amazon Route 53 User
  16. 托管的服务 数据库运行于 Amazon EC2 需要自行管理 解决软件的许可证问 题 (BYOL) Amazon DynamoDB 托管的NoSQL 服务 使用SSD 存储 无缝扩展 零管理 Amazon RDS Microsoft SQL Server, Oracle, MySQL, PostgreSQL, Amazon Aurora 灵活的许可证 管理模式 Amazon Redshift 大规模并行的PB级 别的数据仓库服务 快速,强大 以及易于扩展 数据库服务的选择 自管理
  17. 高可用性架构的基础构件*:Amazon RDS Relational Database Service Database-as-a-Service; 无需安装和管理数据库实例 可扩展和高容错的配置 按需付费的许可方式以及自带许可 Multi-AZ SLA: 99.95% 特点 细节 平台支持 MySQL, SQL Server, Oracle, PostgreSQL 预配置 从默认配置即可开始使用 自动补丁升级 自动保持你的数据平台最新 存储和备份 最大3TB的数据库存储,自动备份以 及按照时间点恢复 预配置IOPS 根据需求确定IO吞吐量25,000 IOPS for Oracle; 30,000 IOPS for MySQL; 10,000 for SQL Server 故障转移 使用Multi-AZ,可以自动切换至备用 数据库实例 读复制 简便的创建MySQL读副本,无缝的 在可用区域间复制数据
  18. Amazon DynamoDB • 托管的、吞吐量可调整的 NoSQL 数据库 • 快速、可预测的性能 • 全分布式、容错体系结构 • JSON 支持 (新特性) • 项目支持 高达400 KB (新特性) 特性 描述 预分配 吞吐量 可预测 的性能 强大的 一致性 容错性 监控 安全 Amazon EMR 向上或向下调整读/写能力 基于SSD的基础设施提供了平 均个位数(毫秒)的延迟 确保你读取的是最近更新过的 数据 跨可用区复制数据 与Amazon CloudWatch 集成 与AWS Identity and Access Management (IAM) 集成 针对大规模数据的复杂分析可 与Amazon EMR 结合
  19. 高可用性架构的基础构件:Amazon Aurora Amazon RDS for Aurora 兼容MySQL 高可用性、数据持久性和容错性 高可扩展性和安全性 q 5X better performance than standard MySQL
  20. 如何选择所需要的数据库技术? SQL? NoSQL?
  21. 为什么通常从SQL开始? • 基于成熟的技术 • 大量的资源,代码、社区、图书、经验、工具等 • 清晰的可扩展性模式 • 打算在你拥有1,000万用户的时候还在依赖SQL? *除非你所做的事情过于特殊,你总会在你的架构中找到SQL适合的地方
  22. 假设数据规模在 几个TB(>5),或 者是数据密集型 的工作负载, 那么你应该考虑 NoSQL!
  23. 为什么需要 NoSQL? • • • • • • 实现“非常”低延迟的应用 元数据驱动的数据集合 高度的非关系数据 需要无模式的数据结构 大规模的数据 (在TB 这个级别) 快速的数据采集 (数千条纪录/秒)
  24. 用户规模 > 100 首先,让我们将单个服 务器分拆成多个: • Web • 数据库 – 使用 Amazon RDS 让你更 轻松一点 Amazon Route 53 RDS DB instance User Elastic IP Web instance
  25. 用户规模 > 1,000 接下来,让我们解决缺 少故障转移和冗余的问 题: • Elastic Load Balancing (ELB) • 另外的 Web 实例 – 部署在另外的可用区 • RDS 多可用区(AZ) Web Instance RDS DB Instance Active (Multi-AZ) Availability Zone Web Instance RDS DB Instance Standby (Multi-AZ) Availability Zone ELB Balancer Amazon Route 53 User
  26. “Everything fails, all the time.” 沃纳·威格尔 Werner Vogels - 亚马逊 CTO
  27. 高可用性架构设计原则 Design for failure, and nothing will really fail. q 假定任何事物都会失效 q 尽最大可能避免架构中的单故障节点 q 尽可能采用容错的服务作为架构部件
  28. 基于AWS服务构建高可用性架构 初始设计就是高可用和容错的服务 通过正确的架构设计既可实现高可用的服务 a Amazon Route53 a Amazon CloudFront a Elastic Load Balancing a Amazon S3 a Amazon DynamoDB a Amazon Kinesis a Amazon SQS a Amazon SNS a Amazon SES a Amazon SWF a … 4 Amazon EC2 4 Amazon EBS 4 Amazon RDS 4 Amazon ElastiCache 4 Amazon VPC 4 …
  29. • • 特性 可用性 健康检查 会话的粘性 SSL 监控 说明 跨多个可用区的实例上的负载均衡 自动检查实例的健康状况,启动或者关闭 服务 请求路由到同一个实例 灵活的加密支持,支持SSL从Web和应用服 务器卸载 为Amazon CloudWatch 提供检测数据,得到 请求处理日志 ELB Balancer Elastic Load Balancing 创建高度可扩展的应用 负载可分布在多个可用区的EC2 实例之上
  30. RDS DB Instance Active (Multi-AZ) Availability Zone Availability Zone RDS DB Instance Standby (Multi-AZ) RDS DB Instance Read Replica RDS DB Instance Read Replica RDS DB Instance RDS DB Instance Read Replica Read Replica Web Instance Web Instance Web Instance Web Instance Web Instance Web Instance Web Instance Web Instance Amazon Route 53 用户规模 > 10,000s–100,000s User ELB Balancer
  31. 也许目前的水平已经不错,但我 们可以继续关注“性能”和“效 率”,我们还可以优化的更好
  32. Amazon Route 53 User 让我们来减轻Web和数据库的 负载: • 将静态内容从Web实例转 移到 Amazon S3 和 Amazon CloudFront • 将会话/状态 和DB缓存转移 到 Amazon ElastiCache或 者 Amazon DynamoDB 负载转移/动静分离 ELB Balancer Web Instances RDS DB Instance Active (Multi-AZ) Availability Zone
  33. Amazon S3 Amazon S3 是面向互联网的云存储: • • • • • 基于对象的存储 11个9 的耐久性 适合以下场景: – 静态资产 (CSS, JS, 图片, 视频) – 备份 – 日志 – 待处理的文件 无限的扩展能力 对象的尺寸高达 5 TB • • • • • • • • 成本是 S3 的 1/3 Amazon S3 用于托管静态网站 支持细粒度的权限控制 与 Amazon CloudFront 的结合 Amazon EMR 的集成 充当 S3, CloudFront, Billing, ELB, AWS CloudTrail 等的日志端节点 支持静态以及传输中加密 仅仅是冗余存储成本的1/3 Amazon Glacier f用于超长时间的存储,
  34. ResponseTime ServerLoad Response Time Response Time Server Load VolumeofData Delivered(Gbps) Serve rLoad Amazon CloudFront Amazon CloudFront 是可扩展的内容分发网络服务: • • • • • • • • 在边缘节点缓存静态内容以实现更快的交付 有助于降低基础设施的负荷 动态和静态的内容 流媒体视频 根域名(Zone apex) 支持 自定义SSL 证书 低的 TTLs (短至0秒) 降低获得源数据的成本 (Amazon S3 / Amazon EC2 和 Amazon CloudFront) • 与Amazon EC2, Amazon S3, Elastic Load Balancing 和 Amazon Route 53 的协同优化 No CDN CDN for Static Content CDN for Static& DynamicContent 10 0 80 70 60 50 40 30 20 8:00 AM 9:00 AM 10:00 11:00 12:00 AM AM PM 1:00 PM 2:00 PM 3:00 PM 4:00 PM 5:00 PM 6:00 PM 7:00 PM 8:00 PM 9:00 PM
  35. 负载转移 让我们来减轻Web和数据库 的负载: • 将静态内容从Web实例转 移到 Amazon S3 和 Amazon CloudFront • 将会话/状态 和DB 缓存转 移到 Amazon ElastiCache 或者 Amazon DynamoDB Amazon CloudFront Amazon Route 53 User Amazon S3 DynamoDB ELB Balancer Web Instances ElastiCache RDS DB Instance Active (Multi-AZ) Availability Zone
  36. Amazon ElastiCache • • • • • • • 托管的 Memcached 与 Redis – 与传统的开源的项目 Memcached 有 Redis 相同的API 从一个到多个节点的扩展 自我修复 (替代死掉的实例) 非常快 ( 通常个位数的毫秒级别或者更少 ) Memcache 设置在单个的AZ, 没有持久性以及复制功能 对于Redis 可以设置在多个AZ间复制以提供持久性 使用AWS Auto Discovery 客户端在不影响应用的前提下简 化集群的增长和收缩
  37. 负载转移 让我们来减轻Web和数据库 的负载: • 将静态内容从Web实例转 移到 Amazon S3 和 Amazon CloudFront • 将会话/状态 和DB 缓存转 移到 Amazon ElastiCache 或者 Amazon DynamoDB Amazon CloudFront Amazon Route 53 User Amazon S3 DynamoDB ELB Balancer Web Instances ElastiCache RDS DB Instance Active (Multi-AZ) Availability Zone
  38. 现在我们的 Web 层已经变得更 轻巧, 我们可以从新审视我们开 始的话题…
  39. 自动扩展!
  40. 特性 控制 与Amazon CloudWatch 的集成 实例类型 说明 设定最小和最大实例池的尺寸 利用CloudWatch 驱动 扩展 对于按需实例和竞价实例运行Run Auto Scaling。与VPV兼容 Auto Scaling 计算集群自动的按需调整 Auto Scaling Group aws autoscaling create-auto-scaling-group --auto-scaling-group-name MyGroup --launch-configuration-name MyConfig --min-size 4 --max-size 200 --availability-zones us-west-2c, us-west-2b EC2 EC2
  41. Sunday Monday Tuesday Wednesday Thursday Friday Saturday 典型的 Amazon.com 一周的流量
  42. Sunday Monday Tuesday Wednesday Thursday Friday Saturday 典型的 Amazon.com 一周的流量 Provisioned capacity
  43. November Amazon.com 11月份的流量
  44. November Amazon.com 11月份的流量 Provisioned capacity
  45. Amazon.com 11月份的流量 76% 24% Provisioned capacity November
  46. Amazon.com 11月份的流量 November
  47. Auto Scaling 让你可以做到这一切!
  48. Availability Zone Amazon Route 53 用户规模 > 500,000+ User Amazon S3 Amazon CloudFront Availability Zone ELB Balancer DynamoDB Read Replica Web Instance Web Instance Web Instance ElastiCache Read Replica Web Instance Web Instance Web Instance ElastiCacheRDS DB Instance RDS DB Instance Standby (Multi-AZ) RDS DB Instance RDS DB Instance Active (Multi-AZ)
  49. 使用自动化部署 基础架构的管理已经成为我们的一项重要的工作。 可以用工 具来自动执行重复性的任务: • 用工具管理 AWS 资源 • 用工具管理实例之上的软件和配置 • 针对日志和用户行为进行自动化的数据分析
  50. AWS DevOps 服务 运维 Elastic Beanstalk CloudWatch CloudFormationCodeDeploy CodePipeline Opsworks Elastic Container Service 监控搭建部署测试构建开发 Lambda CloudTrail 版本管理 持续集成 持续交付 持续部署 自动化运维 配置管理 自动化监控基础设施即代码 日志管理 CodeCommit
  51. 蓝绿部署 • 当前环境(蓝环境)支撑 100%的负载 • 新环境(绿环境)建立并 投入使用,接管10%的负 载 • 负载逐步由蓝环境迁移到 绿环境 • 负载迁移结束 • 蓝环境已经没有负载 • 蓝环境被销毁 • 新环境支撑100%的负载
  52. 进一步的提升,划分成不同的 Web/App 层
  53. 微服务模式 单体应用 微服务架构 UI Business Logic Data Access Layer DB UI Catalog Service Account Service Recommendation Service Customer Service DB DBDB
  54. Docker
  55. Amazon ECS ALB ALB AZ 1 AZ 2 user / scheduler Scheduler Cluster State Service Placement Engine Event Stream
  56. 什么是Cloud Native?
  57. Managed InternetMobile apps AWS Lambda functions AWS API Gateway cache Endpoints on Amazon EC2 Any other publicly accessible endpoint Amazon CloudWatch Amazon CloudFront API Gateway API Gateway Other AWS services AWS Lambda functions AWS上的微服务无服务器化架构: API Gateway +Lambda
  58. Thank you! The future is today.
Anzeige