云计算实例分析:Google的云计算平台

Google的云计算技术实际上是针对Google特定的网络应用程序而定制的。针对内部网络数据规模超大的特点,Google提出了一整套基于分布式并行集群方式的基础架构,利用软件的能力来处理集群中经常

发生的节点失效问题。

从2003年开始,Google连续几年在计算机系统研究领域的最顶级会议与杂志上发表论文,揭示其内部的分布式数据处理方法,向外界展示其使用的云计算核心技术。从其近几年发表的论文来看,Google使用的云计算基础架构模式包括四个相互独立又紧密结合在一起的系统。包括Google建立在集群之上的文件系统Google File System,针对Google应用程序的特点提出的Map/Reduce编程模式,分布式的锁机制Chubby以及Google开发的模型简化的大规模分布式数据库BigTable。

Google File System 文件系统

为了满足Google迅速增长的数据处理需求,Google设计并实现了Google文件系统(GFS,Google File System)。GFS与过去的分布式文件系统拥有许多相同的目标,例如性能、可伸缩性、可靠性以及可用性。然而,它的设计还受到Google应用负载和技术环境的影响。主要体现在以下四个方面:

1. 集群中的节点失效是一种常态,而不是一种异常。由于参与运算与处理的节点数目非常庞大,通常会使用上千个节点进行共同计算,因此,每时每刻总会有节点处在失效状态。需要通过软件程序模块,监视系统的动态运行状况,侦测错误,并且将容错以及自动恢复系统集成在系统中。

2. Google系统中的文件大小与通常文件系统中的文件大小概念不一样,文件大小通常以G字节计。另外文件系统中的文件含义与通常文件不同,一个大文件可能包含大量数目的通常意义上的小文件。所以,设计预期和参数,例如I/O操作和块尺寸都要重新考虑。

3. Google文件系统中的文件读写模式和传统的文件系统不同。在Google应用(如搜索)中对大部分文件的修改,不是覆盖原有数据,而是在文件尾追加新数据。对文件的随机写是几乎不存在的。对于这类巨大文件的访问模式,客户端对数据块缓存失去了意义,追加操作成为性能优化和原子性(把一个事务看做是一个程序。它要么被完整地执行,要么完全不执行)保证的焦点。

4. 文件系统的某些具体操作不再透明,而且需要应用程序的协助完成,应用程序和文件系统API的协同设计提高了整个系统的灵活性。例如,放松了对GFS一致性模型的要求,这样不用加重应用程序的负担,就大大简化了文件系统的设计。还引入了原子性的追加操作,这样多个客户端同时进行追加的时候,就不需要额外的同步操作了。

总之,GFS是为Google应用程序本身而设计的。据称,Google已经部署了许多GFS集群。有的集群拥有超过1000个存储节点,超过300T的硬盘空间,被不同机器上的数百个客户端连续不断地频繁访问着。

图1给出了Google File System的系统架构,一个GFS集群包含一个主服务器和多个块服务器,被多个客户端访问。文件被分割成固定尺寸的块。在每个块创建的时候,服务器分配给它一个不变的、全球惟一的64位块句柄对它进行标识。块服务器把块作为linux文件保存在本地硬盘上,并根据指定的块句柄和字节范围来读写块数据。为了保证可靠性,每个块都会复制到多个块服务器上,缺省保存三个备份。主服务器管理文件系统所有的元数据,包括名字空间、访问控制信息和文件到块的映射信息,以及块当前所在的位置。GFS客户端代码被嵌入到每个程序里,它实现了Google文件系统 API,帮助应用程序与主服务器和块服务器通信,对数据进行读写。客户端跟主服务器交互进行元数据操作,但是所有的数据操作的通信都是直接和块服务器进行的。客户端提供的访问接口类似于POSIX接口,但有一定的修改,并不完全兼容POSIX标准。通过服务器端和客户端的联合设计,Google File System能够针对它本身的应用获得最大的性能以及可用性效果。

MapReduce分布式编程环境

为了让内部非分布式系统方向背景的员工能够有机会将应用程序建立在大规模的集群基础之上,Google还设计并实现了一套大规模数据处理的编程规范Map/Reduce系统。这样,非分布式专业的程序编写人员也能够为大规模的集群编写应用程序而不用去顾虑集群的可靠性、可扩展性等问题。应用程序编写人员只需要将精力放在应用程序本身,而关于集群的处理问题则交由平台来处理。

Map/Reduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来参加运算,用户只需要提供自己的Map函数以及Reduce函数就可以在集群上进行大规模的分布式数据处理。

据称,Google的文本索引方法,即搜索引擎的核心部分,已经通过Map Reduce的方法进行了改写,获得了更加清晰的程序架构。在Google内部,每天有上千个Map Reduce的应用程序在运行。

分布式大规模数据库管理系统BigTable

构建于上述两项基础之上的第三个云计算平台就是Google关于将数据库系统扩展到分布式平台上的BigTable系统。很多应用程序对于数据的组织还是非常有规则的。一般来说,数据库对于处理格式化的数据还是非常方便的,但是由于关系数据库很强的一致性要求,很难将其扩展到很大的规模。为了处理Google内部大量的格式化以及半格式化数据,Google构建了弱一致性要求的大规模数据库系统BigTable。据称,现在有很多Google的应用程序建立在BigTable之上,例如Search History、Maps、Orkut和RSS阅读器等。

图2给出了在BigTable模型中的数据模型。数据模型包括行列以及相应的时间戳,所有的数据都存放在表格中的单元里。BigTable的内容按照行来划分,将多个行组成一个小表,保存到某一个服务器节点中。这一个小表就被称为Tablet。

以上是Google内部云计算基础平台的三个主要部分,除了这三个部分之外,Google还建立了分布式程序的调度器,分布式的锁服务等一系列相关的云计算服务平台。

Google的云应用

除了上述的云计算基础设施之外,Google还在其云计算基础设施之上建立了一系列新型网络应用程序。由于借鉴了异步网络数据传输的Web 2.0技术,这些应用程序给予用户全新的界面感受以及更加强大的多用户交互能力。其中典型的Google云计算应用程序就是Google推出的与Microsoft Office软件进行竞争的Docs网络服务程序。Google Docs是一个基于Web的工具,它有跟Microsoft Office相近的编辑界面,有一套简单易用的文档权限管理,而且它还记录下所有用户对文档所做的修改。Google Docs的这些功能令它非常适用于网上共享与协作编辑文档。Google Docs甚至可以用于监控责任清晰、目标明确的项目进度。当前,Google Docs已经推出了文档编辑、电子表格、幻灯片演示、日程管理等多个功能的编辑模块,能够替代Microsoft Office相应的一部分功能。值得注意的是,通过这种云计算方式形成的应用程序非常适合于多个用户进行共享以及协同编辑,为一个小组的人员进行共同创作带来很大的方便性。

Google Docs是云计算的一种重要应用,即可以通过浏览器的方式访问远端大规模的存储与计算服务。云计算能够为大规模的新一代网络应用打下良好的基础。

虽然Google可以说是云计算的最大实践者,但是,Google的云计算平台是私有的环境,特别是Google的云计算基础设施还没有开放出来。除了开放有限的应用程序接口,例如GWT(Google Web Toolkit)以及Google Map API等,Google并没有将云计算的内部基础设施共享给外部的用户使用,上述的所有基础设施都是私有的。

幸运的是,Google公开了其内部集群计算环境的一部分技术,使得全球的技术开发人员能够根据这一部分文档构建开源的大规模数据处理云计算基础设施,其中最有名的项目即Apache旗下的Hadoop项目。而下面的两个云计算的实现则为外部的开发人员以及中小公司提供了云计算的平台环境,使得开发者能够在云计算的基础设施之上构建自己的新型网络应用。其中IBM的蓝云计算平台是可供销售的计算平台,用户可以基于这些软硬件产品自己构建云计算平台。亚马逊的弹性计算云则是托管式的云计算平台,用户可以通过远端的操作界面直接使用。

时间: 2024-10-31 11:56:43

云计算实例分析:Google的云计算平台的相关文章

云计算实例分析:亚马逊的弹性计算云

亚马逊是互联网上最大的在线零售商,但是同时也为独立开发人员以及开发商提供云计算服务平台.亚马逊将他们的云计算平台称为弹性计算云(Elastic Compute Cloud,EC2),它是最早提供远程 云计算平台服务的公司. 开放的服务 与Google提供的云计算服务不同,Google仅为自己在互联网上的应用提供云计算平台,独立开发商或者开发人员无法在这个平台上工作,因此只能转而通过开源的Hadoop软件支持来开发云计算应用.亚马逊的弹性计算云服务也和IBM的云计算服务平台不一样,亚马逊不销售物理

私有云计算实例解读:“州立云计算”

如果你拥有了一个免费.高速的网络连接而它又与你所有各种各样的数据中心相连,你会有什么样的举措?那还有何疑问,当然是建立云计算!位于Illinois州K-12教育机构通过业务推动云计算项目实施的案例向我们充分展示了云计算服务交付是如何对一个IT部门产生深层次.长期的影响的. IlliniCloud的CTO Jim Peterson是Bloominton K-12教育机构的技术总监,从项目一开始就着手解决一个为人熟知.棘手和持久的难题:即支持各所学校中的IT基础设施.他说,虽然870个学区可能都有着

设计实例分析:Google Wave的滚动条

在看到一些文章对wave的滚动条嗤之以鼻之后,我觉得有些必要为google的设计人员的良苦用心写两句.wave的滚动条是一个试图改良当前滚动条弊端的积极尝试,虽然这尝试并不成功. 滚动条简单明了,是非常常见的界面控件,但从一开始,传统滚动条的设计就存在着一些问题.在我看来,Google的设计师试图通过wave解决其中的两个问题:1. 传统滚动条强迫用户经常切换手掌的肌肉群:2.传统滚动条根据文档长短而变化滑块高度的机制不够妥当. 首先说第一个问题.在进行点击等控件操作活动时和移动鼠标这样的动作时

云计算加强管理需求与应用实例分析

经济的发展导致提供软件和计算能力服务基础架构的出现,俗称云服务或云计算.它是一种新兴的共享基础架构的方法,利用它用户可以在任何地方通过连接的设备访问其应用程序.可以将巨大的系统池连接在一起以提供各种IT服务.很多因素推动了对这类环境的需求,其中包括连接设备.实时数据流.SOA的采用以及搜索.开放协作.社会网络和移动商务等这样的Web 2.0应用的急剧增长. 另外,数字元器件性能的提升也使IT环境的规模大幅度提高,从而进一步加强了对一个由统一的云进行管理的需求.毫无疑问,云计算已经拥有了一个光明的

Google的云计算平台应用实例

Google公司有一套专属的云计算平台,这个平台先是为Google最重要的搜索应用提供服务,现在已经扩展到其他应用程序.Google的云计算基础架构模式包括4个相互独立又紧密结合在一起的系统:Google File Systemt分布式文件系统,针对Google应用程序的特点提出的MapReduce编程模式,分布式的锁机制Chubby以及Google开发的模型简化的大规模分布式数据库BigTable. Google File System文件系统(GFS):除了性能,可伸缩性.可靠性以及可用性以

Google 的云计算业务对Amazon AWS 的反击!

GAP是Google管理数据中心中用于WEB 应用程序的开发和托管的平台,2008发布第一个测试版本;亚马逊则在2007年推出AWS功能,但是经过几年的发展,AWS功能一跃成为了http://www.aliyun.com/zixun/aggregation/13423.html">云计算平台的主流,而Google的云计算业务则一直处于不温不火中. 首先可能因为两者的观念不一样的缘故,Google采用的是平台即服务的模式PaaS,而亚马逊是基础设施即服务的模式Iaas,两者差别很大,所以Go

将 Google 的云计算功能连接到 Apple 的 iPhone 中

简介 过去几年出现了很多创新技术,2008 年对技术而言是不同凡响的一年.两项最让人兴奋的创新是云计算和移动应用程序开发.在本文中,我们将探究一种通信方法,这种方法能利用这两个技术来实现协作开发人员的梦想.在本文中,我们将使用 Google App Engine(Google 的云计算平台)和 iPhone(Apple 的移动平台)来开发一个能同步 "云" 数据的应用程序. 我们将利用一种简单的方法来从 App Engine 拉出数据放到 iPhone 上; 这种方法需要大量使用 py

银联:云计算的电子支付与电子商务平台

本文讲的是银联:云计算的电子支付与电子商务平台,近日,2012第十六届中国国际软件博览会(以下简称软博会)在京召开,在软博会的分论坛中国国际云计算服务创新论坛上来中国银联(以下简称银联)董事.执行副总裁 柴洪峰就银联的云计算实践进行了分享. 银联云计算的源动力 中国银联是经国务院同意,中国人民银行批准设立的中国银行卡联合组织,成立于2002年3月,总部设于上海.作为中国的银行卡联合组织,中国银联处于我国银行卡产业的核心和枢纽地位,对我国银行卡产业发展发挥着基础性作用,各银行通过银联跨行交易清算系

Google 的云计算用了更多人工智能,都是为了卖服务

在今天北京时间凌晨开始的 Cloud Next 大会上,Google 一口气推出了多个云计算的新产品.现在,Google 的云计算平台在翻译.语音.图片和视频识别等多个服务上都用上了人工智能,这些都是为了更好地卖云服务,跟亚马逊和微软抢客户. 例如 Google 新出的 Video Intelligence API 接口.Google 将物体识别能力放在了视频上,可以在一段视频中自动识别出物体,并提供关键字搜索功能,比如使用这个数据接口可以搜索出所有包含"老虎"的视频片段. 将人工智能