Upload
snakebbf
View
2.224
Download
3
Embed Size (px)
DESCRIPTION
给其他部门同事做的PaaS介绍,主要简单比较了SAE和GAE,介绍了GAE背后的一些技术思想
Citation preview
PaaS目录
1PaaS和云服务
2
PaaS 服务特点3
PaaS 主要技术4
PaaS 案例
云服务层次
PaaS 和云服务
1
2
3
【 SaaS 】
Software as a Service 软件即服务,应用服务主要以基于 Web 的方式提供给客户 , 代表: Salesforce CRM
【 IaaS 】
【 PaaS 】
Platform as a Service 平台即服务,应用的开发和部署平台作为服务提供给用户 ,代表 :Google App Engine ,Sina App Engine
Infrastructure as a Service 基础设施即服务,各种底层的计算(比如虚拟机)和存储等资源作为服务提供给用户 ,代表: Amazon EC2
目前云服务,以提供用户基于云的各种服务为主,共包含三个层次
云服务层次
PaaS 和云服务
1
2
3
【 SaaS 】
Software as a Service 软件即服务,应用服务主要以基于 Web 的方式提供给客户 ,代表: Salesforce CRM
【 IaaS 】
【 PaaS 】
Platform as a Service 平台即服务,应用的开发和部署平台作为服务提供给用户 ,代表 :Google App Engine ,Sina App Engine
Infrastructure as a Service 基础设施即服务,各种底层的计算(比如虚拟机)和存储等资源作为服务提供给用户 ,代表: Amazon EC2
目前云服务,以提供用户基于云的各种服务为主,共包含三个层次
云服务层次关系
PaaS 和云服务
1
2
【用户角度】
从用户角度而言,这三层服务,它们之间关系是独立的,因为它们提供的服务是完全不同的,而且面对的用户也不尽相同。
【技术角度】
从技术角度而言,云服务这三层之间的关系有一定依赖关系的。一个 SaaS 层的产品和服务不仅需要使用到 SaaS 层本身的技术,而且还依赖 PaaS 层所提供的开发和部署平台或者直接部署于 IaaS 层所提供的计算资源上。PaaS 层的产品和服务也很有可能构建于 IaaS 层服务之上。
云服务中的 PaaS服务
PaaS 和云服务
一个典型的云服务层次关系:
SaaS服务 1
PaaS服务
同步计算云
非同步计算云
SaaS服务 2
IaaS服务
PaaS 能将现有各种业务能力进行整合。向下根据业务能力需要测算基础服务能力,通过 IaaS 提供的 API调用硬件资源。向上提供业务调度中心服务,实时监控平台的各种资源,并将这些资源通过 API 开放给 SaaS 用户
【 PaaS服务】:
PaaS 研究介绍目录
1PaaS 和云服务
2
PaaS服务特点
3
PaaS 主要技术4
PaaS 案例
PaaS服务主要具备三项特点
PaaS 服务特点
【平台即服务】
PaaS 提供的是一个基础平台,而不是某种应用。 传统做法由应用系统服务提供商搭建和维护系统基础平台。PaaS 颠覆了这种概念,由专门的平台服务提供商搭建和运营该基础平台,并将该平台以服务的方式提供给应用系统运营商。
【平台级服务】
【平台及服务】
PaaS 运营商所需提供的服务,不仅仅是单纯的基础平台,而且包括针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发、优化等服务。
Paas 服务实质是将资源服务化为可编程接口,为第三方开发者提供有商业价值的资源和服务平台,以提高开发效率,还节约开发成本。 PaaS 服务提供强大而稳定的基础运营平台及技术支持队伍,支撑SaaS 或其他软件服务提供商各种应用系统长时间、稳定的运行。
PaaS 研究介绍目录
1PaaS 和云服务
3
PaaS主要技术
2
PaaS 服务特点
4
PaaS 案例
PaaS五大基础技术
PaaS 主要技术
1
2
3
【分布式文件存储】
以分布式存储技术来提供高吞吐率和高传输率存储能力,主要技术代表有 GFS (Google File System)和开源的 HDFS(Hadoop Distributed File System)
【并行处理】
【分布式数据管理】
采用列存储数据管理模式,保证海量数据的存储和分析性能。主要技术代表有 GoogleBigTable 和 Hadoop 的HBase 模块。
采用 MapReduce 编程模式,将任务自动分成多个子任务,通过 Map 和 Reduce 两步实现任务在大规模计算节点中的调度和分配。如 Google 的 MapReduce 是这方面的代表之作。
PaaS五大基础技术
PaaS 主要技术
4
5
【云应用服务器 集群管理技术】
在原有的应用服务器的基础上为云计算做了一定程度的优化,如用于 Google App Engine 的 Jetty 应用服务器。并通过集群管理技术运营和管理大量的服务器的协同工作,方便业务部署和开通,快速发现和恢复系统故障。如 Google 其集群管理技术视为企业核心机密,未公布任何技术资料。
【分布式资源管理 】
分布式资源管理技术通过锁机制协调多任务对资源的使用,保证数据操作的一致性。 Google 的 Chubby 是最著名的分布式资源管理系统。
分布式文件存储( GFS为例)
PaaS 主要技术
Google文件系统的假设与目标– 硬件出错是正常而非异常
• 系统应当由大量廉价、易损的硬件组成• 必须保持文件系统整体的可靠性
– 主要负载是流数据读写• 主要用于程序处理批量数据,而非与用户的交互或随机读写• 数据写主要是“追加写”,“插入写”非常少
– 需要存储大尺寸的文件• 存储的文件尺寸可能是 GB 或 TB 量级,而且应当能支持存储
成千上万的大尺寸文件
分布式文件存储( GFS为例)架构
PaaS 主要技术
-Master :管理节点,逻辑上唯一(物理上多个),保存系统元数据。负责整个文件系统的管理,是 GFS 的“大脑”。-Chunk Server :负责具体的存储工作, GFS 可以包含多个 Chunk Server ,其数目决定了 GFS 的存储规模,将文件分块存储,块大小默认为 64M ,每隔块均具有唯一索引号( index )。
分布式文件存储( GFS为例)
PaaS 主要技术
GFS 的架构的特点– 访问流程实现了控制流和信息流的分离
• Client 与 Master 仅有控制流,使 Master 不成为瓶颈• Client 与 Chunk Server 直接存储数据,实现高速的数据并发读取
– 采用中心服务器模式• 可以方便地增加 Chunk Server ,方便进行负载均衡。• 不存在元数据的一致性问题
– 不缓冲数据• GFS 的文件操作大部分是流式读写,不存在大量的重复读写,
使用 Cache 对性能提高不大,本地文件系统具有 Cache• 从可行性看, Cache与实际数据的一致性维护也极其复杂
分布式文件存储( GFS为例)
PaaS 主要技术
• GFS 的架构的特点– 在用户态下实现
• 直接利用 Chunk Server 的文件系统存取 Chunk ,实现简单• 用户态应用调试较为简单,利于开发• 用户态的 GFS 不会影响 Chunk Server 的稳定性
– 只提供专用的访问接口• 降低 GFS 的实现复杂度
并行处理 -MapReduce流程
PaaS 主要技术
MapReduceGoogle 提出的一个软件架构,是一种处理海量数据的并行编程模式用于大规模数据集(通常大于 1TB )的并行运算。
并行处理 -MapReduce
PaaS 主要技术
MapReduce实现了Map 和 Reduce两个功能-Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集-Reduce 对结果集进行分类和归纳-Map() 和 Reduce() 两个函数可能会并行运行,即使不是在同一的系统的同一时刻
并行处理 -MapReduce
PaaS 主要技术
-案例:单词记数问题 (Word Count)– 给定一个巨大的文本(如 1TB),如何计算单词出现的数目?
并行处理 -MapReduce
PaaS 主要技术
-使用 MapReduce求解该问题– Step 1: 自动对文本进行分割
并行处理 -MapReduce
PaaS 主要技术
-使用 MapReduce求解该问题– Step 2:在分割之后的每一对 <key,value>进行用户定义
的 Map进行处理,再生成新的 <key,value>对
并行处理 -MapReduce
PaaS 主要技术
-使用 MapReduce求解该问题– Step 3:对输出的结果集归拢、排序 (系统自动完成)
并行处理 -MapReduce
PaaS 主要技术
-使用 MapReduce求解该问题– Step 4:通过 Reduce操作生成最后结果
分布式资源管理( Chubby为例)
PaaS 主要技术
Chubby 是 Google 为解决分布式一致性问题而设计的提供粗粒度锁服务的文件系统分布式一致性问题–一个分布式系统中,一组 Process 需要确定一个 Value 。一致性就是指只有其中的一个 Value 能够被选中作为最后确定的值,这个值被选出来以后,需要通知所有的 Process 。Google 云计算中的分布式一致性问题–GFS 在物理上包含多个 Master ,需要在逻辑上确定唯一的Master 。如何确定?这是一个分布式一致性问题
分布式资源管理( Chubby为例)
PaaS 主要技术
Chubby 是一个文件系统,如何提供“锁”服务?– Chubby 中的锁就是文件。– 在 GFS 的例子中,创建文件就是进行“加锁”操作,创建文件成功的那个 server 其实就是抢占到了“锁”。
– 用户通过打开、关闭和读取文件,获取共享锁或者独占锁;并且通过通信机制,向用户发送更新信息。
– 因此,通过 Chubby 可以解决 Google 云计算中的分布式一致性问题。
分布式数据管理( BigTable为例)
PaaS 主要技术
Bigtable 是什么?
- 由于在 Google 的数据中心存储 PB级以上的非关系型数据时候,比如网页和地理数据等,为了更好地存储和利用这些数据, Google 开发了一套数据库系统,名为 "BigTable" 。
-BigTable 不是一个关系型的数据库,它也不支持关联( Join )等高级 SQL操作,取而代之的是多级映射的数据结构,并是一种面向大规模处理、容错性强的自我管理系统,拥有TB级的内存和 PB级的存储能力,使用结构化的文件来存储数据,并每秒可以处理数百万的读写操作
分布式数据管理( BigTable为例)
PaaS 主要技术
Bigtable 数据模型- 多级映射的数据结构就是一个稀疏的,多维的,排序的 Map 。-每个 Cell 由行关键字,列关键字和时间戳三维定位。内容不解释的字符串,如下表存储网站内容与被其他网站反向连接文本。-反向的 URL com.cnn.www 是这行的关键字。-contents 列存储网页内容,每个内容有一个时间戳,因为有两个反向连接,所以 archor 的 Column Family 有两列: anchor: cnnsi.com和 anchhor:my.look.ca 。 Column Family 这个概念,使得表可以轻松地横向扩展。
分布式数据管理 -BigTable架构
PaaS 主要技术
BigTable架构在结构上,首先, BigTable 基于 GFS 分布式文件系统和 Chubby 分布式锁服务。其次 BigTable 也分为两部分:其一是 Master 节点,用来处理元数据相关的操作并支持负载均衡。其二是 tablet 节点,主要用于存储数据库的分片 tablet ,并提供相应的数据访问,同时 Tablet 是基于名为 SSTable 的格式,对压缩有很好的支持。
PaaS目录
1PaaS 和云服务
4
PaaS案例
2
PaaS 服务特点3
PaaS 主要技术
PaaS 案例
【 Google app engine 】
【 Sina app engine 】
GAE 和 SAE研究介绍
GAE 和 SAE比较
PaaS 案例
【平台技术】
GAE 平台是基于 Google GFS,Bigtable,MapReduce,Chubby 等基础技术的整合之上的,四项技术均有论文文章发表。SAE则是基于 Sina私有云技术重新研发的公有云平台,目前未公开其使用具体技术。
【平台服务】
【平台支持语言】
GAE 以 Java 和 Python 为首选支持语言。SAE 以 php 为首选支持语言,并支持 MySql 数据库。
SAE 提供了大部分 GAE 支持的功能 。GAE 平台可使用大量如 gmail , Google docs 等现有服务。SAE 平台提供了大量如 Xweibo 等 Web 应用服务。
PaaS 案例
GAE 和 SAE比较Sina App Engine Google App Engine
云计算模型 PaaS PaaS
支持语言 PHP Java 、 Python 、 Go
数据库支持 MySQL 最大 5GB 暂不支持每个帐号可拥有 app数量
10 个 10 个
单 app 存储限额 最多 10GB ,单文件不大于 4M
1GB免费,无最大上限
代码大小 每帐户不超过 100M ,单app总代码不超过 50M
单 app 不超过 150MB
绑定域名 需另行申请,备案 支持免费额度 各项服务通过扣除虚拟货
币“云豆”实现限额。每日免费发放 200 云豆(实名认证后 1000 云豆)
每日 6.5 CPU-hours ,流入流出带宽各 1GB ,存储 1GB 。
超过免费限额的收费标准
1 元 =100 云豆,暂未支持支付
流入带宽: 0.1美元 /GB流出带宽: 0.12美元 /GBCPU 时间: 0.1美元 /CPU小时存储: 0.15美元 /GB 每月