《电子商务云计算》-第 8 章_第1页
《电子商务云计算》-第 8 章_第2页
《电子商务云计算》-第 8 章_第3页
《电子商务云计算》-第 8 章_第4页
《电子商务云计算》-第 8 章_第5页
已阅读5页,还剩129页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.1PaaS概述8.1.1PaaS的概念搭建传统IT基础平台是一个漫长的过程,通常由申请、审计、硬件购买与运输、硬件安装与配置、软件安装与配置等步骤组成。在这个过程中繁复的手工配置工作费时费力,而且容易产成人为配置错误。同时,平台环境的升级维护也面临人为配置错误频繁产生问题,造成不必要的影响和损失。由于这些原因,搭建完成的应用运行平台,即使在一定时期内不再需要,也不会被及时释放回收,以供新项目使用,这就造成硬件资源空闲。此外,传统基础平台提供的应用运行能力是静态的,在不同时间,应用负载往往是不一样的。下一页返回8.1PaaS概述为了确保高负载时应用的正常运行,应用运行平台必须能够提供最高运行能力,这就造成了非高峰时的众多空闲硬件资源。云计算的产生,尤其是平台服务的理念,从产生空闲硬件资源的根本原因入手。它面向广大Internet应用开发者,把端到端的分布式软件开发、测试、部署、运行环境及复杂的应用托管(即服务器平台)当作服务,通过Internet提供给用户。所谓PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。简单地说,PaaS平台就是指云环境中应用基础设施服务,也可以说是中间件服务。上一页下一页返回8.1PaaS概述PaaS平台在云架构中位于中间层,其上层是SaaS,其下层是IaaS,基于IaaS之上是为应用开发(可以是SaaS应用,也可以不是)提供接口和软件运行环境的平台层服务。上一页下一页返回8.1PaaS概述也可以把PaaS理解成中间件即服务,如图8-2所示。8.1.2PaaS的特点PaaS能将现有各种业务能力进行整合,具体可以归类为应用服务器、业务能力接入、业务引擎、业务开放平台,向下根据业务能力需要测算基础服务能力,通过IaaS提供的API调用硬件资源,向上提供业务调度中心服务,实时监控平台的各种资源,并将这些资源通过API开放给SaaS用户。PaaS主要具备以下3个特点。(1)平台即服务。上一页下一页返回8.1PaaS概述PaaS所提供的服务与其他的服务最根本的区别是PaaS提供的是一个基础平台,而不是某种应用。在传统的观念中,平台是向外提供服务的基础。一般来说,平台作为应用系统部署的基础,是由应用服务提供商搭建和维护的,而PaaS颠覆了这种概念,由专门的平台服务提供商搭建和运营该基础平台,并将该平台以服务的方式提供给应用系统运营商。(2)平台及服务。PaaS运营商所需提供的服务,不仅仅是单纯的基础平台,而且包括针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发、优化等服务。上一页下一页返回8.1PaaS概述PaaS的运营商最了解他们所运营的基础平台,所以由PaaS运营商所提出的对应用系统优化和改进的建议也非常重要。而在新应用系统的开发过程中,PaaS运营商的技术咨询和支持团队的介入,也是保证应用系统在以后的运营中得以长期、稳定运行的重要因素。(3)平台级服务。PaaS运营商对外提供的服务不同于其他的服务,这种服务的背后是强大而稳定的基础运营平台,以及专业的技术支持队伍。这种“平台级”服务能够保证支撑SaaS或其他软件服务提供商各种应用系统长时间、稳定的运行。PaaS的实质是将Internet的资源服务化为可编程接口,为第三方开发者提供有商业价值的资源和服务平台。上一页下一页返回8.1PaaS概述有了PaaS平台的支撑,云计算的开发者就获得了大量的可编程元素,这些可编程元素有具体的业务逻辑,这就为开发带来了极大的方便,不但提高了开发效率,还节约了开发成本。有了PaaS平台的支持,Web应用的开发变得更加敏捷,能够快速响应用户需求的开发能力,也为最终用户带来了实实在在的利益。8.1.3PaaS提供的服务PaaS面向应用程序开发人员,把软件开发、测试、部署、运行环境通过Internet提供给用户,从而简化应用程序开发和部署工作。PaaS没有标准的服务列表,不同服务提供商有不同的实现策略。上一页下一页返回8.1PaaS概述从PaaS的定义和目标,以及现有的PaaS平台服务上看,PaaS应提供如下服务:(1)端到端的软件开发环境,包括物理环境、开发环境、测试环境、调试环境、部署环境和运行环境。(2)基于云平台的配套服务,如账户、邮件、数据库、消息列表等。(3)基于Web浏览器的使用模式,简化客户机的安装、配置工作。(4)易于掌握的编程语言和编程环境,PaaS提供的软件开发环境IDE和API接口和编程语言应接近于主流C,以便于开发人员快速掌握。上一页下一页返回8.1PaaS概述(5)安全的沙盒工作环境,即屏蔽底层软硬件设施的复杂性,为用户提供简易安全的使用接口。(6)动态扩展性,可根据用户应用程序的实际需求动态调整资源分配。(7)应用程序监控服务,实时监控应用程序的运行状况、运行日志、访问量、资源使用率的信息。(8)良好的认证、计费机制,保证用户账号的安全性,并按实际使用量计费。上一页下一页返回8.1PaaS概述8.1.4PaaS的价值PaaS的实质是将Internet的资源服务化为可编程接口,为第三方开发者提供有商业价值的资源和服务平台。有了PaaS平台的支撑,云计算的开发者就可获得大量的可编程元素。这些可编程元素是有具体的业务逻辑的。这就为云计算的开发带来了极大的方便,不但可提高开发效率,还可节约开发成本。有了PaaS平台的支持,Web应用的开发将变得更加敏捷,快速响应用户需求的开发能力,也可为最终用户带来实实在在的利益。1.PaaS对服务提供商的价值上一页下一页返回8.1PaaS概述PaaS有助于形成生态系统与价值链,而不同云计算平台的竞争力来自价格、开放性、技术先进性和业界影响力。PaaS对服务提供商的价值有以下几个方面。(1)PaaS能够灵活扩展,以较低的成本实现长尾效应。云计算平台能够以较低的管理边际成本开发新产品、推出新产品,使新业务的启动成本为0,资源不会受限于单一的产品和服务。运营商因此可以在一定投资范围内极大丰富产品各类,通过资源的自动调度满足各个业务的需求,尽最大可能发挥长尾效应。(2)云计算动态基础架构能灵活地调配资源,满足业务高峰期的需求。上一页下一页返回8.1PaaS概述2.PaaS对用户的价值平台云的用户主要是软件开发者和软件开发商。对于云计算平台的使用者来说,云计算平台回忆了软件开发流程,降低了软件开发运行成本,减少了软件开发工作量。PaaS的价值包括以下两点。①加快软件开发速度。②简化系统运维。8.1.5PaaS与SaaS的关系PaaS和SaaS为两种不同云计算服务类型,PaaS面向应用程序开发者,把应用程序开发、测试、部署、运行环境通过网络提供给用户,SaaS则面向Internet用户和中小企业,通过Internet提供软件。上一页下一页返回8.1PaaS概述在定义上,两者具有明显的区别,面向的客户群体不同,提供的服务内容也不同。实际上,PaaS和SaaS两者是互为补充的关系。PaaS最早是由SaaS企业提出的,是SaaS发展到一定程度后出现的新需求。SaaS促使了PaaS的出现,使得普通开发者得以以更低的成本、更高的效率开发Internet应用,而PaaS作为SaaS实现技术之一,又促进了SaaS的发展。因此,PaaS和SaaS两者互为补充,互相促进。PaaS是SaaS发展的一种结果,它能够提供企业进行定制化研究的中间件平台,同时涵盖数据库和应用服务器等。上一页下一页返回8.1PaaS概述PaaS可以提高在Web平台上利用的资源数量,还可以使用可视化的API,甚至像800app的PaaS平台还允许用户混合并匹配适合自己应用的其他平台。用户或者厂商基于PaaS平台可以快速开发自己所需要的应用和产品。同时,PaaS平台开发的应用能更好地搭建基于SOA架构的企业应用。此外,PaaS对于SaaS运营商来说,可以帮助其进行产品多元化和产品定制化。可以说PaaS是SaaS企业为提高自己的影响力、增加用户黏度而做出的一种努力和尝试.上一页下一页返回8.1PaaS概述SaaS企业把支撑应用开发的平台发布出来,软件开发商根据自身需求,利用平台提供的能力在线开发、部署,然后快速推出自己的SaaS产品和应用。随着GAE、F等PaaS平台的成功运营,PaaS不再只是SaaS服务的延伸,而是一场Internet应用软件开发革命,它体现了Internet低成本、高效率和规模比应用的特性,能够帮助应用程序开发人员快速定制、开发满足特定需求的Internet应用,从而大大提高工作效率和执行力。上一页返回8.2PaaS的基本架构8.2.1PaaS的基本架构概述PaaS把软件开发环境当作服务提供给用户,其基本架构由分布式平台和运营管理系统组成,如图8-3所示。PaaS平台构建在物理服务器集群或虚拟服务器集群之上,通过分布式技术解决集群系统的协同工作问题。PaaS分布式平台由分布式文件系统、分布式计算、分布式数据库和分布式同步机制4个部分组成。其中,分布式文件系统和分布式数据库共同完成PaaS平台结构化和非结构化数据的存取,分布式计算定义了PaaS平台的数据处理模型,分布式同步机制则用于解决并发访问控制问题。下一页返回8.2PaaS的基本架构Google云计算基础架构和Hadoop分布式软件架构是两种典型的PaaS分布式平台。运营管理系统针对PaaS服务特性,将整个分布式平台当作服务提供给Internet应用程序开发者,需解决用户接口和平台运营相关问题。在用户接口方面,需提供包括代码库、编程模型、编程接口、开发环境等在内的工具。PaaS运营平台除完成计费、认证等运营管理系统基本功能外,还需解决用户程序运营过程中所需的存储、计算、网络基础资源的供给和管理问题,需根据应用程序实际运行情况动态增加或减少运行实例。上一页下一页返回8.2PaaS的基本架构此外,为保证应用程序的可靠运行,系统还需要考虑不同应用程序间的相互隔离问题,让它们在安全的沙盒环境中可靠运行。8.2.2PaaS架构的深入分析在图8-4中,展示了云数据中心中的典型应用程序架构。这一架构视图中包含7个层,在了解目前可用的IaaS产品时,实际上只是在考虑其中最底部的两个层(硬件和虚拟化的实例),这些层是由云提供商所提供的,如图8-5所示。上一页下一页返回8.2PaaS的基本架构按照Amazon服务术语的称呼,Amazon负责提供位于自己数据中心内的硬件和虚拟化的实例,同时他们还将管理相关的接口,以运行所有虚拟化的实例。部署工作的其他部分(从操作系统往上)则由最终用户或开发人员负责,并受这些人控制。从图8-5中可知,基础架构即服务被定义为一种产品,用户或开发人员可对用于运行自己应用程序的操作系统、服务、Web服务器,以及框架进行定制。PaaS的目标是为开发人员提供整个平台,而不仅仅是基础架构。这一目标通常是通过对开发人员需要负责的内容进行更进一步的抽象实现的。图8-6对平台提供商的涵盖范围进行了进一步描述。上一页下一页返回8.2PaaS的基本架构以MicrosftAzure为例,微软提供了部署应用程序所需要的一切,并包含一系统框架。开发人员可以使用微软的Web框架创建应用程序,并部署到云端。这样的部署工作与底层操作系统或组件的完全无关,也不需要对其有任何了解。另外,某些PaaS供应商还提供了在公共云的部署工作中使用不同框架或Web服务器的能力。简而言之,PaaS这种产品使得用户或开发人员通过由平台提供商所管理的操作系统、服务、Web服务器,以及框架直接使用整个平台,并可以更专注于开发自己的应用程序。在私有云的世界,“PaaS”这个术语的定义与公共云世界中讨论的这个定义非常类似,但与公共云世界中定义也有一些细微的区别。上一页下一页返回8.2PaaS的基本架构首先,供应商有所不同。私有PaaS中的平台并不是微软、Google或IBM等公共云提供商直接提供的,此时的平台供应商是企业内部的IT或第三方托管供应商。其次,此时的平台更加灵活,可根据私有云提供商的需求进行定制,并可根据私有用户的需求进行定制。因此每个不同的私有云环境的平台可能都有所差异。最后,同样重要的是,这种环境实现混合模式的可行性更高。例如,为了支持多种编程语言,通过不同的功用框架供应商提供不同的框架等。另外,如果软件本身提供了可扩展的接口,那么PaaS模式中的软件本身,即云堆栈中最高一层,也可以进化为一个平台。因此私有云环境中直观的平台范例之一,如图8-7所示。上一页下一页返回8.2PaaS的基本架构在图8-7中,相比公共云中的平台,私有平台即服务(PrivatePlatformasaService,PPaaS)的优势如下。(1)对于特定最终用户/开发人员,PPaaS可以提供更高的敏捷度,开发人员可能使用现有的企业IT资产更快速地构建自定义企业应用程序。(2)PPaaS可为私有云提供商提供更好的安全性和管理能力。在安全方面,PPaaS提供商(通常是内部IT部门/第三方数据中心托管供应商)可对平台实现更加严格的管理。(3)PPaaS可提供更多控制和更高效率。在开发人员和PPaaS之间,通过更加细致的SLA协议即可获得更高效率。上一页下一页返回8.2PaaS的基本架构综上所述,相对公共PaaS,PPaaS可提供更广泛更全面的范围,然而这种方式需要私有云提供商进行更多规划,并对私有云供应商提出了更高要求,借此才能提供相比公共PaaS更多的优势,如敏捷度、安全性、控制以及效率等。8.2.3PaaS的关键技术本节以GAE为例,基于公开资料对PaaS的关键技术进行介绍。Google的主要核心技术可以分以下3大类:①分布式基础设施,如GFS、Chubby和ProtocolBuffer;②分布式大规模数据处理,如Map-reduce和Sawzall;③分布式数据库技术,如BigTable和Sharding。上一页下一页返回8.2PaaS的基本架构1.分布式基础设施1)GFS由于搜索引擎需要处理海量的数据,所以Google在创业初期设计一套名为“BigFiles”的文件系统,而GFS这套分布式文件系统则是“BigFiles”的延续。GFS主要分为两类节点:(1)Master节点:主要存储与数据文件相关的元数据,而不是Chunk(数据块)。元数据包括一个能将64位标签映射到数据块的位置及其组成文件的表格、数据块副本位置和哪个进行正在读写特定的数据块等。上一页下一页返回8.2PaaS的基本架构Master节点也会周期性地接收从每个Chunk节点来的更新(Heart-beat)以让元数据保持最新状态。(2)Chunk节点:用来存储Chunk,数据文件通过被分割为每个默认大小为64MB的Chunk的方式存储,而且每个Chunk有唯一一个64位标签,并且每个Chunk都会在整个分布式系统被复制多次,默认为3次。GFS的架构图如图8-8所示。在设计上,GFS主要有8个特点:上一页下一页返回8.2PaaS的基本架构(1)大文件和大数据块:数据文件的大小普通在GB级别,而且其每个数据块默认大小为64MB,这样做的好处是减少了元数据的大小,能使Master节点非常方便地将元数据放置在内存中以提升访问效率。(2)操作以添加为主:因为文件很少被删减或覆盖,通常只是进行添加或读取操作,这更能充分考虑到硬盘线性吞吐量大和随机读写慢的特点。(3)支持容错:首先,虽然当时为了设计方便,采用了单Master的方案,但是整个系统会保证每个Master都有其相对应的复制品,以便于在Master节点出现问题时进行切换。上一页下一页返回8.2PaaS的基本架构其次,在Chunk层,GFS已经在设计上将节点失败视为常态,所以能非常好地处理Chunk节点失效的问题。(4)高吞吐量:虽然其单个节点的性能无论是从吞吐量还是延迟都很普通,但因为其支持上千个节点,所以总的数据吞吐量是非常惊人的。(5)保护数据:文件被分割成固定尺寸的数据块以便于保存,而且每个数据块都会被系统复制三份。(6)扩展能力强:因为元数据偏小,使得一个Master节点能控制上千个存数据的Chunk节点。上一页下一页返回8.2PaaS的基本架构(7)支持压缩:对于那些稍旧的文件,可以通过对它进行压缩,来节省硬盘空间,并且压缩率非常惊人,有时甚至接近90%。(8)用户空间:虽然在用户空间的运行效率方面稍差,但是更便于开发和测试,还能更好地利用Linux自带的一些POSIXAPI。现在Google内部至少运行着200多个GFS集群,最大的集群有几千台服务器,并且服务于多个Google服务,如Google搜索。但由于GFS主要为搜索而设计,所以不是很适合一些新的Google产品,同YouTube、Gmail相比,其更强调大规模索引和实时性的Caffeine搜索引擎等,所以Google已经在开发下一代GFS,代号为“Colossus”,并且在设计方面有许多不同。上一页下一页返回8.2PaaS的基本架构2)ChubbyChubby是一个锁服务,通过这个锁服务,可以解决分布式中的一致性问题,而这个锁服务的实现是一个分布式的文件系统。所谓锁服务,就是这个服务能够提供开发人员经常用的“加锁”“解锁”功能。通过Chubby,一个分布式系统中的上千个client都能够对于某项资源进行“加锁”“解锁”。Chubby通过文件实现这样的“锁”功能。Chubby中的“锁”就是文件,创建文件其实就是进行“加锁”操作,创建文件成功的那个server其实就是抢占到了“锁”。用户通过打开、关闭和读取文件,获取共享锁或者独占锁;并且通过通信机制,向用户发送更新信息。上一页下一页返回8.2PaaS的基本架构3)ProtocolBufferProtocolBuffger是Google内部使用的一种数据交换的格式,它独立于语言和平台。Google提供了多种语言的实现,如java、c#、c++、go和python,每一种实现都包含了相应语言的编译器及库文件。由于它是一种二进制的格式,与使用xml进行数据交换相比要快得多。它主要用于两个方面:①RPC通信,它可用于分布式应用之间或者异构环境下的通信。②数据存储,因为它自描述且压缩很方便,所以可用于对数据进行持久化,如存储日志信息,并可被Map-reduce程序处理。上一页下一页返回8.2PaaS的基本架构与ProtocolBuffer比较类似的产品还有Facebook的Thrift,而且Facebook号称Thrift在速度上还有一定的优势。2.分布式大规模数据处理1)MapReduce首先,在Google数据中心会有大规模数据需要处理,如被网络爬虫(WebCrawler)抓取的大量网页等。上一页下一页返回8.2PaaS的基本架构由于这些数据很多都是PB级别,导致处理工作不得不尽可能地并行化,而Google为了解决这个问题,引入了MapReduce这个编程模型,MapReduce源自函数式语言,主要通过“Map(映射)”和“Reduce(化简)”这两个步骤来并行处理大规模的数据集,Map会先对很多独立元素组成的逻辑列表中的每一个元素进行指定的操作,且原始列表不会被更改,会创建多个新的列表来保存Map的处理结果。也就意味着,Map操作是高度并行的。当Map工作完成之后,系统会先对新生成的多个列表进行清理(Shuffle)和排序,之后会对这些新创建的列表进行Reduce操作,也就是对一个列表中的元素根据key值进行适当的合并。上一页下一页返回8.2PaaS的基本架构图8-9为MapRduce的运行机制。其次,根据图8-9来举一个MapReduce的例子:通过搜索Spider将海量的Web页面抓取到本地的GFS集群中,然后Index系统将会对这个GFS集群中多个数据Chunk进行平行的Map处理,生成多个Key为URL,value为html页面的键值对,接着系统会对这些刚生成的键值对进行Shuffle(清理),之后系统会通过Reduce操作来根据相同的Key值(也就是URL)合并这些键值对。上一页下一页返回8.2PaaS的基本架构最后,通过简单的编程模型MapReduce,不仅能进行处理大规模数据,而且能将很多烦琐的细节隐藏起来,如自动并行化、负载均衡和机器宕机处理等,这将极大地简单程序员的开发工作。MapReduce可用于包括“分布grep、分布排序、web访问日志分析、反射索引构建、文档聚类、机器学习、基于统计的机器翻译、生成Google的整个搜索的索引”等大规模数据处理工作,Yahoo也推出MapReduce的开源版本Hadoop,而且Hadoop在业界也已经被大规模使用。2)Sawzall上一页下一页返回8.2PaaS的基本架构Sawzall可以被认为是构建在MapReduce之上的采用类似Java语法的DSL(DomainSpecificLanguage领域特定语言),也可以认为它是分布式的AWK。它主要用于对大规模分布式数据进行筛选和聚合等高级数据处理操作,在实现方面,是通过解释器将其转化为相对应的MapReduce任务,除了Google的Sawzall之外,Yahoo推出了相似的Pig语言,但语法类似于SQL。3.分布式数据库技术1)BigTable上一页下一页返回8.2PaaS的基本架构在Google的数据中心存储PB级以上的非关系数据时,如网页和地理数据等,为了更好地存储和利用这些数据,Google开发了一套数据库系统,名为“BigTable”。BigTable不是一个关系型的数据库,它也不支持关联(Join)等高级SQL操作,取而代之的是多级映射的数据结构,并且是一种面向大规模处理、容错性强的自我管理系统,拥有TB(TeraByte)级的内存和PB级的存储能力,使用结构化的文件来存储数据,每秒可以处理百万的读写操作。什么是多级映射的数据结构呢?就是一个稀疏的、多维的、排序的Map,每个Cell由行关键字、列关键字和时间戳三维定位。上一页下一页返回8.2PaaS的基本架构Cell的内容是一个不解释的字符串,如图8-10存储每个网站的内容与被其他网站反向连接的文本。反向的URLn.www是这行的关键字:contents列存的储网页内容,每个内容有一个时间戳,因为有两个反向连接,所以anchor的ColumnFamily:anchor:my.look.ca。ColumnFamily这个概念,使得表可以轻松地横向扩展。具体的数据模型如图8-10所示。在结构上,首先,BigTable基于GFS分布式文件系统和Chubby分布式锁服务,其次,BigTable也分为两部分:①Master节点,用来处理元数据相关的操作并支持负载均衡。上一页下一页返回8.2PaaS的基本架构②Tablet节点,主要用于存储数据库的颁Tablet,并担任相应的数据访问,同时Tablet是基于名为SSTable的格式,对压缩有很好的支持。BitTable架构图如图8-11所示。BigTable正在为Google60多种产品和项目提供存储和获取结构化数据支撑平台,其中包括GooglePrint、Orkut、GoogleMaps、GoogleEarth和Blogger等,而且Google至少运行着500个BigTable集群。随着Google内部服务对需求的不断提高和技术的不断发展,导致原来的BigTable已经无法满足用户的需求,而Google也正在开发下一代BigTable,名为“Spanner(扳手)”,它主要有以下7种BigTable所无法支持的特性。上一页下一页返回8.2PaaS的基本架构(1)支持多种数据结构,如table、familie、group、coprocessor等。(2)基于分层目录和行的细粒度的复制和权限管理。(3)支持跨数据中心的强一致性和弱一致性控制。(4)基于Paxos算法的强一致性副本同步,并支持分布式事务。(5)提供许多自动化操作。(6)强大的扩展能力,能支持百万台服务器级别的集群。(7)用户可以自定义诸如延迟和复制次数等重要参数以适应不同的需求。上一页下一页返回8.2PaaS的基本架构2)数据库ShadingShading就是分片的意思,虽然非关系型数据库如BigTable在Google的世界中占有非常重要的地位,但是面对传统OLTP(OnLineTransactionProcessing,联机事务处理过程)应用,如广告系统,Google还是采用传统的关系型数据库技术,也就是MySQL,同时由于Google所需要面对的流量非常巨大,所以Google在数据库层采用了Sharding的水平扩展(ScaleOut)解决方案,Shoding是在传统垂直扩展(ScaleUp)的分区模式上的一种提升,主要通过时间、范围和面向服务等方式来将一个大型的数据库分成多片,并且这些数据片可以跨越数据库和服务器来实现水平扩展。上一页下一页返回8.2PaaS的基本架构在实现方面,主要可分为两块:①在MySQLInnoDB基础上添加了数据库分片的技术。②在ORM层的Hibernate的基础上也添加了相关的分片技术,并支持虚拟分析(VirtualShard)来便于开发和管理。同时Google也已经将这两方面的代码提交给了相关组织。上一页返回8.3典型PaaS平台分析8.3.1Google的AppEngine平台GAE是基于Google的基础架构来运行的网络应用程序,它使开发人员可以在支持Google应用程序的同一可扩展系统上构建网络应用程序,无须汇编。GAE提供完全集成的应用程序环境,它易于扩展。GAE使构建可扩展的应用程序(从一个用户增加到数百万个用户)变得轻松,且无须为基础架构烦恼。1.GAE功能GAE提供分布式软件开发、测试、部署环境,使得广大开发者可以轻松开发并基于Google的基础架构运行自己的网络应用程序。下一页返回8.3典型PaaS平台分析GAE根据用户应用程序的访问量和数据存储需求动态扩展运行时的资源,免去了用户构建、维护、升级服务器的开销,用户开发GAE应用程序时,还可以使用内部组件和Google提供的AIP整合Google其他服务,如用户身份验证、GoogleAccounts、网页抓取、邮件、Memcache等。GAE保证用户应用程序在安全环境中运行,该环境仅需提供对基础操作的有限访问权限,沙盒将应用程序隔离在自己安全可靠的环境中,与网络服务器的硬件、操作系统与物理位置无关。上一页下一页返回8.3典型PaaS平台分析为简化GAE网络应用程序开发过程,Google提供了Python和Java运行环境,用户基于Google提供的软件开发工具SDK,用Python或Java开发语言在本地开发,然后部署到GAE。Google还提供了基于网络接口的管理控制平台,供用户管理在AppEngine上的应用程序,包括创建应用程序、配置域名、更改应用程序当前版本、检查访问权限和错误日志,浏览应用程序数据库等。GAE还提供了一套数据库查询语言——GQL(GraphicalQueryLanguage,图形询问语言),供用户应用程序查询和管理存储在Google分布式数据库系统BigTable中的数据。2.GAE的主要组成部分上一页下一页返回8.3典型PaaS平台分析GAE主要可分为5部分。(1)应用服务器:主要是用于接收来自于外部的Web请求。(2)Datastore:主要用于对信息进行持久化,并基于Google著名的BigTable技术。(3)服务:除了必备的应用服务器和Datastore之外,GAE还自带很多服务来帮助开发者,例如,Memcache、邮件、网页抓取、任务队列、XMPP(ExtencibleMessagingandPresenceProtocol,可扩展通讯和表示协议)等。(4)管理界面:主要用于管理应用并监控应用的运行状态,如消耗了多少资源、发送了多少邮件和应用运行的日志等。上一页下一页返回8.3典型PaaS平台分析(5)本地开发环境:主要是帮助用户在本地开发和调试基于GAE的应用,包括用于安全调试的沙盒、SDK和IDE插件等工具。3.GAE的架构GAE构建在Google内部的云平台上,其架构如图2-3所示,或进一步简化为如图8-12所示的结构,即包括:web、Datastore和服务群(ServiceGroup)三大部分。1)web部分Web部分主要用于处理请求主要有如下模块:(1)前端:包括FrontEnd和StaticFiles,主要负责负载均衡和将具体的web请求转发给应用服务器。上一页下一页返回8.3典型PaaS平台分析对于一些静态文件,如图片、CSS和JS脚本等的请求,前端会将这种请求转给对应的类似于CDN(ContentDeliveryNetwork,内容分发网络)的静态文件服务器。(2)应用服务器(AppServer):负责提供Python和Java运行环境,用于装载应用的代码,处理接收到的web请求,并根据请求的内容调用后面的Datastore和服务群。(3)应用管理节点(AppMaster):在应用服务器间应用,提供对应应用程序的管理,包括启动、停止应用程序、计费等,并将调度之后的情况通知前端。上一页下一页返回8.3典型PaaS平台分析2)DataStore它是基于BigTable技术的分布式数据库,虽然它也可以被理解成一个服务,但是由于它是整个AppEngine对数据进行持久化的地方,所以它是AppEngine中一个非常核心的模块。3)服务群整个服务群包括包括BigTable数据存储(Datastore)、缓存(Memcache)、图像(Images)、用户(User)、URLFetch和Email在内的很多服务,供AppServer上运行的应用调用。4.Web请求处理流程上一页下一页返回8.3典型PaaS平台分析这里以一个普通的HTTP请求为例说明web请求的处理流程,其流程图如图8-13所示。(1)用户发送一个HTTP请求。(2)FrontEnd接受这个请求,并将这个请求转发给一个空闲的AppServer。(3)AppServer会处理这个请求。(4)检查用于处理这个请求的Handler是不是已经被初始化了,如果没有的话,需要对这个Handler进行初始化。(5)调用服务群的用户认证服务来对用户进行认证,如果失败的话,需要终止整个请求的处理工作,并返回用户无法被认证的信息。上一页下一页返回8.3典型PaaS平台分析(6)查看这个请求所需的数据是否已经缓存在Memcache中,如果没有的话,将对Datastore发出查询请求来得到数据。(7)通过整合上步得到数据来生成相关的HTML,并返回给用户。(8)由于HTML里面会包含对一些静态文件的引用,如图片和CSS等,所以当用户收到HTML之后,还会通过FrontEnd对StaticFiles里面存储的静态文件进行读取。8.3.2微软WindowsAzurePlatform1.平台概览上一页下一页返回8.3典型PaaS平台分析WindowsAzurePlatform是一个为应用程序提供托管和运行的平台,包括一个云计算操作系统——MicrosoftAzure、云关系型数据库——SQLAzure和一个为开发者提供的服务集合或云中间件——AppFabric。它们的组成如图8-14所示。开发人员创建的应用既可以直接在该平台中运行,也可以在别的地方运行而只使用该云计算平台提供的服务。相比较而言,WindowsAzurePlatform延续了微软传统软件平台的特点,能够为客户提供熟悉的开发体验,用户已有的应用程序都可以相对平滑地迁移到该平台上运行。另外WindowsAzurePlatform还可以按照云计算的方式按需扩展,并根据实际用户使用的资源(如CPU、存储、网络等)来进行计费。上一页下一页返回8.3典型PaaS平台分析WindowsAzurePlatform让开发人员可以把精力放在他们的应用逻辑上而不是在部署和管理云服务的基础架构上,并可以节省开发部署的时间和费用。为了便于理解,可以把MicrosoftAzure看成是数据中心的操作系统。它履行了资源管理的职责,只不过它管理的资源更为宏观,数据中心中的所有服务器、存储、交换机、负载均衡器,甚至是机架上的电源开关等都接受它的管理。MicrosoftAzure是一个开放的平台,支持微软和非微软的语言和环境,它为开发者提供了托管的、可扩展的、按需应用的计算和存储资源,还为开发者提供了云平台管理和动态分配资源的控制手段。上一页下一页返回8.3典型PaaS平台分析开发人员在构建MicrosoftAzure应用程序和服务时,不仅可使用熟悉的MicrosoftVisualStudio、Eclipse等开发工具,同时MicrosoftAzure还支持各种流行的标准与协议,包括SOAP、REST、XML和HTTPS等。AzureAppliance是一个可以部署在客户数据中心的、软硬件一体的云平台解决方案。AzureAppliance由符合微软规定的硬件产品包括服务器、存储和网络,以及WindowsAzure和SQLAzure等构成。AzureAppliance主要针对服务供应商、大型企业和政府部门设计,每个AzureAppliance中包括几百台到几千台服务器。上一页下一页返回8.3典型PaaS平台分析它提供了一个经过微软实际服务检验的云计算平台,通过创新的能源、制冷和自动化技术为数据中心提供突破性的效能。AzureAppliance的硬件按照微软第四代数据中心标准设计,已经集成了包括制冷、风扇等不同组件,因此可以作为一个集装箱式的部署单元,通过模块化的方式构建客户数据中心。AzureAppliance的特点如下:(1)在客户自己的数据中心提供可以扩展的PaaS类服务,并可以在此基础上构建SaaS服务。(2)部署一个经过检验的、可以扩展到成千上万台服务器的云平台。上一页下一页返回8.3典型PaaS平台分析(3)在自己的数据中心中提供类似微软WindowsAzure平台的能力,但是客户自己控制物理设备和数据的独立性,并符合法规遵循的要求。2.云操作系统——MicrosoftAzureMicrosoftAzure作为基础平台的调度和管理软件,它是构建高效、可靠、可动态扩展应用的重要平台,主要由计算服务、存储服务、管理服务和开发环境4大部分所示,如图8-15所示。上述的4个组成部分只有开发环境是安装在用户计算机上的,用于用户开发和测试MicrosoftAzure的应用程序,其余3个部分都是MicrosoftAzure服务平台的一部分而安装在微软数据中心。上一页下一页返回8.3典型PaaS平台分析WindowsAzureFabric控制器被比作是MicrosoftAzure的大脑,它负责平台中各种资源的统一管理和调配。开发人员通过MicrosoftAzure开发工具开的发应用程序一般分为两大部分:①应用程序代码(也称服务代码),②应用的配置文件(也称服务模型)。每个应用包括两个配置文件:服务定义文件和服务配置文件。这两个配置文件中会包含应用程序在MicrosoftAzure上运行和发布的一些信息,如认证信息、服务端口、服务角色、需要的实例数、自定义变量等。当用户通过开发者门户把应用程序上传到MicrosoftAzure平台的时候,其中的配置文件则由WindowsAzureFabric控制器来读取,然后由其根据配置文件中指定的方式进行服务部署。上一页下一页返回8.3典型PaaS平台分析目前,MicrosoftAzure的计算资源主要通过称为WebRole和WorkerRole的方式来分配的。为了便于理解,可以认为WebRole和WorkRole是两种不同的虚拟机模板,其中WebRole是为了方便运行Web应用程序而设计的,而WorkerRole是为了其他应用类型,如批处理而设计的。一种比较常见的架构设计方式是使用WebRole来处理展示逻辑,而通过WorkerRole来进行业务逻辑处理。WebRole负责客户端的HTTP请求,为了支持应用的扩展,WebRole上的应用一般会设计为无状态的,从而使得系统可以方便地增加WebRole实例数量,提高应用的并发处理能力。WindowsAzureFabric结构如图8-16所示。上一页下一页返回8.3典型PaaS平台分析应用程序离不开数据,同样云计算应用程序也离不开数据的支持。MicrosoftAzure提供的存储不是一个关系型数据系统,并且它的查询语言也不是SQL,它主要被设计用来支持建于MicrosoftAzure上的应用,它提供更简单容易扩展的存储。WindowsAzureStorage主要提供了3种数据存储方式以满足应用程序的不同需要,这3种存储方式分别为Blob、Table和Queue,如图8-17所示。(1)WindowsAzureBlobWindowsAzureBlob用来存储大数据。Blob非常便于存储二进制数据,如JPEG图片或MP3文档、XML文档,压缩文件和其他在容器内任意排列的字节等多媒体数据。上一页下一页返回8.3典型PaaS平台分析Blob存储数据是通过一个简单的层级关系来实现的,每个账户Account下有一个容器,这个容器就是用户定义的一套只有一个属性的Blobs(Blob集合),容器不直接存储数据,每个Blobs包含了多个Blob。在上传大文件的时候,我们可以先把大文件分割成多个Blob来上传,这样就解决了大文件上传的问题。Block对下载流程是透明的,下载者根本不知道也不用去知道它正在下载的文件被分成了多少个block。(2)WindowsAzureTableWindowsAzureTable是存储表数据,类似关系数据库中的数据表。为了保存和使用云应用程序中具有紧密的数据,MicrosoftAzure存储服务提供了Table。上一页下一页返回8.3典型PaaS平台分析它最大的不同之处是通过键值对的方式提供半结构化数据的存储,并且是一种可扩展存储,它通过多个节点对分布式数据进行扩展和收缩,这比使用一个标准的关系型数据库更为有效。(3)WindowsAzureQueueWindowsAzureQueue为异步工作提供分派消息服务,类似于Windows系统的消息队列。Queue的主要功能是提供一种WebRole实例和WorkerRole实例之间通信的方式,如图8-18所示。3.云数据库——SQLAzureSQLAzure是一个部署在云端的关系型数据库管理系统。上一页下一页返回8.3典型PaaS平台分析SQLAzure基于SQLServer技术构建,具有很好的应用兼容性。SQLAzure的设计遵循了主要的3条原则:可扩展性、可管理性和开发的灵活性。作为一个部署在云端的数据库引擎,绝大多数的管理工作都由微软完成,因此用户不用担心任何如备份、集群等管理方面的问题,微软的服务许可协议SLA确保了数据库服务器平均每个有将有99.99%的时间在线。如图8-19所示,SQLAzure除了提供最基础的关系型数据库服务之外,同时还提供更多的数据相关的功能,如数据同步、报表,并计划推出商业智能。基于数据同步的功能,能够与SQLServer数据库同步,实现了传统应用与云端应用的整合与并存。上一页下一页返回8.3典型PaaS平台分析SQLAzure使用关系型数据模型,数据存储于SQLAzure上就和存储于SQLServer上一样,在概念上类似于一个本地SQLServer实例。一个SQLAzure服务器就是一组数据库的逻辑组合,是一个独立的授权单位。在每个SQLAzure服务器内,可以创建多个数据库,每个数据库可以拥有多个表、视图、存储过程、索引和其他熟悉的数据库对象。该数据模型可以很好地重用现有的关系型数据库设计、Transact-SQL编程技能和经验,简化了迁移现在本地数据库应用程序至SQLAzure的过程。开发人员可以使用现有的知识来访问位于SQLAzure上的数据。SQLAzure服务器和数据库都是逻辑对象,并不对应于物理服务器和数据。上一页下一页返回8.3典型PaaS平台分析通过用户与物理实现的隔离,SQLAzure使得用户可以将时间专用于数据库设计和业务逻辑上。4.云服务总线——AzureAppFabricWindowsAzureplatformAppFabric为本地应用和云中应用提供了分布式的基础架构服务。在云计算中存储数据与运行应用都重要,但是我们还需要一个基于云的基础架构服务。这个基础架构服务应该既可以被客户自有软件应用,又能被云服务应用。WindowsAzureplatformAppFabric就是这样一个基础架构服务。AppFabric能够使客户自有应用与云应用之间进行安全连接和信息传递。上一页下一页返回8.3典型PaaS平台分析它使得在云应用和现有应用或服务之间的连接及跨语言、跨平台、跨不同标准协议的互操作变得更加容易,并且与云提供商或系统平台无关。图8-20展示了其核心的组件:服务总线(ServicesBus)和访问控制服务(AccessControlService)。1)服务总线服务总线的目标是简化将传统应用服务部署到Internet的工作,使无论是传统的自有(On-Premises)系统或是云端应用,都可以互相访问对方的Web服务。每个服务的终节点被分配一个Internet上的固定的URL地址,可帮助其他应用定位和访问。服务总线可处理网络地址转换和企业防火墙所带来的挑战。上一页下一页返回8.3典型PaaS平台分析当服务连接到服务总线后,可以注册称为一个Internet的服务。尽管该服务是托管在内网中,总线服务将会分配一个Internet上的URI地址。因为,此时该服务已经和总线服务建立了连接,其他应用只需要访问这个URI地址,服务总线将会负责将请求转发给内网中的服务,并将该服务的应答转发给客户端。2)访问控制服务WindowsAzureplatformAppFabric中提供的访问控制服务是一个基于申明的认证模型。利用这个模型,可以通过访问控制服务完成多种方式的认证和授权。通过访问控制的配置,企业客户端可以通过活动目录联合服务器提供的登录凭据,完成访问控制服务的认证。上一页下一页返回8.3典型PaaS平台分析这样基于访问控制服务的云端应用就可以接受这一认证,实现多种的认证模式。8.3.3开源Hadoop平台Hadoop是一个由Apache基金会所开发的,由Yahoo团队领导的一个基于Java语言的分布式系统软件开发架构,是对Google分布式技术实现。对云计算来说,Hadoop具有重要的意义,它以开源的方式提供了PaaS服务所需要的大多数分布式技术,降低了PaaS的门槛,使得诸如Amazon、IBM等在IaaS领域成功运营的企业,能够快速在自己的云平台提供基于Hadoop的PaaS服务。上一页下一页返回8.3典型PaaS平台分析Hadoop部署在由大规模廉价PC服务器组成的集群上,具有高度的可靠性和可扩展性。作为完整的分布式软件架构,Hadoop下面的HadoopCommon、Avro、Chukwa、HBase、HDFS、Hive、MapReduce、Pig、ZooKeeper9个子项目,如图8-21所示。其中,MapReduce是对Google分布式计算模型的开源实现,用于对少量数据做分布式分析处理;HDFS是对Google分布式文件系统GFS的开源实现,用于存储海量非结构化数据;HBase是对Google分布式数据库BigTable的开源实现,用于存储海量结构化数据;ZooKeeper是对Google分布式锁机制Chubby的开源实现。上一页下一页返回8.3典型PaaS平台分析1.Hadoop各子项目的功能(1)HadoopCommon:是Hadoop体系最底层的一个模块,为Hadoop各子项目提供各种工具,如配置文件和日志操作等。(2)Avro:数据串行化系统,用于支持大批量数据交换的应用,支持二进制串行化方式,通过脚本语言提供动态集成,可能便捷、快速地输入大量数据。(3)Chukwa:是架构在Hadoop之上的数据采集与分析框架,主要进行日志采集和分析。上一页下一页返回8.3典型PaaS平台分析CHukwa通过安装在收集节点的“代理”采集最原始的日志数据,然后将数据发给收集器,收集器定时将数据写入Hadoop集群,并且指定定时启动的MapReduce作业对数据进行加工处理和分析,最终通过Hadoop基础管理中心(HadoopInfrastructureCareCenter,HICC)展示数据。(4)HBase:GoogleBigtable的开源实现,用于存储大规模结构化数据的可扩展的分布式数据库,可以使用shell、Web、API等多种方式访问,适合高读写(insert)的场景。上一页下一页返回8.3典型PaaS平台分析(5)HDFS:是一个高度容错性的分布式文件系统,适合部署在廉价的机器上,能提供高吞吐量的数据访问,适合有着超大数据集的应用程序,(6)Hive:数据仓库基础设施,可以看成是从SQL到Map-Reduce的映射器,它把Hadoop下的原始结构化数据变成Hive中的表。支持一种与SQL几乎完全相同的语言HiveQL。(7)MapReduce:在集群上分布式处理大规模数据集的软件架构。(8)Pig:一种高级的数据流语言和并行计算的执行框架,使用类似于SQL的面向数据流的语言PigLatin。上一页下一页返回8.3典型PaaS平台分析Pig自动把PigLatin映射到MapReduce作业上传到集群运行,减少用户编写Java程序的苦恼。(9)ZooKeeper:是GoogleChubby的开源实现,用于协调分布式系统上的各种服务。例如,确认消息是否准确到达、防止单点失效、处理负载均衡等。2.Hadoop的核心设计Hadoop框架中最核心设计就是:HDFS和MapReduce。HDFS提供了海量数据的存储,MapReduce提供了对数据的计算。1)HDFSHDFS是Hadoop的分布式文件系统的实现。上一页下一页返回8.3典型PaaS平台分析它的设计目标是存储海量数据,并为分布在网络中的大量客户端提供数据访问。HDFS的设计思想基于GFS。它的实现解决了存在于众多分布式文件系统中的大量问题,如保存TB级或PB级的数据量问题、可靠地存储数据问题等。2)MapReduceMapReduce是一套从海量源数据提取分析元素最后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。MapReduce的基本原理是将大的数据分析分成小块逐个分析,最后再将提取出来的数据汇总分析,最终获得我们想要的内容。上一页下一页返回8.3典型PaaS平台分析当然怎么分块分析,怎么进行Reduce操作非常复杂,Hadoop已经提供了数据分析的实现,我们只需要编写简单的需求命令即可得到我们想要的数据。3.Hadoop平台与其他平台的关系。Hadoop是一个开源的分布式软件开发架构,具有开源、稳定、可靠、可扩展的优点,可用作PaaS平台的分布式处理技术。Hadoop本身也是一个完整的分布式处理系统,涵盖文件储存、数据库、计算模型、并发控制等,它隐藏了复杂的分布式系统管理和调度问题,便于部署和使用。上一页下一页返回8.3典型PaaS平台分析因此,有越来越多的企业将Hadoop部署在自己的PaaS云计算平台上,如Amazon、IBM、Adobe、阿里巴巴、百度等,这些平台或基于Hadoop开发企业内部应用,如构建内部搜索引擎、分析海量日志数据等,或基于Hadoop开展PaaS服务,为开发者提供分布式软件开发环境。8.3.4OraclePaaS云平台1.OraclePaaS平台架构OraclePaaS平台是一组全面的产品,用于构建以公有云或私有云服务形式提供的应用平台。OraclePaaS平台基于Oracle网格技术,这些技术包括带有真正集群的Oracle数据库和Oracle应用网格。上一页下一页返回8.3典型PaaS平台分析在集群中间件和数据库技术这一基础之上,OraclePaaS平台还包括诸如OracleSOASuite、OracleBPM(BusinessProcessManagement,业务流程管理)Suite、OracleIdentityManagement和OracleWebCenter这样的一些组件。OraclePaaS平台构建于稳健的OracleIaaS产品之上,OraclePaaS和OracleIaaS均由OracleEnterpriseManager(Oracle企业管理器)管理,后者提供了整个云部署生命周期从应用程序到磁盘的集成系统管理,如图8-22所示。对于许多在构建PaaS还是构建IaaS产品之间进行选择的组织来说,主要问题是他们希望为自己的客户提供什么程序的标准化、可重用的共享平台。上一页下一页返回8.3典型PaaS平台分析IaaS提供了基本的计算、存储和网络功能,因此它也是最灵活的,但是它需要用户提供其余的内容,包括应用程序、中间件和数据库,这将会增加开发成本、开发时间和异构性。对许多组织来说,私有PaaS是其云战略的自然选择,这种战略使用户和IT服务提供商都能受益。PaaS为用户进行应用开发提供了一个标准化、可重用和共享的起点,这既可以加快并简化开发,又可以获得充分的灵活性。从IT的角度看,PaaS产品意味着更好的可管理性、安全性、一致性、更高的效率和控制力。2.OraclePaaS云平台的组件1)存储上一页下一页返回8.3典型PaaS平台分析Oracle的SunOpenStorage产品把开源软件和工业标准的硬件结合在一起,形成了一个开放的、可扩展的存储平台,这个平台可根据需要进行优化,以便提供公有的或私有的云存储服务。OracleExadataStorageServer利用一种大规模并行体系结构极大地增加了数据库服务器和存储之间的数据带宽。另外,智能存储软件解决了OracleDatabase11g服务器的数据密集型查询处理的问题,并使查询处理离数据更近,而是在距离数据更近的位置进行查询处理。其结果是加快了并行数据处理的速度,减少了数据的移动。此外这个大规模并行体系结构还提供了线性可扩充性和关键任务的可靠性。上一页下一页返回8.3典型PaaS平台分析2)服务器和操作系统现代企业数据中心是高度优化、复杂的引擎,它推动和决定了业务的运行方式。最为流行的云计算愿景是使一切都运行在刀片服务器上。虽然这一愿景变得越来越可行,但还存在对不同规格服务器和不同配置的广泛需求,这些需求和配置对某些特定的应用程序来说是最佳的。Oracle提供Sun服务器产品线,对行业标准操作系统(Solaris、Linux、Windows)提供支持,这将使Oracle能继续提供大范围的物理基础设施,这些基础设施专门针对云实现的高度虚拟化和分布式特性进行了优化。上一页下一页返回8.3典型PaaS平台分析3)虚拟化Sun和Oracle虚拟化产品的结合提供了一个无与伦比的组合,使用户可以实现从桌面到数据中心都可进行虚拟化。(1)服务器虚拟化。通过隔离软件和硬件,允许不用或只用极少的硬件就可以迅速快速实现应用程序环境部署,这就大大减少了安装并运行应用程序所需的时间。Oracle提供了各种服务器虚拟化技术。①OracleVM。OracleVM是一种管理技术,它安装在一个服务器裸机上,并允许多个操作系统环境运行在它上面。OracleVM支持x86和SPARC体系结构,从而能够部署在异构的云环境中。上一页下一页返回8.3典型PaaS平台分析客户可以利用OracleVM来整合服务器、迅速部署软件、从系统故障中迅速恢复、将资源能力与工作负载相匹配。②OracleVMServerforSPARC。OracleVMServerforSPARC取代了SPARC逻辑域(LDom),但仍然为SunSPARC芯片多线程(ChipMultithreadingTechnology,CMT)服务器提供高效管理程序,并支持单个服务器上的多个独立Solaris实例。③Solaris容器。Solaris容器的虚拟化功能使客户能安全地将多个Solaris应用程序整合到一个操作系统上,并通过Solaris11的高级功能提高了利用率,这使得客户能够将成千上万个应用程序托管到单个系统上(只使用单个OS实例)。上一页下一页返回8.3典型PaaS平台分析这种独立于硬件的虚拟化可以仅仅使用不到1%的系统开销,动态地调整以适应业务目标。并且Solaris容器可以在几秒钟内启动和重启,且很容易创建、复制、重命名和克隆,这可以极大地简化和加速云管理。(2)VM模板和组合件OracleVM模板是包含预先安装和预配置的企业软件的虚拟机映像,这些企业软件可用于开发、封装、分发应用程序以便加快在OracleVMServerforx86环境中的部署。OracleVM模板可以加速和简化应用程序部署,帮助减少在生产、开发或测试环境中出错的风险。上一页下一页返回8.3典型PaaS平台分析这种应用程序打包的下一个层次是VM组合件的概念。OracleVirtualAssemblyBuilder(OVAB)是一个可以将多层分布应用程序进行整合并打包成一个组合件的工具,与软件设备虚拟映像类似,组合件本质上是一个文件,它包括了作为组成部分的软件映像及有关软件设备配置、启动顺序的元数据。当在公有或私有云环境中创建一个应用程序和共享服务的库时,这一技术将会是一个关键元素。4)数据库网格在OracleIaaS之上是构建现代应用程序所需的高级软件组件。高度优化的PaaS层要求尽快并尽可能无缝地以物理或虚拟云基础架构来提供高性能的数据库和中间件服务。上一页下一页返回8.3典型PaaS平台分析自2003年起,Oracle持续不断地在集群[通过RAC(RealApplicationClusters,真正应用集群)]、存储虚拟化、可管理性[通过ASM(AutomaticStorageManagement,自动存储管理)]和数据库性能(通过InMemoryDatabaseCache)几方面对网格功能进行增强。(1)RAC。RAC对网格基础架构和机制的支持力在数据库中是独一无二的,尤其是它具有的动态添加或删除节点的调整能力。这一能力不仅支持私有云所需要的弹性容量,还大大增强了如升级、打补丁和迁移这样的日常管理任务,且不会破坏业务的连续性。上一页下一页返回8.3典型PaaS平台分析OracleRAC得到所有的Oracle操作系统和虚拟化平台的支持,并且具有无须中止数据库或应用程序就可以在线添加和删除群集节点的特性。既可以在物理集群节点也可以在虚拟群集节点上运行数据库和中间件的能力为在云环境中进行部署提供了最大的选择。(2)ASM。ASM为数据库为数据库创建存储网格,这个存储网格可以被动态地、自动地调整。它已成为在OracleRAC下部署存储最常用的方法,并为DBA(DatabaseAdministrator,数据库管理员)们提供显著的管理能力和效率。这种简化的管理也是那些希望在云中提供数据库服务的客户所希望的。(3)OracleInMemoryDatabaseCache上一页下一页返回8.3典型PaaS平台分析OracleInMemoryDatabaseCache支持将特定的表、行、列从Oracle数据库缓存到中间层服务器的内存中,这样可以实现仍小的延迟和极高的吞吐量。数据与Oracle数据库保持同步,并且可以通过标准的SQL接口访问。此外,OracleInMemoryDatabaseCache还支持集群,从而实现灵活的可伸缩性和高可用性。5)应用网格在前面指出的云计算的关键特征中,弹性容量对许多应用程序来说是需要优先考虑的。上一页下一页返回8.3典型PaaS平台分析IT部门有了能够自动适应各种应用程序发展所需要的基础架构,也就意味着可以少花钱多办事:它可以为整个企业的应用程序SLA提供更好的性能,而无须针对每个应用程序自己的最同负载单独进行配置。与Oracle数据库和存储中的网格架构类似,Oracle融合中间件(OracleFusionMiddleware)通过一组名为Oracle应用网格(OracleCloudApplicationFoundation)的产品来支持中间层稳健的网格功能。应用网格使得中间件服务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论