260 likes | 525 Views
第 9 讲 PaaS 及关键技术. §9.1 PaaS 简介 §9.2 运行托管平台 §9.3 基础设施. XaaS. §9.1 PaaS 简介. Platform as a Service 提供应用软件的开发、测试、部署和运行环境 运行平台,如应用服务器 辅助系统软件,如数据库 关键技术 分布式文件系统 分布式数据 并行计算技术 典型产品 GAE Windows Azure. PaaS 的特征要求. 开发者只关注应用开发,无须关注应用的具体部署、配置、扩展和优化等。 自动缩放 按需计费 黏性平台绑定 方便管理维护 方便应用部署.
E N D
第9讲 PaaS及关键技术 §9.1 PaaS简介 §9.2 运行托管平台 §9.3 基础设施
§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
§9.2 运行托管平台 • 提供弹性可扩展分布式应用运行环境和服务 • 根据用户访问量和数据存储需求 • 主要部分 • 应用程序执行容器 • 数据存储服务 • API类库服务
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任务中该字母的次数
分布式文件系统 • 不同节点共享存储的数据(不是物理存储资源) • 基本特征 • 透明性 • 并发访问 • 高可用性 • 基本需求 • 数据冗余 • 异构性 • 一致性 • 高效性 • 安全性
GFS • 多层次容错 • 原子操作保证一致性 • 自动复制 • 按块存储,并行读取,效率高
分布式数据库 • 多个数据库单元通过网络连接、组合成逻辑上统一的数据库 • 传统的分布式数据库 • 基于一个DBMS • 如:Azure、PNuts等。 • 云平台的分布式数据库 • 基于分布式文件系统 • 高容量、高扩展性 • 如BIgTable、Hbase等。
分布式协同管理 • 共享资源的并行操作数据不一致 • 通过同步机制控制并发操作 • 常用的并发控制方法 • 基于锁的并发控制 • 两阶段锁协议 • 多副本的锁机制:读-写全法、多数法、主副本法、单一管理法 • 基于时间戳的并发控制 • 基于全局唯一的时间戳 • 乐观并发控制 • 基于版本的并发控制
Google Chubby 并发控制 • 分布式所服务 • 通过文件操作实现锁操作 • 文件代表锁 • 主要目标 • 高可用性、高可靠性 • 性能、吞吐和空间占用不关心
集群和平台管理 • 集群的自动化部署 • 安装配置OS、DFS、分布式计算程序、作业管理软件、系统管理软件等。 • 集群作业调度 • 基于资源管理器调度作业的运行节点和时间 • Google Work Queue: 调度管理MapReduce任务 • 远程控制 • 开关机控制 • 远程控制台 • 应用管理与度量计费
小结 • PaaS的概念、特征和流派 • PaaS系统的构成 • 运行托管平台及关键技术 • 运行隔离 • 请求调度 • 分布式缓存 • PaaS的基础设施/支撑技术 • 分布式计算技术 • 分布式文件系统 • 分布式数据库 • 分布式协同管理 • 集群和平台管理
课后作业 1. GAE平台的应用服务架构与传统的Web应用服务架构有什么异同? 2. GFS的元数据节点可能会成为性能瓶颈,如何改进?