1、 走在前端的 Google 云计算技术学院- 姓名-学号- 摘要:近年来,云计算的价值进一步为业界所承认,在走过最初技术引入期的喧嚣之后,开始进入爆发式增长的阶段,云计算的解决方案和具体产品层出不穷,应用范围逐步拓展。云计算被认为是继 PC、互联网之后可能再一次改写 IT 面貌的“ 第三次 IT革命” ,是近十年来少见的能同时引起互联网、IT 和电信行业共同关注的新领域。国外特别是欧美的 IT、互联网和运营商巨头,如Amazon、IBM、Google 、 AT&T 等,已经走在前面,纷纷转型,研发和运营不同的云计算产品和服务。本文主要介绍 Google 的云计算技术,从其起源发展到系统框架,从
2、其设计原理到主要技术。引言:互联网使得人们对软件的认识和使用模式发生了潜移默化的改变。计算机模式的变革必将带来一系列的挑战。如何获取海量的存储和计算资源?如何在互联网这个无所不包的平台上更经济地运营服务?各种新的 IT技术对各行业将会产生怎样的影响?在云计算萌芽的环境下,Google 又是做出了什么样的反应的呢?Google 云究竟如何飘过全球?正文:1、云计算的基本概念及特征云计算 (Cloud Computing) ,是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备,就如同生活中的电网一样。云计算描述了一种基于互联网的新的 IT 服务增加、使
3、用和交付模式,通常涉及通过互联网来提供动态易扩展而且经常是虚拟化的资源,它意味着计算能力也可作为一种商品通过互联网进行流通。专业的 IT 名词百科援引来自Search Cloud C 的定义,广义地将云计算解释为一切能够通过互联网提供的服务,这些服务被划分为三个层次:基础设施即服务(IaaS) 、平台即服务( Paas)和软件即服务(SaaS ) 。从云计算的定义中不难看出四个关键要素:硬件和软件都是资源,通过网络以服务的方式提供给用户;这些资源都可以根据需要进行动态扩展和配置;这些资源在物理上以分布式的方式存在,为云中的用户所共享,但最终在逻辑上以单一整体的形式呈现;用户按需使用云中的资源,
4、按照实际的使用量付费,而不需要管理他们。云计算具有以下几个主要特征:(1)资源配置动态化:根据消费者的需求动态划分或释放不同的物理和虚拟资源,当增加一个需求时,可通过增加可用的资源进行匹配,实现资源的快速弹性提供。(2)需求服务自助化:云计算为客户提供自助化的资源服务,用户无需同提供商交互就可自动得到自助的计算资源能力。(3)以网络为中心:云计算的组件和整体构架由网络连接在一起并存在于网络中,同时通过网络向用户提供服务。(4)服务可计量化:在提供云服务过程中,针对客户不同的服务类型,通过计量的方法来自动控制和优化资源配置。(5)资源的池化和透明化:对云服务的提供者而言,各种底层资源(计算、储存
5、、网络、资源逻辑等)的异构性(如果存在某种异构性)被屏蔽,边界被打破,所有的资源可以被统一管理和调度,成为所谓的“资源池” ,从而为用户提供按需服务。2、Google 云计算的提出2006年8月9日,Google 首席执行官埃里克施密特(Eric Schmidt)在搜索引擎大会( SES San Jose 2006)首次提出 “云计算”(Cloud Computing)的概念。Google“云端计算”源于 Google 工程师克里斯托弗比希利亚所做的“Google 101”项目。虽然谷歌提出的云计算并不是一开始就想到的本意,但不可置否,谷歌成为了云计算的提出者和先行者,在发展过程中获得了意外的
6、成功。搜索引擎技术本身就是一种典型的云计算应用,多年的搜索引擎技术的积累使谷歌在云计算技术上处于领先的地位,迫使其他企业慌忙应战。谷歌推出了谷歌应用软件引擎(Google App Engine) ,这种服务让开发人员可以基于云计算编写应用程序,并可免费试用谷歌的基础设施进行存储。谷歌云计算的优势在于,所有的应用程序都可以存在与云计算中,用户永远不需要安装任何东西,不需要管理软件升级和安全补丁。谷歌应用软件引擎(Google App Engine,简称 GAE)是一个由 Python 应用服务器群、 Big Table 数据库及 GFS(Google File System)数据存储服务组成的平
7、台,它能为开发者提供一体化的、提供主机服务器及可自动升级的在线应用服务。开发者只需要编写应用程序,而不用担心应用运行的平台资源。GAE 利用沙盒将不同的应用程序隔离在一个与网络、服务器硬件、操作系统和物理位置无关的安全、可靠、稳定的环境中。应用程序只能通过提供的网址抓取和电子邮件服务访问互联网中的计算机。3、Google 云计算关键技术1) 、分布式基础设施GFS:处理海量数据的分布式文件系统。主要分为存储与数据文件相关的元数据的 Master 节点和存储Chunk 的 Chunk 节点。在设计上,GFS 主要有 8 个特点:大文件和大数据块,能使 Master 节点非常方便地将元数据放置在内
8、存中以提升访问效率;操作以添加为主,因为文件很少被删减或者覆盖,通常只是进行添加或者读取操作,这样能充分考虑到硬盘线性吞吐量大和随机读写慢的特点;支持容错,整个系统会保证每个Master 节点都有其对应的复制品,以便于在出现问题时进行切换;高吞吐量,虽然其单个节点的性能无论是从吞吐量还是延迟都很普通,但因为其支持上千个节点,所以总的数据吞吐量是非常惊人的;保护数据,首先,文件被分割成固定尺寸的数据块以便于保存,而且每个数据块都会被系统复制三份;拓展能力强,因为元数据偏小,使得一个 Master 节点能控制上千个存数据的 Chunk 节点;支持压缩,对于那些稍旧的文件可以通过对其进行压缩,来节省
9、硬盘空间,并且压缩率非常惊人,有时甚至可以达到99%;用户空间运行效率方面稍差,的那会死更便于开发和测试。Chubby:Chubby 属于分布式锁服务,通过 Chubby,一个分布式系统中的上千个 client 都能够对于某项资源进行“加锁”或者“解锁” ,常用于 Big Table 的协作工作,在实现方面是通过对文件的创建操作来实现“加锁” ,基于 Paxos 算法。Protocol Buffer:Protocol Buffer是谷歌内部使用一种语言中立、平台中立和可拓展的序列化结构化数据的方式,并提供 Java、C+、Python这 3 种语言的实现,每一种实现都包含了相应语言的编译器以及
10、库文件,并且它是一种二进制的格式,速度是使用 XML 进行数据交换的 10 倍左右。它主要用于 RPC 通信和数据存储方面。2) 、分布式大规模数据处理Map-Reduce:Map-Reduce 是一种分布式编程模型,它以数据为中心,把数据分割成小块供网络上的多台计算机分别计算,而后对计算结果进行汇总得出最终结论。主要通过Map(映射)和 Reduce(化简)这两个步骤来并行处理大规模的数据集。Sawzall:Sawzall 可以被认为是构建在 Map-Reduce 之上的采用类似Java 语法的 DSL,也可以认为它是分布式的 AWK。它主要用于对大规模分布式数据进行筛选和聚合等高级数据处理
11、操作,在实现方面,是通过解释器将其转化为相对应的 Map-Reduce 任务。3) 、分布式数据库技术Big Table:Big Table 为谷歌开发的一套数据库系统,它并不是一个关系型的数据库,也不支持关联等高级SQL 操作,取而代之的是多级映射的数据结构,并且是一种面向大规模处理、容错性强的自我管理系统,拥有TB 级的内存和 PB 级的存储能力,使用结构化的文件来存储数据,每秒可以处理数百万的读写操作。数据库 Sharding:Sharding 就是分片的意思。面对传统的 OLTP 应用,比如广告系统、谷歌还是采用传统的关系型数据库技术,也就是 MySQL,同时由于谷歌所需要面对的流量非
12、常巨大,所以谷歌在数据库层采用了分片的水平扩展解决方案,分片是在传统垂直扩展的分片模式上的一种提升,主要通过时间、范围和面向服务等方式来将一个大型的数据库分为多片,并且这些数据片可以跨越多个数据库和服务器来实现水平扩展。4、云计算下的 Google 服务器云计算的理念是按需使用,这种理念同时也适用于云计算对服务器的要求,在云计算时代人们不再追求服务器的高性能、全配置, “能用就行”成了云计算时代对服务器的要求。在云计算架构下单点失效成为系统认可的常态,任何的单点失效都不会影响系统对外提供服务,云计算系统通过一套内容的调度、冗余和迁移策略向用户屏蔽了所有的单点失效,这一点谷歌和百度向我们做出了表
13、率,用户面对的只是一个搜索框,至于后面有多少台服务器在工作失效我们都一无所知,而这也是一个良好系统应该具备的特点。谷歌经过长期的发展,系统服务器数量已经大得惊人,谷歌为了满足自身服务器的需要所采用的服务器都是自己生产的“谷歌牌”服务器,其年产量已经达到了世界第三大服务器制造商的水平。谷歌服务器在设计时就考虑到了服务器管理的工业化,在谷歌机房的一名管理人员所管理的服务器数据量是相当大的,出现故障时直接更换服务器。谷歌服务器从外观来看没有机箱,也没有进入机柜时所有设备都裸露在外面,这和我们传统的对服务器的认识大相径庭, ;也是谷歌服务器给人们最大的冲击。5、未来的发展方向未来云计算一定会朝着形成统
14、一平台的方向发展,网格技术能够帮助完成在云计算平台之间的互操作,从而实现云计算设施的一体化,使得未来的云计算不再是以厂商为单位提供服务,而是以构成的一个统一的虚拟平台提供服务。这可以使得云计算不擅长的紧耦合型应用得到更好的处理、大大扩大云计算的应用范围、资源集成、避免敏感数据的扩散。未来的云计算必将与网格技术密切关联在一起,云格时代即将到来!总结:本文从云计算的概念特征入手,着重介绍了谷歌在云计算领域的部分技术,简要介绍了谷歌服务器区别于普通服务器的地方,在未来,云计算必将继续得到青睐并不断发展,我们相信,未来的技术必将越来越给力!参考文献:1、雷葆华,张洁等,云计算解码,电子工业出版社,2012.62、雷万云等,云计算技术、平台及应用案例,清华大学出版社,2011.53、王鹏,云计算的关键技术与应用实例,人民邮电出版社,2010.14、王庆波等,云计算宝典技术与实践,电子工业出版社,2011.95、刘鹏,云计算(第 2 版) ,电子工业出版社,2011.5