您好,欢迎访问三七文档
电子科大成都学院云计算系武志学2013年2月云计算系统架构第四讲平台即服务(PAAS)云计算平台层•云计算基础设施层主要是解决IT资源的虚拟化和自动化管理问题•云计算平台层需要解决的问题是为某一类应用提供一致、易用、而且自动的运行管理平台及相关的通用服务•云计算平台层为上层应用提供共享的、按需使用的服务和能力平台层的功能以服务的形式提供给用户,可以作为应用开发测试和运行管理的环境,即平台即服务(PlatformasaService)PaaS定义•PaaS是指在云计算基础设施上为用户提供应用软件部署和运行环境的服务•PaaS能够为应用程序的执行,弹性的提供所需的资源和能力,并根据用户对实际资源的使用收取费用•PaaS提供的是一种应用执行环境,用户程序不但可以运行在这个环境内,而且其生命周期也能够让该环境所控制,并非仅仅是简单的调用平台提供的能力接口PaaS的优势•从应用开发者的角度看–可以灵活充分地利用服务提供商提供的应用能力–提供了保障应用运行的从硬件到软件的完整环境和管理机制,降低了应用运行托管的门槛,加快了产品上市的速度•从服务提供商的角度看–能为用户提供更丰富的服务内容,吸引更多的用户,获得更大的利润–通过内置各种应用服务能力,为自身应用服务带来更多的流量和用户,扩大用户的规模,提升用户粘性PaaS的驱动力•商业角度–随着各类网络应用和服务的发展,其规模和复杂度都有了质的变化,需要应用的快速开发、部署和管理的简化和自动化–对于应用的高可靠性和高可用性的需求•技术角度–计算基础设施的发展和虚拟化技术的广泛使用使得集中式的、统一的应用运行和管理平台成为可能–总结实践中的共性问题,抽象出特定的模式和解决方案:•负载均衡、缓存、半结构化的数据存取、大规模的消息通信PaaS支持的基本应用类型•Web服务:事务处理类–模式:通过浏览器访问,采用请求/响应模式进行交互的应用–主要要求:快速响应、高可用性、大并发量•数据分析服务–模式:对大量的数据进行分析处理–主要要求:强大的计算能力和存储能力,实时性要求不高•其他类型–半结构化数据存储和查询平台–支持社交网络的平台•自动的缩放–应用可扩展和数据可扩展两个方面•方便的应用部署及管理维护–平台的运行服务由提供商通一监控和维护•按需计费–无须一次性付费购买•平台绑定–应用的开发和运行都需要依赖提供的平台PaaS的特性PaaS的总体架构PaaS的基础设施•三个方面的作用–提供弹性计算和存储资源以满足应用部署的需要–为应用程序提供接口服务–提供管资源理服务•平台自动化部署•平台和应用监控•平台的自动化扩展•每个应用的生命周期•两种类型–可以以底层的IaaS为依托–可以直接采用分布式架构•分布式计算以中间件的形式出现在操作系统和应用软件之间,分布在多个节点–分布式文件系统–分布式数据库系统–分布式并行计算应用的程序库及编程接口–分布式同步管理:数据读写一致性–分布式集群管理:大规模资源自动部署和监控基于分布式架构的PaaS基础设施•完成应用逻辑处理、用户界面呈现、应用数据的查询和处理等工作•主要任务–保证多个应用能够可扩展地同时在统一的平台上运行•沙箱技术:独立的、隔离的运行环境–提高资源利用率,合理调配资源、良好的用户体验•请求调度技术•数据缓存技术应用托管执行环境•聚集更多开发者、丰富应用种类、提供用户粘性•开发者社区–为开发者提供开发工具、开发资料–让开发者交流开发经验•应用商店–为应用的最终用户提供在线的集中购买渠道开发者社区和应用商店•从开发者社区下载安装SDK和本地环境,进而开发新的应用,并利用工具上传到PaaS平台•开发环境和传统的应用开发所使用的工具类似,但是集成了PaaS平台系统和服务接口•通过使用提供的服务接口来开发应用,可以利用平台来提供应用数据的保存和处理功能开发环境Google的PaaS架构概述•GAE应用平台:提供应用托管执行环境–数据持久化存储机制,DataStore–管理控制功能Memcache、Mail、Cron等–外延服务:Gmail、Calendar等•GAE支撑平台:提供分布式存储和计算基础设施–GFS:对底层基础设备资源进行管理,文件接口–BigTable:结构化/半结构化数据访问服务–MapReduce:新型分布式计算框架–Chubby:分布式锁机制Google的PaaS架构概述PAAS应用托管平台•请求调度(负载均衡)•Web服务器(应用服务器)•数据库传统Web应用服务器架构•在每个应用看来,保持传统架构不变,同时要保证多个应用能够在同一个平台上运行•让每一个应用占用一台或多台服务器,会造成资源利用率低,成本高•如何实现多个应用共享底层基础设施资源–沙箱技术:实现应用层隔离–虚拟技术:实现多个应用的底层资源隔离•沙箱技术适合于大规模比较小的应用•虚拟技术适应于规模比较大的应用PaaS应用托管平台•实现应用状态和物理服务器的分离,保证应用运行的高度可扩展–单台应用服务器上不能保存应用的状态,不允许使用会产生不可迁移和复制的应用和用户数据的操作•用户数据,会话状态,应用流程状态•不支持应用对所在服务器进行文件写,创建Thread和Socket–让用户和应用的数据能够集中存储,保证应用服务器层不需要存储任何关键状态•使用DataStore进行存储GAE的资源共享和扩展的设计一•优点–能够在某个应用的流量突增时,通过轻松复制应用到新的服务器上和动态的请求调度来实现平滑的扩展•缺点–系统设计变得复杂–对应用开发有一定的限制GAE的资源共享和扩展的设计一•解决多个不同开发者应用在同一台服务器上运行时的隔离问题,包括安全性和性能•沙盒技术–每个应用都只能运行在沙盒中执行,保证应用之间的影响最小–应用不能保存和访问本地磁盘文件和数据,因此减少了应用之间的数据冲突•由于各种应用共享同一物理资源,因此仍然存在潜在的危险GAE的资源共享和扩展的设计二•解决多个应用海量数据持久存储的性能和可扩展性问题–采用BigTable解决大量应用的海量数据共享存储问题–使用新型数据存储系统DataStore,为应用提供多用户共享、高度可扩展的“数据库”•缺点–DataStore是一种非关系型数据库,因此很多传统的关系应用很难移植到上面–开发者也需要学习和理解这种新型存储系统GAE的资源共享和扩展的设计三GAE的总体平台架构•用户端•GAE核心平台–请求调度,应用服务器集群,服务能力调用机制,数据存储服务器集群•Google服务集–应用都是通过调用服务能力实现数据存储、发送邮件、发送即时消息–DataStore、Memcache、图形编辑、用户认证、即时消息、URL页面抓取、任务队列、映射、多租户、通道、块存储等服务能力–开发者利用开发语言直接调用各种服务•Google分布式基础架构GAE的总体平台架构GAE的关键功能模块架构•应用平台的主要功能是负责应用的部署、执行、监控和调度•前端(FrontEnd)–负责请求调度,将应用请求发给相应的AppServers或Staticfiles•静态文件服务器(StaticFiles)–用于存储和传送Web页面附带的静态文件,如图片、CSS和JS文件等GAE的关键功模块:应用平台•应用服务器(AppServers)–通过不同的应用执行容器承载各类应用的执行逻辑–处理终端用户发来的请求–并根据请求调用DataStore的数据或外部的服务能力–形成HTTP响应返回GAE的关键功模块:应用平台•应用管理器(AppMaster)–负责监控应用负载并调度应用•将监控和调度结果通知FrontEnd•FrontEnd再根据负载情况对请求进行调度,实现应用可扩展性–负责决定把开发者上传到平台的应用部署到哪个AppServer上•根据每台服务器的负载情况将应用部署到负载较轻的AppServer上,实现应用的部署和复制扩展GAE的关键功模块:应用平台•应用执行容器承载各类应用的执行逻辑AppServer的应用执行容器•通用网关接口CGI(CommonGatewayInterface)•CGI是用于WEB服务器和外部应用之间信息交换的标准接口。物理上是一段程序。应用执行容器的CGI接口•CGI的主要功能:是收到一个请求并创建一个进程/线程来处理该请求,当处理结束后自动关闭进程/线程•CGI的优点:–架构简洁–支持无状态模式,所以伸缩性好–方便支持多种语言•CGI的缺点:–处理每个请求时都需要创建一个新的进程/线程,所以资源消耗比较大应用执行容器的CGI接口•WSGI(PythonWebServerGatewayInterface)是Python应用程序或框架和Web服务器之间的一种接口•Servlet是Java应用程序或框架和Web服务器之间的一种接口WSGI和ServletWSGIPythonapplicationServletJavaapplication•Python平台–Django框架–CherryPy、Pylons、Web2Py等(自行上传)•Java平台–Jetty框架–不支持高级框架:Struts,JDBC,JSF等•对应用服务器内的代码设置了许多限制–无法创建Socket、Thread–不能加载C语言编写的Python模块应用执行容器的Web执行框架•提供基于BigTable的分布式海量数据的存储•提供基于GQL的查询服务•使用非关系型数据库对结构化/半结构化数据进行存储•优势–可以简单的扩展支持海量数据的存储和查询,适合支撑Web类应用(以读为主,数据量大)•劣势–在响应速度和写数据方面比关系型数据库差GAE的关键功模块:DataStore与关系型数据库比较Datastore关系型数据库SQL支持只支持一些基本的查询全部支持主要结构层次(Hierarchical)关系Index部分可自动创建手动创建事务只支持在一个EntityGroup内执行支持平均执行速度(ms)低于200低于100扩展型非常好很困难,而且需要进行大量的修改•存储的基本单位是实体(Entity)•一个实体包括一系列属性(Property)•同一个实体的多个实例构成一个类型(Kind)•每个实体都有一个健,是整个系统中唯一标识DataStore的数据存储模型关系型数据库Table(表)Row(行)Field(域,列)DataStoreKind(类型)Entity(实体)Property(属性)•同一Kind的实体不需要具有相同的属性•一个实体可以具有不同类别的同名的属性•一个属性可以有多个值,并且每个值的类型可以不同,还可以是空值•健在整个系统中唯一标识一个实体–应用程序ID、类别、实体IDDataStore数据模型特性DataStore实体举例身份证号姓名曾用名现国籍曾有国籍性别子女109878张三一张二一张一一中国男张新益109879李四一中国英国,香港男李南,李北109882王刚王五英国美国男•查询会返回零个多个一种类型的实体•查询可用过滤器,条件是实体属性的值,返回的结果可以根据实体属性排序•查询也可以用实体的健进行,返回的结果可以根据实体的健排序•GAE的查询都是有相应的索引的,DataStore维护这些索引•当应用进行查询时,DataStore找到相关的索引,根据查询条件对索引扫描,扫到第一个满足查询条件行,再继续直到第一个不满足查询条件行。查询和索引查询和索引DataStore的运行环境•什么是“PaaS平台”?•PaaS的优势有哪些?•PaaS支持的基本应用类型有哪些?•请描述PaaS的总体架构?•PaaS基础设施部分的实现方式有哪两大类?•请描述GAE总体平台架构•DataStore和关系型数据库的差别有哪些?•DateStore
本文标题:第四讲PaaS系统
链接地址:https://www.777doc.com/doc-4148342 .html