《云计算Paas平台的KeyValue服务.ppt》由会员分享,可在线阅读,更多相关《云计算Paas平台的KeyValue服务.ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、云计算Paas平台的KeyValue服务 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望分享内容分享内容背景介绍背景介绍关于关于SAESAESAESAE的整体架构的整体架构SAESAE的的KVDBKVDB服务服务Key-ValueKey-Value服务的改进服务的改进背景介绍背景介绍什么什么PaaSPaaS?PaaS PaaS是是Platform-as-a-ServicePlatform-as-a-Service的缩写,意思是平台即的缩写,意思是平台即服务。服务。
2、WebWeb开发者认为开发者认为 PaaS=Web PaaS=Web运行环境运行环境+一堆分布式服务一堆分布式服务从从PaaSPaaS实现角度实现角度 隔离、统计、安全、扩展隔离、统计、安全、扩展关于关于SAESAESina App EngineSina App Engine,一个公有云,一个公有云PaaSPaaS平台;平台;SAESAE选择国内流行最广的选择国内流行最广的WebWeb开发语言开发语言PHPPHP作为首选作为首选的支持语言;的支持语言;现在同时支持现在同时支持JavaJava和和PythonPython语言;语言;SAESAE提供了一系列分布式服务,包括了多种计算类提供了一系列
3、分布式服务,包括了多种计算类服务和存储类服务;服务和存储类服务;一、什么是一、什么是SAESAE?SAESAE就是简单高效的就是简单高效的WebWeb应用应用开发、运行平台开发、运行平台关于关于SAESAE二、二、SAESAE不仅仅是不仅仅是PaaSPaaS关于关于SAESAE三、三、SAESAE的发展历史的发展历史新浪及合作第三方支持新浪及合作第三方支持新浪及合作第三方支持新浪及合作第三方支持微游戏、微盘、校园微博、微游戏、微盘、校园微博、QQ微博、微博、互联网的那点事互联网的那点事.云计算产品研发云计算产品研发云计算产品研发云计算产品研发计算类服务计算类服务 、存储类服务、云应用、存储类服
4、务、云应用商店、云服务商店、商店、云服务商店、CDNCDN、IaaSIaaS平台平台.新浪云计算新浪云计算 SinaCSinaC2009.112011.5.182011.72010.10.10Sina App Engine alpha版上线版上线Sina App Engine alpha2版上线版上线微盘上线微盘上线Sina App Engine Beta2版上线版上线正式开放注册正式开放注册开通支付开通支付云应用商店上线云应用商店上线2010.22010.9Sina App Engine Beta版上线版上线SAE诞生诞生TmpFS 支持首个公测版本发布首个公测版本发布SAESAE的整体架构
5、的整体架构SAESAE从架构上采用分层设计,从架构上采用分层设计,自上而下自上而下分别为分别为:反向代理层、路由逻辑层、反向代理层、路由逻辑层、WebWeb计计算服务池算服务池、日志和统计中心以及各个分布式服务。、日志和统计中心以及各个分布式服务。SAESAE的整体架构的整体架构1.1.1.1.反向代理层反向代理层2.2.a.a.基于基于HTTPHTTP的反向代理,工作在最外层的反向代理,工作在最外层3.3.b.b.与后端的与后端的WebWeb服务池相连,负责接收、分析、转发和响应用户的服务池相连,负责接收、分析、转发和响应用户的HTTPHTTP请求请求4.4.c.c.同时提供负载均衡、健康检
6、查等功能同时提供负载均衡、健康检查等功能1.1.2.2.路由逻辑层路由逻辑层2.2.根据请求的唯一标识,快速的映射(根据请求的唯一标识,快速的映射(O(1)O(1)时间复杂度)到相应的时间复杂度)到相应的WebWeb服务池,如果发现映射关系不存在或者错误,则给出相应的错误提服务池,如果发现映射关系不存在或者错误,则给出相应的错误提示;示;3.3.该层对用户隐藏了很多具体地址信息,使开发者无需关心服务的内该层对用户隐藏了很多具体地址信息,使开发者无需关心服务的内部实际分配情况。部实际分配情况。SAESAE的整体架构的整体架构1.1.3.Web3.Web计算服务池计算服务池2.2.a.a.由一些不
7、同特性的由一些不同特性的WebWeb服务池组成,按照不同的服务池组成,按照不同的SLASLA提供不同提供不同级别的服务;级别的服务;3.3.b.b.一个一个WebWeb服务池由一些相同属性的服务池由一些相同属性的WebWeb服务器组成,通过前端服务器组成,通过前端的反向代理扩展服务能力;的反向代理扩展服务能力;4.4.c.c.每台每台WebWeb服务器上运行相应的服务器上运行相应的WebWeb运行时环境,其嵌入了相应运行时环境,其嵌入了相应的的SAESAE沙盒。沙盒。5.5.d.d.用户的代码最终通过相应用户的代码最终通过相应WebWeb运行时环境的运行时环境的APIAPI调用各种服务。调用各
8、种服务。SAESAE的整体架构的整体架构1.HTTP Server Sandbox连接保护请求统计请求控制libc函数保护(DLL注入).1.SAE PHP SandBox1.SAE Zend Sandbox运行环境隔离CPU控制本地I/O限制网络I/O改造系统级API禁用及修改.SAESAE的整体架构的整体架构1.1.4.4.各种分布式服务各种分布式服务CronCronImageImageTaskQueueTaskQueueMailMailDeferredJobDeferredJobFetchURLFetchURLRDCRDCMemcacheXMemcacheXStorageStorageR
9、ankRankTmpFSTmpFSKVDBKVDBCounterCounter计算类服务计算类服务存储类服务存储类服务SAESAE的整体架构的整体架构1.1.5.5.日志和统计中心日志和统计中心2.2.负责对用户所使用的所有服务进行统计和资源计费,并设负责对用户所使用的所有服务进行统计和资源计费,并设定的分钟配额,来判定是否有非正常的使用。分钟配额描述定的分钟配额,来判定是否有非正常的使用。分钟配额描述了资源消耗的速度,当资源消耗的速度到达一个预警阈值时,了资源消耗的速度,当资源消耗的速度到达一个预警阈值时,SAESAE通知系统会提前向用户发出一个警告,提醒用户应用在通知系统会提前向用户发出一
10、个警告,提醒用户应用在某个服务上的使用可能存在问题,需要介入关注或处理,配某个服务上的使用可能存在问题,需要介入关注或处理,配额系统是额系统是SAESAE用来保证整个平台稳定的措施之一;日志中心用来保证整个平台稳定的措施之一;日志中心负责将用户所有服务的日志汇总并备份,并提供检索查询服负责将用户所有服务的日志汇总并备份,并提供检索查询服务。务。SAESAE的的KVDBKVDB服务服务SAESAE的的KVKV存储服务需求:存储服务需求:A.持久存储Key-Value数据B.存储服务而非存储引擎C.支持数据隔离、认证和统计D.支持读写分离E.服务器宕机自动切换F.服务可以任意水平扩展G.支持重平衡
11、、无缝迁移H.服务API功能丰富、简单易用SAESAE的的KVDBKVDB服务服务ClientMete ServerInternal DB DB Clustermasterslaveslavemasterslaveslavemasterslaveslave指令流指令流数据流数据流SAE KVDB SAE KVDB 服务架构图服务架构图SAESAE的的KVDBKVDB服务服务SAE KV SAE KV 服务的如何工作?服务的如何工作?1.1.客户端从客户端从Web RuntimeWeb Runtime中获取当前请求所属的中获取当前请求所属的appkeyappkey;2.2.客户端向客户端向Met
12、a ServerMeta Server发出请求,获取该发出请求,获取该appkeyappkey相应的相应的appname-keyappname-key到实际存储节点的映射关系;到实际存储节点的映射关系;3.3.客户端根据取得的映射信息访问相应的存储节点;客户端根据取得的映射信息访问相应的存储节点;SAESAE的的KVDBKVDB服务服务客户端客户端APIAPI简单易用、功能丰富、支持前缀查找简单易用、功能丰富、支持前缀查找SAESAE的的KVDBKVDB服务服务客户端与客户端与Meta ServerMeta Server1.1.客户端可以缓存从客户端可以缓存从Meta ServerMeta S
13、erver获取的信息;获取的信息;2.2.会话超时机制以及不可用服务器标记功能;会话超时机制以及不可用服务器标记功能;3.3.长连接支持,有效的减少到服务端的连接数量;长连接支持,有效的减少到服务端的连接数量;4.4.多机房服务器列表,防止机房故障;多机房服务器列表,防止机房故障;客户端与客户端与DB ServerDB Server1.1.客户端通过客户端通过AppKeyAppKey来作为自己的身份认证来作为自己的身份认证SAESAE的的KVDBKVDB服务服务DB Cluster DB Cluster 示意图示意图masterslaveslave.group 0 masterslavesla
14、ve.group 1 masterslaveslave.group 2 masterslaveslave.group n SAESAE的的KVDBKVDB服务服务DB Cluster DB Cluster 介绍介绍1.1.分成多个组;分成多个组;2.2.每一组服务器一主多从,每一组服务器一主多从,MasterMaster服务器由组内各服务器服务器由组内各服务器投票选举产生;投票选举产生;3.3.通过复制,组内的每台服务器数据完全相同,实现读写通过复制,组内的每台服务器数据完全相同,实现读写分离和备份;分离和备份;4.4.通过增加服务器组来实现水平扩展;通过增加服务器组来实现水平扩展;5.5.每
15、一组服务器存储哪些数据由每一组服务器存储哪些数据由Meta ServerMeta Server决定;决定;SAESAE的的KVDBKVDB服务服务关于单个关于单个DBDB节点节点1.1.每台服务器的服务层与存储层分离;每台服务器的服务层与存储层分离;2.2.服务层提供统计功能并定时汇报给统计中心;服务层提供统计功能并定时汇报给统计中心;3.3.通过通过AppKeyAppKey实现数据的隔离;实现数据的隔离;SAESAE的的KVDBKVDB服务服务Meta Server ClusterMeta Server ClusterMeta ServerMeta ServerMeta ServerInte
16、rnal DB多台多台Meta ServerMeta Server定时获取定时获取Internal DBInternal DB数据数据缓存信息并提供查询服务缓存信息并提供查询服务定时获取主从信息定时获取主从信息定时获取定时获取DBDB节点信息节点信息发起重平衡,迁移数据发起重平衡,迁移数据SAESAE的的KVDBKVDB服务服务关于关于Meta ServerMeta Server的一些问题的一些问题1.1.I.I.如果保证如果保证meta servermeta server的一致性?的一致性?2.2.类类paxospaxos算法算法3.3.II.II.如何触发重平衡?如何触发重平衡?4.4.维度:维度:容量和性能容量和性能5.5.方法:方法:数学期望和方差数学期望和方差6.6.III.III.重平衡如何做到无缝?重平衡如何做到无缝?7.7.双写单读双写单读Key-ValueKey-Value服务的改进服务的改进服务层支持选举服务层支持选举服务层实现主从复制技术服务层实现主从复制技术更多种类的更多种类的Key-ValueKey-Value服务服务新浪 SAE 陈磊