第 9 讲 PaaS 及关键技术
§9.1 PaaS 简介§9.2 运行托管平台§9.3 基础设施
XaaS
§9.1 PaaS 简介 Platform as a Service 提供应用软件的开发、测试、部署和运行环境
运行平台,如应用服务器 辅助系统软件,如数据库
关键技术 分布式文件系统 分布式数据 并行计算技术
典型产品 GAE Windows Azure
PaaS 的特征要求
开发者只关注应用开发,无须关注应用的具体部署、配置、扩展和优化等。
自动缩放 按需计费 黏性平台绑定 方便管理维护 方便应用部署
PaaS 的系统构成
- 弹性资源供给- 程序接口服务- 管理服务
- 应用逻辑处理- 用户界面呈现应用数据的查询、处理
PaaS 流派 IaaS 衍生型
基于 Amazon 的 IaaS ( EC2 , S3 )建立 PaaS 系统 传统生态延伸型
端 + 云的无缝结合: Windows Azure SaaS 拓展型
基于 SaaS 分割、抽取: Salesforce.com 革新型
基于互联网、分布式计算的全新平台: GAE
Google PaaS 系统
§9.2 运行托管平台 提供弹性可扩展分布式应用运行环境和服务
根据用户访问量和数据存储需求 主要部分
应用程序执行容器 数据存储服务 API 类库服务
GAE
GAE 的功能模块
GAE 的关键技术 – 沙箱技术( SandBox) 用于实现应用之间的隔离
共享物理服务器 也可以通过虚拟化实现隔离(如 Windows Azure )
隔离的含义 操作隔离:非法操作 数据隔离:数据访问 性能隔离:资源占用
GAE 的关键技术 – 沙箱技术( SandBox) 平台重构(非法访问隔离) 平台对敏感访问进行检查和控制 如 Java 、 Flash 、 Silverlight 等 操作系统定制(性能隔离) 一个 OS 虚拟多个 OS ( Virtual private server) 限制资源占用 如果 OpenVZ 伪造环境(数据隔离) 伪造环境使操作局限于指定的范围
GAE 的关键技术 – 请求调度技术 实现动态部署和弹性扩展 主要技术
基于 DNS 的调度 基于虚拟 IP 的调度 基于应用的调度 基于链路的调度
GAE 的关键技术 – 分布式缓存 避免重复查询数据库开销 主流系统: Memcached 、 Velocity 、 Coherence
等
§9.3 基础设施 分布式计算技术 分布式文件系统 分布式数据库 分布式协同管理 集群和平台管理
分布式计算技术 云平台的分布式计算特性
CAP 理论: Consistency 、 Availability 、 Partition-tolerance 不可兼得
传统分布式计算注重” C” 云计算平台注重” A” 和” P”
MapReduce 计算模型 Google 发明的分布式计算模型 适于海量数据处理
传统分布式计算适于“计算”密集型任务 基于数据分割
MapReduce 技术 基本过程
Map :将一组 key/value 对转换为中间 key/value 对 Reduce :将具有相同中间 key 值的 value 进行整合得到结果
例子: 统计一个大文本文件中每个英文字母出现的次数 Map :
将文件分为 m 份,每份对应一个 map 任务:统计其中的字母次数 一个计算节点负责执行一个 map 任务a/f(a), b/f(b),...,z/f(z).
Reduce : 一个字母对应一个 reduce 任务:整合不同 map 任务中该字母的次
数
MapReduce 技术
分布式文件系统 不同节点共享存储的数据(不是物理存储资源) 基本特征
透明性 并发访问高可用性
基本需求 数据冗余异构性 一致性高效性安全性
GFS
多层次容错 原子操作保证一致性 自动复制 按块存储,并行读取,效率高
分布式数据库 多个数据库单元通过网络连接、组合成逻辑上统一
的数据库 传统的分布式数据库
基于一个 DBMS 如: Azure 、 PNuts 等。
云平台的分布式数据库 基于分布式文件系统
高容量、高扩展性 如 BIgTable 、 Hbase 等。
分布式协同管理 共享资源的并行操作数据不一致 通过同步机制控制并发操作 常用的并发控制方法
基于锁的并发控制 两阶段锁协议 多副本的锁机制:读 -写全法、多数法、主副本法、单一管理法
基于时间戳的并发控制 基于全局唯一的时间戳
乐观并发控制 基于版本的并发控制
Google Chubby 并发控制 分布式所服务 通过文件操作实现锁操作
文件代表锁 主要目标
高可用性、高可靠性 性能、吞吐和空间占用不关心
集群和平台管理 集群的自动化部署
安装配置 OS 、 DFS 、分布式计算程序、作业管理软件、系统管理软件等。
集群作业调度 基于资源管理器调度作业的运行节点和时间 Google Work Queue : 调度管理 MapReduce 任务
远程控制 开关机控制远程控制台
应用管理与度量计费
小结 PaaS 的概念、特征和流派 PaaS 系统的构成 运行托管平台及关键技术
运行隔离 请求调度 分布式缓存
PaaS 的基础设施 /支撑技术 分布式计算技术 分布式文件系统 分布式数据库 分布式协同管理 集群和平台管理
课后作业
1. GAE 平台的应用服务架构与传统的 Web 应用服务架构有什么异同?
2. GFS 的元数据节点可能会成为性能瓶颈,如何改进?