Google云计算应用实例

时间:14-11-24 栏目:Google 作者:爱说云网 评论:0 点击: 3,029 次

IBM公司于2007年底宣布了云计算计划,云计算的概念出现在大众面前。本文简要介绍云计算概念的理解,云计算意思,云计算用到,云计算应用领域以及云计算应用实例。

一、深入理解云计算

在IBM的技术白皮书“Cloud Computing”中对云计算定义:“云计算一词用来同时描述一个系统平台或者一种类型的应用程序。一个云计算的平台按需进行动态地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服务(deprovision)等。在云计算平台中的服务器可以是物理的服务器或者虚拟的服务器。高级的计算云通常包含一些其他的计算资源,例如存储区域网络(SANs)。网络设备,防火墙以及其他安全设备等。云计算在描述应用方面,它描述了一种可以通过互联网Intemet进行访问的可扩展的应用程序。“云应用”使用大规模的数据中心以及功能强劲的服务器来运行网络应用程序与网络服务。任何一个用户可以通过合适的互联网接入设备以及一个标准的浏览器就能够访问一个云计算应用程序。”

上述定义给出了云计算两个方面的含义:一方面描述了基础设施,用来构造应用程序,其地位相当于PC机上的操作系统:另一方面描述了建立在这种基础设施之上的云计算应用。在与网格计算的比较上,网格程序是将一个大任务分解成很多小任务并行运行在不同的集群以及服务器上,注重科学计算应用程序的运行。而云计算是一个具有更广泛含义的计算平台,能够支持非网格的应用,例如支持网络服务程序中的前台网络服务器、应用服务器、数据库服务器三层应用程序架构模式,以及支持当前Web 2.0模式的网络应用程序。云计算是能够提供动态资源池、虚拟化和高可用性的下一代计算平台。现有的云计算实现使用的技术体现了以下3个方面的特征:

1、 硬件基础设施架构在大规模的廉价服务器集群之上。与传统的性能强劲但价格昂贵的大型机不同,云计算的基础架构大量使用了廉价的服务器集群,特别是x86架构的服务器。节点之间的巨联网络一般也使用普遍的千兆以太网。

2、 应用程序与底层服务协作开发,最大限度地利用资源。传统的应用程序建立在完善的基础结构,如操作系统之上,利用底层提供的服务来构造应用。而云计算为了更好地利用资源,采用了底层结构与上层应用共同设计的方法来完善应用程序的构建。

3、 通过多个廉价服务器之问的冗余,使用软件获得高可用性。由于使用了廉价的服务器集群,节点的失效将不可避免。并且会有节点同时失效的问题。为此,在软件设计上需要考虑节点之间的容错问题,使用冗余的节点获得高可用性。

通过上面的技术手段,云计算达到了两个分布式计算的重要目标:可扩展性和高可用性。可扩展性表达了云计算能够无缝地扩展到大规模的集群之上,甚至包含数千个节点同时处理。高可用性代表了云计算能够容忍节点的错误,甚至有很大一部分节点发生失效也不会影响程序的正确运行。

二、云计算应用实例

1、Google的云计算平台应用实例

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

Google File System文件系统(GFS):除了性能,可伸缩性、可靠性以及可用性以外,GFS设计还受到Google应用负载和技术环境的影响。体现在4个方面:1)充分考虑到大量节点的失效问题,需要通过软件将容错以及自动恢复功能集成在系统中;2)构造特殊的文件系统参数,文件通常大小以G字节计,并包含大量小文件;3)充分考虑应用的特性,增加文件追加操作,优化顺序读写速度;4)文件系统的某些具体操作不再透明,需要应用程序的协助完成。

MapReduce分布式编程环境:Google构造MapReduce编程规范来简化分布式系统的编程。应用程序编写人员只需将精力放在应用程序本身,而关于集群的处理问题,包括可靠性和可扩展性,则交由平台来处理。MapReduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来构成运算基本单元,用户只需提供自己的Map函数以及Reduce函数即可并行处理海量数据。为了进一步理解MapReduce的编程方式,下面给出一个基于MapReduce编程方式的程序伪代码。程序功能是统计文本中所有单词出现的次数。

分布式的大规模数据库管理系统BigTable:由于一部分Google应用程序需要处理大量的格式化以及半格式化数据,Google构建了弱一致性要求的大规模数据库系统BigTablet。BigTable的应用包括Search History,Maps,Orkut,RSS阅读器等。

BigTable是客户端和服务器端的联合设计,使得性能能够最大程度地符合应用的需求。BigTable系统依赖于集群系统的底层结构。一个是分布式的集群任务调度器,一个是前述的Google文件系统,还有一个分布式的锁服务Chubby。

Chubby是一个非常鲁棒的粗粒度锁,BigTable使用Chubby来保存根数据表格的指针,即用户可以首先从Chubby锁服务器中获得根表的位置,进而对数据进行访问。BigTable使用一台服务器作为主服务器,用来保存和操作元数据。主服务器除了管理元数据之外,还负责对tablet服务器(即一般意义上的数据服务器)进行远程管理与负载调配。客户端通过编程接口与主服务器进行元数据通信,与tablet服务器进行数据通信。

以上是Google内部云计算基础平台的4个主要部分。Google还构建其他云计算组件,包括一个领域描述语言以及分布式锁服务机制等。

2、IBM“蓝云"计算平台应用实例

IBM的“蓝云”计算平台是一套软、硬件平台,将Internet上使用的技术扩展到企业平台上,使得数据中心使用类似于互联网的计算环境。“蓝云”大量使用了IBM先进的大规模计算技术,结合了IBM自身的软、硬件系统以及服务技术,支持开放标准与开放源代码软件。“蓝云”基于IBM Almaden研究中心的云基础架构,采用了Xen和PowerVM虚拟化软件,Linux操作系统映像以及Hadoop软件(Google File System以及MapReduce的开源实现)。IBM已经正式推出了基于x86芯片服务器系统的“蓝云”产品。

“蓝云”计算平台由一个数据中心、IBM Tivoli部署管理软件(Tivoli provisioning manager)、IBMTivoli监控软件(IBM Tivoli monitoring)、IBM WebSphere应用服务器、IBM DB2数据库以及一些开源信息处理软件和开源虚拟化软件共同组成。“蓝云”的硬件平台环境与一般的x86服务器集群类似,使用刀片的方式增加了计算密度。“蓝云”软件平台的特点主要体现在虚拟机以及对于大规模数据处理软件Apache Hadoop的使用上。Hadoop是开源版本的Google File System软件和MapReduce编程规范。

“蓝云”计算平台中的虚拟化技术:“蓝云”软件的一个重要特点是虚拟化技术的使用。虚拟化的方式在“蓝云”中有两个级别,一个是在硬件级别上实现虚拟化,另一个是通过开源软件实现虚拟化。硬件级别的虚拟化可以使用IBM P系列的服务器,获得硬件的逻辑分区LPAR(logic partition)。逻辑分区的CPU资源能够通过IBM Enterprise Workload Manager来管理。通过这样的方式加上在实际使用过程中的资源分配策略,能够使相应的资源合理地分配到各个逻辑分区。P系列系统的逻辑分区最小粒度是1/10颗中央处理器(CPU)。Xen则是软件级别上的虚拟化,能够在Linux基础上运行另外一个操作系统。

虚拟机是一类特殊的软件,能够完全模拟硬件的执行,运行不经修改的完整的操作系统,保留了一整套运行环境语义。通过虚拟机的方式。在云计算平台上获得如下一些优点:

(1)云计算的管理平台能够动态地将计算平台定位到所需要的物理节点上,而无须停止运行在虚拟机平台上的应用程序,进程迁移方法更加灵活;

(2)降低集群电能消耗,将多个负载不是很重的虚拟机计算节点合并到同一个物理节点上,从而能够关闭空闲的物理节点,达到节约电能的目的;

(3)通过虚拟机在不同物理节点上的动态迁移,迁移了整体的虚拟运行环境,能够获得与应用无关的负载平衡性能;

(4)在部署上也更加灵活,即可以将虚拟机直接部署到物理计算平台上,而虚拟机本身就包括了相应的操作系统以及相应的应用软件,直接将大量的虚拟机映像复制到对应的物理节点即可。

“蓝云”计算平台中的存储体系结构:“蓝云”计算平台中的存储体系结构对于云计算来说也是非常重要的,无论是操作系统、服务程序还是用户的应用程序的数据都保存在存储体系中。“蓝云”存储体系结构包含类似于Google File System的集群文件系统以及基于块设备方式的存储区域网络SAN。

在设计云计算平台的存储体系结构时,不仅仅是需要考虑存储容最的问题。实际上,随着硬盘容量的不断扩充以及硬盘价格的不断下降。可以通过组合多个磁盘获得很大的磁盘容量。相对于磁盘的容量,在云计算平台的存储中,磁盘数据的读写速度是一个更重要的问题,因此需要对多个磁盘进行同时读写。这种方式要求将数据分配到多个节点的多个磁盘当中。为达到这一目的,存储技术有两个选择,一个是使用类似于Google File System的集群文件系统。另一个是基于块设备的存储区域网络SAN系统。

在蓝云计算平台上,SAN系统与分布式文件系统(例如Google File System)并不是相互对立的系统,SAN提供的是块设备接口。需要在此基础上构建文件系统,才能被上层应用程序所使用。而Google File System正好是一个分布式的文件系统,能够建立在SAN之上。两者都能提供可靠性、可扩展性,至于如何使用还需要由建立在云计算平台上的应用程序来决定,这也体现了计算平台与上层应用相互协作的关系。

3、Amazon的弹性计算云应用实例

Amazon是互联网上最大的在线零售商,每天负担着大量的网络交易,同时Amazon也为独立软件开发人员以及开发商提供云计算服务平台。Amazon将他们的云计算平台称为弹性计算云(elastic compute cloud,简称EC2),是最早提供远程云计算平台服务的公司。Amazon将自己的弹性计算云建立在公司内部的大规模集群计算的平台上,而用户可以通过弹性计算云的网络界面去操作在云计算平台上运行的各个实例(instance)。用户使用实例的付费方式由用户的使用状况决定,即用户只需为自己所使用的计算平台实例付费,运行结束后计费也随之结束。这里所说的实例即是由用户控制的完整的虚拟机运行实例。通过这种方式,用户不必自己去建立云计算平台。节省了设备与维护费用。

Amazon的弹性计算云由名为Amazon网络服务(Amazon Web services)的现有平台发展而来。2006年3月,Amazon发布了简单存储服务(simple storage service,简称S3),用户使用SOAP协议存放和获取自己的数据对象。在2007年7月,Amazon公司推出了简单队列服务(simplequeue service,简称SQS),这项服务能够使得托管虚拟主机之间发送的消息。支持分布式程序之间的数据传递,无须考虑消息丢失的问题。Amazon又继续提供了EBS(elastic block storage)服务,为用户提供块级别的存储接口。在提供这些基础设施的同时,Amazon公司开发了弹性计算云EC2系统,开放给外部开发人员使用。

弹性计算云用户使用客户端通过SOAP over HTTPS协议与Amazon弹性计算云内部的实例进行交互。这样,弹性计算云平台为用户或者开发人员提供了一个虚拟的集群环境,在用户具有充分灵活性的同时,也减轻了云计算平台拥有者(Amazon公司)的管理负担。弹性计算云中的每一个实例代表一个运行中的虚拟机。用户对自己的虚拟机具有完整的访问权限,包括针对此虚拟机操作系统的管理员权限虚拟机的收费也是根据虚拟机的能力进行费用计算的,实际上,用户租用的是虚拟的计算能力。

总而言之,Amazon通过提供弹性计算云,满足了小规模软件开发人员对集群系统的需求,减小了维护负担。其收费方式相对简单明了:用户使用多少资源,只需为这一部分资源付费即可。

为了弹性计算云的进一步发展,Amazon规划了如何在云计算平台基础上帮助用户开发网络化的应用程序。除了网络零售业务以外,云计算也是Amazon公司的核心价值所在,必然会在弹性计算云的平台上添加更多的网络服务组件模块,为用户构建云计算应用提供方便。

三、云计算系统间的特性比较

从用户的角度来看,云计算系统将各种数据包括用户数据都通过网络保存到远端的云存储平台上,减小了用户对于数据管理的负担;同时,云计算系统也将处理数据的服务程序通过远程的大规模云计算处理平台进行,能够负担大量数据的处理工作.可以说,云计算是数据共享计算模式与服务共享计算模式的结合体,是下一代计算模式的发展方向。

各个云计算平台各自具有不同的特点.特别是在平台的使用上,透明计算平台为用户同时提供了用户实际接触的客户端节点以及无法接触的远程虚拟存储服务器。是一个半公开的环境.Google的云计算平台环境是私有的环境,除了开放有限的应用程序接口,例如GWT(Google Web toolkit),GoogleAppEngine以及GoogleMapAPI等以外,Google并没有将云计算的内部基础设施共享给外部的用户使用。IBM的“蓝云”计算平台则是可供销售的软、硬件集合,用户基于这些软、硬件产品构建自己的云计算应用.Amazon的弹性计算云则是托管式的云计算平台,用户可以通过远端的操作界面直接操作使用,看不到实际的物理节点。表1从其他角度比较了各个云计算系统的不同之处。可以看出,虽然云计算系统在很多方面具有共性,但实际上各个系统之间还是有很大不同的,这也给云计算用户或者开发人员带来了不同的体验。

表:各个云计算系统的比较  Google 云计算架构 IBM云计算产品 亚马逊弹性计算云

与传统软件的兼容性 在搜索基础上建立的新的网络系统;当前的软件还不能在该架构下运行,无兼容性采用了虚拟技术,既能运行传统软件又能提供新的云计算接口给新应用程序开发 采用了虚拟技术,可以运行传统软件  系统的开放性  采用内部技术 采用开源技术  结合内部技术和开源技术  系统虚拟技术的采用  未采用系统虚拟技术,只能支持新应用 采用开源 虚拟软件Xen 采用开源 虚拟软件Xen  目标用户 用户可以直接使用,同时提供网络应用 程序编程标准给开发人员  开发人员 开发人员  编程支持 提供网络应用程序编程标准  局部分布式应用程序编程接口 网络远程操作接口

相关文章

云计算与信息化之间的区别
views 1703
现今,常常听一些刚入行的互联网从业者谈论云计算,并且大多人士均将云计算和信息化混为一谈,以为云计算发展的形式就是信息化表现形式,因此将云计算和信息化的概念混为一谈。 首先,从概念上来理解,二者就有不同。云计算作为依托互联网发展的壮大,主要面向具有需求的企业客户和个人用户提供基于SAAS模式的产品...
云创存储荣获国家科技部2013年度民营科技发展贡献奖...
views 1355
    2014年12月18日,中国民营科技促进会评审委员会发布了关于2013年度民营科技发展贡献奖获奖名单公示的通知,根据《民营科技发展贡献奖评选方法》,云创存储顺利通过审核,凭借自身不断创新的精神,以及对民营科技事业发展作出的卓越贡献荣获“2013年度民营科技发展贡献企业奖”。      ...
云计算在教育信息化中的应用探讨
views 2293
随着网络的不断普及。人们在日常的生活和学习中需要从Intenet上获取大量的信息。同时,随着人们网络信息素养的不断提高,也 对网络服务提出了更高的要求。Intenet每天要处理大量 随着网络的不断普及。人们在日常的生活和学习中需要从Intenet上获取大量的信息。同时,随着人们网络信息素养的不断提...
2015年科技圈最挣钱的14个行业,这就是要找的风口...
views 1684
终于走到了2014年的尾声,各位科技圈的热心网友们,对新的一年又有些什么期待呢?不妨设想下,明年会发生哪些“XX技术”奇迹。国外科技媒体BusinessInsider参考了IDC、Gartner、Forrester等著名分析公司的权威数据,总结了明年将会大有所为的14个高科技技术。 网络安全服务 ...
如何结合大数据与云计算?
views 1260
  你如何在大数据的海洋寻宝?对于那些拥有庞大信息需要处理的企业,在数据分析之前要克服的第一个障碍就是--不能够定位到相关并且有意义的信息。这也是HGST遇到的问题,HGST(日立环球存储科技公司)是一个计算机硬件的主要生产厂商,他们现在迫切需要追踪在生产设施上收集到的数据。据HGST的云计算与高性...
企业IT决策者如何最大限度利用云计算价值的10个技巧...
views 1164
  近年来,随着中国信息技术产业的迅猛发展,国内企业的数量也随之增多,其中大部分为中小规模 IT企业。这类企业的核心竞争力一般在于产品创新和对市场的反应敏捷性。他们的业务很多依赖于IT基础设施和服务器系统等等。在进行开发、测试以及新产品的推出时,建设IT基础架构需要经历软硬件系统的规划...
移动互联网的最终目的是什么?
views 1569
面临着移动互联网和PC互联网的逐渐发展,二者的区别就是:移动互联网是人与人之间的链接,而PC互联网是人与网上服务之间的链接。虽然在PC互联网我们也可以通过QQ等工具和朋友连接,但是只要一离开座位,这个连接就中断了。就象固定电话一样,如果我们不在电话旁边,别人就找不到我们,所以PC互联网人和人的连接是...
为何亚马逊在云市场仍能独占鳌头?
views 2504
长期以来,亚马逊网络服务(AWS)一直是公共云领域开发人员和初创型企业的黄金标准。但是亚马逊的企业表示说,混合云,安全性,数据主权,管理和支持——标志着其云服务的成熟度,进而得以帮助他们一直在云领域保持其领先地位。 “我收到过许多企业用户主动提供的反馈,表达了他们对于AWS的支持和管理的赞赏。...

声明: 本文由( 爱说云网 )原创编译,转载请保留链接: Google云计算应用实例

Google云计算应用实例:等您坐沙发呢!

发表评论


读者排行