Google云计算平台的分析与测试.docx

上传人:b****5 文档编号:12668280 上传时间:2023-04-21 格式:DOCX 页数:47 大小:1.52MB
下载 相关 举报
Google云计算平台的分析与测试.docx_第1页
第1页 / 共47页
Google云计算平台的分析与测试.docx_第2页
第2页 / 共47页
Google云计算平台的分析与测试.docx_第3页
第3页 / 共47页
Google云计算平台的分析与测试.docx_第4页
第4页 / 共47页
Google云计算平台的分析与测试.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

Google云计算平台的分析与测试.docx

《Google云计算平台的分析与测试.docx》由会员分享,可在线阅读,更多相关《Google云计算平台的分析与测试.docx(47页珍藏版)》请在冰豆网上搜索。

Google云计算平台的分析与测试.docx

Google云计算平台的分析与测试

Google云计算平台的分析与测试

摘要

当今,云计算作为一种成功的商业模式正在快速的发展,得到了商业界和学术界的大力支持。

因为能够提供强大的计算和存储能力,云计算能够以较低的成本完成海量的任务,受到了许多IT公司的青睐,纷纷推出了云计算发展战略。

云计算包含两个方面的含义:

一方面是底层构建的云计算平台的基础设施,是构建上层应用程序的基础;另一方面是构建在这个基础平台之上的云计算应用程序。

本课题正是是从这两个方面分析Google云计算平台的原理和使用的。

在基础设施分析方面,首先根据现有的云计算平台,总结出通用的云计算平台体系结构,介绍云计算平台的层次划分以及各个层次使用的技术,认识Google云计算平台的体系结构,对Google在云计算平台各个层次所使用的技术有一个总体的了解。

之后把研究重点放在对Google核心技术GFS、MapReduce、BigTable的分析上,了解这些技术如何帮助Google云计算平台实现按需分配资源、充分利用资源、容易扩展和高可用性的特性。

在云计算应用程序研究方面,基于GoogleAppEngine提供的服务编写一个云计算应用程序来测试Google云计算平台的各项功能。

在理论的基础上结合实践,更加全面了解Google云计算平台的原理和使用。

关键字:

云计算;GFS;MapReduce;BigTable;GoogleAppEngin

THEANALYSISANDTESTINGOFGOOGLECLOUDCOMPUTINGPLATFORM

ABSTRACT

Today,thecloudcomputingasasuccessfulbusinessmodelisdevelopingrapidly,andhasgotthecommercialandacademicsupport.Becauseitcanprovidepowerfulcomputingandstoragecapacity,cloudcomputingcancompletemassivetaskatlowcost,manyITcompaniesattachegreatimportancetoit,andlaunchtheircloudcomputingstrategyoneafteranother.

Cloudcomputingconsistsoftwoaspects:

oneistobuildtheunderlyinginfrastructureforcloudcomputingplatformthatisusedtobuildthebasisfortheupperapplication;theotherhand,iscloudcomputingapplicationsbuiltonthisfoundationplatform.TheresearchoftheGooglecloudcomputingplatforminthisissuseisalsofromthesetwoaspectstoanalysizetheprinciplesanduseofthisplatform.

Onthehandofanalysizinginfrastucture,thisissusesummedupacommonarchitectureforcloudcomputingdescribingthelevelofdivisionandthetechnologyusedatalllevelsbasedontheexistingcloudcomputingplatformfirstly,thenhavealookattheGooglecloudcomputingplatformarchitecturetohaveageneralunderstandingofthetechnologiesusedatalllevelsintheplatform.ThentheissuseputthefocusofthestudyontheunderstandingandanalysisofthesecoretechnologiesGFS、BigTableofGoogle,understandingtheprincipleofhowthesetechnologiescanhelpGoogle'scloudcomputingplatformrealizeassigningresourcesbasedonneeds,makingfulluseofresources,easyexpansionandhighavailabilityfeaturesofcloudcomputing.

Onthehandofstudyingcloudapplications,theworkistowriteaGooglecloudcomputingplatformbasedontheservicesprovidedbyGoogleAppEnginetotestvariousfunctionsofplatform.Onthebasisofthetheorywithpractice,IcanhaveamorecomprehensiveunderstandingoftheprinciplesanduserofGoogle'scloudcomputingplatform.

Keywords:

CloudComputing;GFS;MapReduce;BigTable;GoogleAppEngine

目录

摘要I

ABSTRACTII

1绪论1

1.1课题背景与意义1

1.1.1课题背景1

1.1.2课题意义1

1.2研究现状2

1.3本文主要工作2

2Google云计算平台概述3

2.1Google云计算平台的体系结构3

2.1.1云计算体系结构3

2.1.2Google云计算体系结构4

2.2Google云计算平台的应用领域5

3Google云计算平台核心技术7

3.1Google文件系统GFS7

3.1.1分布式文件系统概述7

3.1.2GFS的设计思想和目标7

3.1.3GFS的特点8

3.2并行数据处理MapReduce9

3.2.1MapReduce的产生背景9

3.2.2MapReduce的编程模型9

3.3分布式数据库BigTable10

3.3.1BigTable概述10

3.3.2BigTable体系结构11

4GoogleAppEngine测试程序分析与设计13

4.1测试程序需求分析13

4.2测试程序运行环境分析13

4.2.1GoogleAppEngine概述13

4.2.2Google软件基础设施分析14

4.2.3AppEngine应用程序环境和沙盒17

4.3AppEngine测试程序设计18

4.3.1测试程序概要设计18

4.3.2测试程序详细设计19

5GoogleAppEngine测试程序实现22

5.1开发环境22

5.2应用程序配置22

5.3博客的发布和浏览模块实现22

5.3.1实体健的配置23

5.3.2实体间关系23

5.3.3事务24

5.4用户的登录和资料管理模块实现24

5.4.1用户验证24

5.4.2资料管理25

5.4.3头像处理25

5.4.4用户定位25

5.5电子邮件发送模块实现26

5.6AppEngine测试程序结果26

5.7AppEngine测试程序部署28

5.7.1测试程序上传28

5.7.2测试程序管理28

5.7.3GAE应用程序配额和限制30

结论33

参考文献34

致谢36

1绪论

1.1课题背景与意义

1.1.1课题背景

云计算无疑是IT技术界当前最热点的关键词之一。

在云计算提出后的短短几年间,Google、Amazon、Yahoo等互联网服务商,IBM、Microsoft等IT厂商都纷纷提出了自己的云计算战略,各电信运行商也对云计算投入了极大的关注,这对云计算的商业价值给予了充分的肯定。

同时学术界也对云计算进行深层次的研究,例如Google和IBM联合宣布推广“云计算”的学术合作计划,包括卡内基梅隆大学、斯坦福、伯克利、华盛顿大学、MIT、清华大学在内的许多高校都参加了这项计划[1,2],推动云计算的普及,加紧对云计算的研究。

云计算并不是一门新技术,而是融合了分布式计算,网格计算和并行计算,创造性的提出动态管理资源并按需分配的一种新商业模式。

云计算利用规模化管理和按需分配的优势,大大提高了资源的利用率,降低了计算、存储、网络等资源的使用成本。

Google宣称,由于使用了云计算技术,其计算成本是竞争对手的1/100,而存储成本是竞争对手的1/30[3]。

正是由于云计算能够显著降低企业信息化成本,其蕴藏着巨大的潜力。

Google、Amazon、Microsoft、IBM等IT厂商都推出了自己的云计算平台,提供了IAAS、PAAS、SAAS各个类别的不同服务。

云计算很有可能改变当今IT界的格局,使得分散化应用向集中化演变,以桌面为核心使用各项应用转移到以Web为核心进行各种活动。

Google可以说是云计算鼻祖,Google的发展就是依据云计算模式进行的。

Google的各项应用如GoogleSearch、GoogleGmail、GoogleMaps、GoogleEarth等都是建立在Google的上百万台廉价的X86服务器上的[4],而能够利用这些廉价服务器资源的正是Google的云计算平台。

Google以论文的形式展示了其云计算平台的核心技术原理,为云计算的研究提供了理论依据。

GoogleAppEngine这一平台的发布使用户通过编程的方式使用同GoogleSearch、GoogleMap一样的基础设施,让用户能够结合理论,切实的参加到云计算的实践之中。

1.1.2课题意义

云计算已经成为一种趋势,不论是对企业还是个人,各种应用系统将运行于云计算平台之上。

与传统的虚拟空间只能提供固定的计算能力、存储空间和网络带宽相比,Google云计算平台作为公有云能够为应用提供强大的按需的运算和存储能力,能够提高资源利用率并降低成本。

本课题通过研究与分析Google云计算平台的原理、性能以及GoogleAppEngine提供的编程接口,能够有利于应用系统在google云计算平台上的部署和管理。

并且能够帮助企业借鉴google云计算平台先进的思想和原理搭建私有云。

1.2研究现状

与建立在高性能UNIX服务器集群的基础上的大型IT系统相比,Google的云计算平台建立在大量的X86廉价服务器集群之上,那么两者在技术架构上也存在着明显的差异。

Google采用了许多独特的技术,如数据中心节能技术、节点互联技术、可用性技术、容错性技术、数据存储技术、数据管理技术、数据切分技术、任务调度技术、编程模型、负载均衡技术、并行计算技术和系统监控技术等[3]。

正是这些技术的互相协作,使得Google的云计算平台成为一个能够自动管理资源、自动容错的一个有机整体,成为承载Google应用的强有力支撑。

Google云计算平台中,Node是最基本的处理单元。

在Google云计算平台的技术架构中,除了少量负责特定管理功能的节点如(GFSMaster、Chubby和Scheduler等),所有的节点都是同构的,即同时运行BigTableServer、GFSChunkServer和MapReduceJob等核心功能模块,与之相对应的则是数据存储、数据管理和编程模型等3项关键技术。

Google相继发表了三大核心技术GFS[5]、MapReduce[6]、BigTable[7]的论文,详细的介绍了其实现原理。

文献[5]是GFS的论文,介绍了GFS这一分布式文件系统的设计思想,体系结构以及在数据完整性、一致性的问题上所采用的策略。

文献[6]是MapReduce的论文,介绍了MapReduce这一并行计算的编程模型以及实现。

文献[7]是BigTable的论文,介绍了BigTable这一分布式数据库的存储原理。

此外,Google也发表了许多辅助技术的论文,例如Chubby[8]锁服务的论文。

做为使用Google云计算平台接口的GoogleAppEngine服务目前已经可以支持Python、Java和Go三种语言,提供了存储、邮件、图像处理、Google账户、内存缓存等多项服务。

但是还是存在着很多限制,例如不能使用Google的文件系统。

随着平台的不断发展,更多得服务将会提供,而编程限制也会逐渐减少。

1.3本文主要工作

Google云计算平台是一个由应用服务器群、Bigtable数据库及GFS数据存储服务组成的平台,GoogleAppEngine可以让开发者在Google的基础架构之上运行网络应用程序,能为开发者提供一体化的、可自动升级的在线应用服务。

本文首先对Google云计算的GFS、MapReduce、Chubby以及Bigtable等核心技术进行深入的分析,然后分析GoogleAppEngine的应用程序环境、沙盒、数据库、AppEngine服务、开发流程、配额和限制等。

最后以所分析的理论知识为基础,设计并实现一个简单的信息系统来测试GoogleAppEngine的各项服务。

2Google云计算平台概述

2.1Google云计算平台的体系结构

2.1.1云计算体系结构

云计算充分利用网络和计算机技术实现资源的共享和服务,解决云进化、云控制、云推理和软计算等复杂问题,其基础架构可以用云计算体系结构来描述,而云计算的服务层次则从提供服务类型角度描述云计算对应提供的功能或服务,云计算技术层次从云计算软硬件结合角度说明云计算平台的构成。

在云计算中,根据其服务集合所提供的服务类型,整个云计算服务集合被划分成4个层次:

应用层、平台层、基础设施层和虚拟化层[9-10]。

这4个层次每一层都对应着一个子服务集合。

云计算的服务层次是根据服务类型即服务集合来划分,层次是可以分割的,即某一层次可以单独完成一项用户的请求而不需要其他层次为其提供必要的服务和支持。

应用层对应SaaS软件即服务如:

GoogleAPPS;平台层对应PaaS平台即服务如:

IBMITFactory、GoogleAPPEngine;基础设施层对应IaaS基础设施即服务如:

AmazonEC2、IBMBlueCloud、SunGrid;虚拟化层对应硬件即服务结合Paas提供硬件服务,包括服务器集群及硬件检测等服务。

云计算技术层次和云计算服务层次不是一个概念,后者从服务的角度来划分云的层次,主要突出了云服务能给我带来什么。

而云计算的技术层次主要从系统属性和设计思想角度来说明云,是对软硬件资源在云计算技术中所充当角色的说明。

从云计算技术角度来分,云计算大约有4部分构成:

物理资源层、资源池层、管理中间件层和SOA构建层,如图2-1所示[11-12]。

其中资源池层和管理中间件层是云计算技术的最关键部分。

SOA构建层:

将云计算能力封装成标准的webservices服务,并纳入到SOA体系进行管理和使用,时用户端与云端交互操作的入口,可以完成用户或服务注册,对服务的定制和使用。

管理中间件层:

在云计算技术中,中间件位于服务和服务器集群之间,提供管理和服务即云计算体系结构中的管理系统。

对标识、认证、授权、目录、安全性等服务进行标准化和操作,为应用提供统一的标准化程序接口和协议,隐藏底层硬件、操作系统和网络的异构性,统一管理网络资源。

其用户管理包括用户身份验证、用户许可、用户定制管理;资源管理包括负载均衡、资源监控、故障检测等;安全管理包括身份验证、访问授权、安全审计、综合防护等;映像管理包括映像创建、部署、管理等。

图2-1云计算技术层次模型

资源池层:

将大量相同类型的资源构成同构或接近同构的资源池,如计算池,存储池和网络池、数据库资源等,构建资源池更多的是物理资源的集成和管理工作,通过软件技术来实现相关的虚拟化功能包括虚拟环境、虚拟系统、虚拟平台。

物理资源层:

主要指能支持计算机正常运行的一些硬件设备及技术,可以是价格低廉的PC,也可以是价格昂贵的服务器及磁盘阵列等设备,可以通过现有网络技术和并行技术、分布式技术将分散的计算机组成一个能提供超强功能的集群用于计算和存储等云计算操作。

在云计算时代,本地计算机可能不再像传统计算机那样需要空间足够的硬盘、大功率的处理器和大容量的内存,只需要一些必要的硬件设备如网络设备和基本的输入输出设备等。

2.1.2Google云计算体系结构

上一节从服务和技术的层次分别提出了云计算的通用体系结构,各大IT厂商的解决方案只实现了其中的部分功能,接下来介绍一下Google云计算平台的体系结构。

Google最大的IT优势在于它能够建造出一套既富于性价比而又能承载极高负载的高性能系统。

因此Google认为与竞争对手相比,具有更大的成本优势,同时Google程序员的效率比其他web同行么高出50%~100%,原因是Google应经开发出了一套专用于大规模并行系统的软件库。

从整体看来,Google的云计算平台包含了如下结构层次[13]:

网络系统:

包括内部网络和外部网络。

内部网络是用于连接Google自建的各个数据中心的网络系统,这一高速的网络系统使得Google的每一台服务器连接在一起成为一个负载平衡的集群。

外部网络是指在Google数据中心之外,有Google自己搭建的用于不同国家/地区,不同应用之间的数据交换网络。

硬件系统:

从层次上来看,包括单个服务器、整合了多服务器的机架以及存放、连接各服务器机架的数据中心(IDC)。

软件系统:

包括每个服务器上安装的单机操作系统和Google云计算底层软件系统(文件系统GFS、并行计算处理算法MapReduce、并行数据库BigTable、并行所服务Chubby和云计算消息队列GWQ)。

Google内部使用的软件开发工具,包括C++、Java、Python等。

Google发布的可以使用Python、Java等编程语言调用云计算底层软件系统的PAAS平台—GoogleAppEngine。

Google自己开发的SAAS类型的各项服务,例如GoogleSearch、GoogleGmail、GoogleMap、GoogleEarth等。

图2-2Google云计算平台体系结构

2.2Google云计算平台的应用领域

Google提出了应用向互联网迁移、数据向互联网迁移、计算能力向互联网迁移、存储空间向互联网迁移这一云计算构想,甚至在未来浏览器可能代替操作系统的作用,直接使用来自互联网的各种软件。

从Google提供的基于浏览器使用的各项服务,到推出ChromeOS网络操作系统,可以看到其在云计算战略中坚定的步伐。

然而,以桌面操作系统为中心向以服务器为中心的过渡必然会增加服务器端的计算和存储压力,服务器端必须有处理海量计算和存储的能力才能够支撑。

而Google的云计算平台就具有这种能力,它最直接的应用领域便作为基础设施来承载Google提供的搜索、邮件、文档、地图等各项互联网应用。

随着GoogleAppEngine的发布,不论是简单的个人应用还是企业级应用,都可以构建在Google的云计算平台之上。

这不仅能让广大用户体验到云计算带来的低成本优势,而且有利于基于互联网的应用的繁荣。

总的来说,Google提供了SAAS和PAAS两种类型的服务,不仅可以提供给用户与桌面软件相同体验的互联网应用,而且提供了一个用来创建互联网应用的平台。

在Google云计算平台的强有力支持下,Google的服务具有广阔的应用空间。

3Google云计算平台核心技术

Google拥有全球最强大的搜索引擎。

除了搜索业务以外,Google还有GoogleMaps、GoogleEarth、Gmail、YouTube等各种业务,包括刚诞生的GoogleWave[14]。

这些应用的共性在于数据量巨大,而且要面向全球用户提供实时服务,因此Google必须解决海量数据存储和快速处理问题。

Google的诀窍在于它发展出简单而又高效的技术,让多达百万台的廉价计算机协同工作,共同完成这些前所未有的任务,这些技术是在诞生几年之后才被命名为Google云计算技术。

Google云计算技术具体包括:

Google文件系统GFS、分布式计算编程模型MapReduce、分布式锁服务Chubby和分布式结构化数据存储系统Bigtable等。

其中,GFS提供了海量数据的存储和访问的能力,MapReduce使得海量信息的并行处理变得简单易行,Chubby保证了分布式环境下并发操作的同步问题,Bigtable使得海量数据的管理和组织十分方便。

本章将对这四种核心技术进行详细介绍。

3.1Google文件系统GFS

Google文件系统是一个大型的分布式文件系统,它为Google云计算提供海量存储,并且与Chubby、MapReduce以及Bigtable等技术结合十分紧密,处于所有核心技术的底层。

下面先介绍一下分布式文件系统的概念以及GFS与其他已有分布式文件系统的区别。

3.1.1分布式文件系统概述

文件系统是操作系统的一个重要组成部分,通过对操作系统所管理的存储空间的抽象,向用户提供统一的、对象化的访问接口,屏蔽对物理设备的直接操作和资源管理。

根据计算环境和所提供功能的不同,文件系统可划分为四个层次,从低到高依次是:

单处理器单用户的本地文件系统,如DOS的文件系统;多处理器单用户的本地文件系统,如OS/2的文件系统;多处理器多用户的文件系统,如Unix的本地文件系统;多处理器多用户的分布式文件系统。

本地文件系统(LocalFileSystem)是指文件系统管理的物理存储资源直接连接在本地节点上,处理器通过系统总线可以直接访问。

分布式文件系统(DistributedFileSystem)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。

分布式文件系统是目前最高级的文件系统,它将由网络连接的各个存储节点抽象成为一个统一的存储系统,内部各个存储节点的管理和协作等复杂问题均由系统实现,提供了与最基本的本地文件系统几乎相同的访问接口和对象模型,大大简化了分布式文件系统的使用。

正是由于对用户透明地改变了结构,满足用户的需求,以掩盖分布式文件操作的复杂性,才大大增加了分布式文件系统的实现难度。

3.1.2GFS的设计思想和目标

GFS与过去的分布式文件系统有很多相同的目标,但GFS的设计受到了当前及预期的应用方面的工作量及技术环境的驱动,这反映了它与早期的文件系统明显不同的设想[5]:

1)硬件出错是正常而非异常。

因为文

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1