31
PaaS PaaS 简简 @Author 刘刘 @Email: [email protected] @Blog: www.topdigger.tk

Paas研究介绍

Embed Size (px)

DESCRIPTION

给其他部门同事做的PaaS介绍,主要简单比较了SAE和GAE,介绍了GAE背后的一些技术思想

Citation preview

Page 1: Paas研究介绍

PaaS

PaaS简介

@Author : 刘堃 @Email: [email protected]

@Blog: www.topdigger.tk

Page 2: Paas研究介绍

PaaS目录

1PaaS和云服务

2

PaaS 服务特点3

PaaS 主要技术4

PaaS 案例

Page 3: 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

目前云服务,以提供用户基于云的各种服务为主,共包含三个层次

Page 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

目前云服务,以提供用户基于云的各种服务为主,共包含三个层次

Page 5: Paas研究介绍

云服务层次关系

PaaS 和云服务

1

2

【用户角度】

从用户角度而言,这三层服务,它们之间关系是独立的,因为它们提供的服务是完全不同的,而且面对的用户也不尽相同。

【技术角度】

从技术角度而言,云服务这三层之间的关系有一定依赖关系的。一个 SaaS 层的产品和服务不仅需要使用到 SaaS 层本身的技术,而且还依赖 PaaS 层所提供的开发和部署平台或者直接部署于 IaaS 层所提供的计算资源上。PaaS 层的产品和服务也很有可能构建于 IaaS 层服务之上。

Page 6: Paas研究介绍

云服务中的 PaaS服务

PaaS 和云服务

一个典型的云服务层次关系:

SaaS服务 1

PaaS服务

同步计算云

非同步计算云

SaaS服务 2

IaaS服务

PaaS 能将现有各种业务能力进行整合。向下根据业务能力需要测算基础服务能力,通过 IaaS 提供的 API调用硬件资源。向上提供业务调度中心服务,实时监控平台的各种资源,并将这些资源通过 API 开放给 SaaS 用户

【 PaaS服务】:

Page 7: Paas研究介绍

PaaS 研究介绍目录

1PaaS 和云服务

2

PaaS服务特点

3

PaaS 主要技术4

PaaS 案例

Page 8: Paas研究介绍

PaaS服务主要具备三项特点

PaaS 服务特点

【平台即服务】

PaaS 提供的是一个基础平台,而不是某种应用。 传统做法由应用系统服务提供商搭建和维护系统基础平台。PaaS 颠覆了这种概念,由专门的平台服务提供商搭建和运营该基础平台,并将该平台以服务的方式提供给应用系统运营商。

【平台级服务】

【平台及服务】

PaaS 运营商所需提供的服务,不仅仅是单纯的基础平台,而且包括针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发、优化等服务。

Paas 服务实质是将资源服务化为可编程接口,为第三方开发者提供有商业价值的资源和服务平台,以提高开发效率,还节约开发成本。 PaaS 服务提供强大而稳定的基础运营平台及技术支持队伍,支撑SaaS 或其他软件服务提供商各种应用系统长时间、稳定的运行。

Page 9: Paas研究介绍

PaaS 研究介绍目录

1PaaS 和云服务

3

PaaS主要技术

2

PaaS 服务特点

4

PaaS 案例

Page 10: Paas研究介绍

PaaS五大基础技术

PaaS 主要技术

1

2

3

【分布式文件存储】

以分布式存储技术来提供高吞吐率和高传输率存储能力,主要技术代表有 GFS (Google File System)和开源的 HDFS(Hadoop Distributed File System)

【并行处理】

【分布式数据管理】

采用列存储数据管理模式,保证海量数据的存储和分析性能。主要技术代表有 GoogleBigTable 和 Hadoop 的HBase 模块。

采用 MapReduce 编程模式,将任务自动分成多个子任务,通过 Map 和 Reduce 两步实现任务在大规模计算节点中的调度和分配。如 Google 的 MapReduce 是这方面的代表之作。

Page 11: Paas研究介绍

PaaS五大基础技术

PaaS 主要技术

4

5

【云应用服务器 集群管理技术】

在原有的应用服务器的基础上为云计算做了一定程度的优化,如用于 Google App Engine 的 Jetty 应用服务器。并通过集群管理技术运营和管理大量的服务器的协同工作,方便业务部署和开通,快速发现和恢复系统故障。如 Google 其集群管理技术视为企业核心机密,未公布任何技术资料。

【分布式资源管理 】

分布式资源管理技术通过锁机制协调多任务对资源的使用,保证数据操作的一致性。 Google 的 Chubby 是最著名的分布式资源管理系统。

Page 12: Paas研究介绍

分布式文件存储( GFS为例)

PaaS 主要技术

Google文件系统的假设与目标– 硬件出错是正常而非异常

• 系统应当由大量廉价、易损的硬件组成• 必须保持文件系统整体的可靠性

– 主要负载是流数据读写• 主要用于程序处理批量数据,而非与用户的交互或随机读写• 数据写主要是“追加写”,“插入写”非常少

– 需要存储大尺寸的文件• 存储的文件尺寸可能是 GB 或 TB 量级,而且应当能支持存储

成千上万的大尺寸文件

Page 13: Paas研究介绍

分布式文件存储( GFS为例)架构

PaaS 主要技术

-Master :管理节点,逻辑上唯一(物理上多个),保存系统元数据。负责整个文件系统的管理,是 GFS 的“大脑”。-Chunk Server :负责具体的存储工作, GFS 可以包含多个 Chunk Server ,其数目决定了 GFS 的存储规模,将文件分块存储,块大小默认为 64M ,每隔块均具有唯一索引号( index )。

Page 14: Paas研究介绍

分布式文件存储( GFS为例)

PaaS 主要技术

GFS 的架构的特点– 访问流程实现了控制流和信息流的分离

• Client 与 Master 仅有控制流,使 Master 不成为瓶颈• Client 与 Chunk Server 直接存储数据,实现高速的数据并发读取

– 采用中心服务器模式• 可以方便地增加 Chunk Server ,方便进行负载均衡。• 不存在元数据的一致性问题

– 不缓冲数据• GFS 的文件操作大部分是流式读写,不存在大量的重复读写,

使用 Cache 对性能提高不大,本地文件系统具有 Cache• 从可行性看, Cache与实际数据的一致性维护也极其复杂

Page 15: Paas研究介绍

分布式文件存储( GFS为例)

PaaS 主要技术

• GFS 的架构的特点– 在用户态下实现

• 直接利用 Chunk Server 的文件系统存取 Chunk ,实现简单• 用户态应用调试较为简单,利于开发• 用户态的 GFS 不会影响 Chunk Server 的稳定性

– 只提供专用的访问接口• 降低 GFS 的实现复杂度

Page 16: Paas研究介绍

并行处理 -MapReduce流程

PaaS 主要技术

MapReduceGoogle 提出的一个软件架构,是一种处理海量数据的并行编程模式用于大规模数据集(通常大于 1TB )的并行运算。

Page 17: Paas研究介绍

并行处理 -MapReduce

PaaS 主要技术

MapReduce实现了Map 和 Reduce两个功能-Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集-Reduce 对结果集进行分类和归纳-Map() 和 Reduce() 两个函数可能会并行运行,即使不是在同一的系统的同一时刻

Page 18: Paas研究介绍

并行处理 -MapReduce

PaaS 主要技术

-案例:单词记数问题 (Word Count)– 给定一个巨大的文本(如 1TB),如何计算单词出现的数目?

Page 19: Paas研究介绍

并行处理 -MapReduce

PaaS 主要技术

-使用 MapReduce求解该问题– Step 1: 自动对文本进行分割

Page 20: Paas研究介绍

并行处理 -MapReduce

PaaS 主要技术

-使用 MapReduce求解该问题– Step 2:在分割之后的每一对 <key,value>进行用户定义

的 Map进行处理,再生成新的 <key,value>对

Page 21: Paas研究介绍

并行处理 -MapReduce

PaaS 主要技术

-使用 MapReduce求解该问题– Step 3:对输出的结果集归拢、排序 (系统自动完成)

Page 22: Paas研究介绍

并行处理 -MapReduce

PaaS 主要技术

-使用 MapReduce求解该问题– Step 4:通过 Reduce操作生成最后结果

Page 23: Paas研究介绍

分布式资源管理( Chubby为例)

PaaS 主要技术

Chubby 是 Google 为解决分布式一致性问题而设计的提供粗粒度锁服务的文件系统分布式一致性问题–一个分布式系统中,一组 Process 需要确定一个 Value 。一致性就是指只有其中的一个 Value 能够被选中作为最后确定的值,这个值被选出来以后,需要通知所有的 Process 。Google 云计算中的分布式一致性问题–GFS 在物理上包含多个 Master ,需要在逻辑上确定唯一的Master 。如何确定?这是一个分布式一致性问题

Page 24: Paas研究介绍

分布式资源管理( Chubby为例)

PaaS 主要技术

Chubby 是一个文件系统,如何提供“锁”服务?– Chubby 中的锁就是文件。– 在 GFS 的例子中,创建文件就是进行“加锁”操作,创建文件成功的那个 server 其实就是抢占到了“锁”。

– 用户通过打开、关闭和读取文件,获取共享锁或者独占锁;并且通过通信机制,向用户发送更新信息。

– 因此,通过 Chubby 可以解决 Google 云计算中的分布式一致性问题。

Page 25: Paas研究介绍

分布式数据管理( BigTable为例)

PaaS 主要技术

Bigtable 是什么?

- 由于在 Google 的数据中心存储 PB级以上的非关系型数据时候,比如网页和地理数据等,为了更好地存储和利用这些数据, Google 开发了一套数据库系统,名为 "BigTable" 。

-BigTable 不是一个关系型的数据库,它也不支持关联( Join )等高级 SQL操作,取而代之的是多级映射的数据结构,并是一种面向大规模处理、容错性强的自我管理系统,拥有TB级的内存和 PB级的存储能力,使用结构化的文件来存储数据,并每秒可以处理数百万的读写操作

Page 26: Paas研究介绍

分布式数据管理( BigTable为例)

PaaS 主要技术

Bigtable 数据模型- 多级映射的数据结构就是一个稀疏的,多维的,排序的 Map 。-每个 Cell 由行关键字,列关键字和时间戳三维定位。内容不解释的字符串,如下表存储网站内容与被其他网站反向连接文本。-反向的 URL com.cnn.www 是这行的关键字。-contents 列存储网页内容,每个内容有一个时间戳,因为有两个反向连接,所以 archor 的 Column Family 有两列: anchor: cnnsi.com和 anchhor:my.look.ca 。 Column Family 这个概念,使得表可以轻松地横向扩展。

Page 27: Paas研究介绍

分布式数据管理 -BigTable架构

PaaS 主要技术

BigTable架构在结构上,首先, BigTable 基于 GFS 分布式文件系统和 Chubby 分布式锁服务。其次 BigTable 也分为两部分:其一是 Master 节点,用来处理元数据相关的操作并支持负载均衡。其二是 tablet 节点,主要用于存储数据库的分片 tablet ,并提供相应的数据访问,同时 Tablet 是基于名为 SSTable 的格式,对压缩有很好的支持。

Page 28: Paas研究介绍

PaaS目录

1PaaS 和云服务

4

PaaS案例

2

PaaS 服务特点3

PaaS 主要技术

Page 29: Paas研究介绍

PaaS 案例

【 Google app engine 】

【 Sina app engine 】

GAE 和 SAE研究介绍

Page 30: Paas研究介绍

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 应用服务。

Page 31: Paas研究介绍

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 每月