专业支持:(0512) 63016160 / 销售热线:(0512)63016068
当前在线: 288 今日上线: 1384 今日新增: 3

Chrome与Azure 云计算技术架构上的实力较量

文章来源:  中国云计算 发布时间: 2010年05月31日   浏览: 1315   作者:中国云计算

Google的云计算技术是围绕Chrome的,所有相关的技术与应用都嵌入到了浏览器中,甚至操作系统的内核也算嵌到了浏览器中。而Windows Azure Platform则是一个运行在微软数据中心的云计算平台,包括一个云计算操作系统和一个为开发者提供的服务集合。那么就Chrome与Azure云计算技术架构上的不同我们来进行以下系统的分析。

Chrome

Google拥有全球最强大的搜索引擎。除了搜索业务以外,Google还有Google Maps、Google Earth、Gmail、YouTube等各种业务,包括刚诞生的Google Wave。这些应用的共性在于数据量巨大,而且要面向全球用户提供实时服务,因此Google必须解决海量数据存储和快速处理问题。Google的诀窍在于它发展出简单而又高效的技术,让多达百万台的廉价计算机协同工作,共同完成这些前所未有的任务,这些技术是在诞生几年之后才被命名为Google云计算技术。Google的云计算技术是围绕Chrome的,所有相关的技术与应用都嵌入到了浏览器中,甚至操作系统的内核也算嵌到了浏览器中。Google云计算技术具体包括:Google文件系统GFS、分布式计算编程模型MapReduce、分布式锁服务Chubby和分布式结构化数据存储系统Bigtable等。其中,GFS提供了海量数据的存储和访问的能力,MapReduce使得海量信息的并行处理变得简单易行,Chubby保证了分布式环境下并发操作的同步问题,Bigtable使得海量数据的管理和组织十分方便。其技术架构如图1所示:


Google文件系统

Google文件系统(Google File System,GFS)是一个Google自己设计的分布式文件系统,是大量安装有Linux操作系统的普通PC构成的集群系统。整个集群系统由一台Master(通常有几台备份)和若干台TrunkServer构成。GFS中文件备份成固定大小的Trunk分别存储在不同的TrunkServer上,每个Trunk有多份拷贝,也存储在不同的TrunkServer上。Master负责维护GFS中的 Metadata,即文件名及其Trunk信息。客户端先从Master上得到文件的Metadata,根据要读取的数据在文件中的位置与相应的 TrunkServer通信,获取文件数据。它为Google云计算提供海量存储,并且与Chubby、MapReduce以及Bigtable等技术结合十分紧密,处于所有核心技术的底层。GFS的架构如图2所示:


分布式计算编程模型MapReduce

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

Map/Reduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来参加运算,用户只需要提供自己的Map函数以及Reduce函数就可以在集群上进行大规模的分布式数据处理。据称,Google的文本索引方法,即搜索引擎的核心部分,已经通过Map Reduce的方法进行了改写,获得了更加清晰的程序架构。在Google内部,每天有上千个Map Reduce的应用程序在运行。

与传统的分布式程序设计相比,MapReduce封装了并行处理、容错处理、本地化计算、负载均衡等细节,还提供了一个简单而强大的接口。通过这个接口,可以把大尺度的计算自动地并发和分布执行,从而使编程变得非常容易。还可以通过由普通PC构成的巨大集群来达到极高的性能。另外,MapReduce也具有较好的通用性,大量不同的问题都可以简单地通过MapReduce来解决。

分布式锁服务Chubby

Chubby是Google设计的提供粗粒度锁服务的一个文件系统,它基于松耦合分布式系统,解决了分布的一致性问题。通过使用Chubby的锁服务,用户可以确保数据操作过程中的一致性。不过值得注意的是,这种锁只是一种建议性的锁(Advisory Lock)而不是强制性的锁(Mandatory Lock),如此选择的目的是使系统具有更大的灵活性。

GFS使用Chubby来选取一个GFS主服务器,Bigtable使用Chubby指定一个主服务器并发现、控制与其相关的子表服务器。除了最常用的锁服务之外,Chubby还可以作为一个稳定的存储系统存储包括元数据在类的小数据。同时Google内部还使用Chubby进行名字服务(Name Server)。Chubby被划分成两个部分:客户端和服务器端,客户端和服务器端之间通过远程过程调用(RPC)来连接。在客户这一端每个客户应用程序都有一个Chubby程序库(Chubby Library),客户端的所有应用都是通过调用这个库中的相关函数来完成的。服务器一端称为Chubby单元,一般是由五个称为副本(Replica)的服务器组成的,这五个副本在配置上完全一致,并且在系统刚开始时处于对等地位。这些副本通过quorum机制选举产生一个主服务器(Master),并保证在一定的时间内有且仅有一个主服务器,这个时间就称为主服务器租约期(Master Lease)。如果某个服务器被连续推举为主服务器的话,这个租约期就会不断地被更新。租续期内所有的客户请求都是由主服务器来处理的。客户端如果需要确定主服务器的位置,可以向DNS发送一个主服务器定位请求,非主服务器的副本将对该请求做出回应,通过这种方式客户端能够快速、准确地对主服务器做出定位。Chubby的基本架构如图3所示:



分布式结构化数据存储系统Bigtable

Bigtable是Google开发的基于GFS和Chubby的分布式存储系统。Google的很多数据,包括Web索引、卫星图像数据等在内的海量结构化和半结构化数据,都是存储在Bigtable中的。从实现上来看,Bigtable并没有什么全新的技术,但是如何选择合适的技术并将这些技术高效、巧妙地结合在一起恰恰是最大的难点。Google的工程师通过研究以及大量的实践,完美实现了相关技术的选择及融合。Bigtable在很多方面和数据库类似,但它并不是真正意义上的数据库。

Bigtable是一个分布式多维映射表,表中的数据是通过一个行关键字(Row Key)、一个列关键字(Column Key)以及一个时间戳(Time Stamp)进行索引的。Bigtable对存储在其中的数据不做任何解析,一律看做字符串,具体数据结构的实现需要用户自行处理。Bigtable的存储逻辑可以表示为:

(row:string, column:string, time:int64)→string

Bigtable数据的存储格式如图4所示。


Azure

根据微软公司发布的《微软云计算解决方案白皮书》所描述,Windows Azure Platform是一个运行在微软数据中心的云计算平台,包括一个云计算操作系统和一个为开发者提供的服务集合。微软云计算平台既是运营平台,又是开发、部署平台,开发人员创建的应用既可以直接在该平台中运行,也可以使用该云计算平台提供的服务;平台上既可运行微软的自有应用,也可以开发部署用户或 ISV 的个性化服务;平台既可以作为 SaaS 等云服务的应用模式的基础,又可以与微软线下的系列软件产品相互整合和支撑,这是微软云计算平台的最具特色的一面和强大之处,Windows Azure Platform包括三大组成部分:Windows Azure、SQL Azure、Windows Azure Platform AppFabric。其整体功能结构如图5所示:


Windows Azure:云计算服务的操作系统

Windows Azure是一个云服务的操作系统,它提供了一个可扩展的开发环境、托管服务环境和服务管理环境,这其中包括提供基于虚拟机的计算服务和基于Blobs、Tables、Queues、Drives等的存储服务。Windows Azure为开发者提供了托管的、可扩展的、按需应用的计算和存储资源,还为开发者提供了云平台管理和动态分配资源的控制手段。Windows Azure是一个开放的平台,支持微软和非微软的语言和环境。开发人员在构建Windows Azure应用程序和服务时,不仅可以使用熟悉的Microsoft Visual Studio,Eclipse等开发工具,同时Windows Azure还支持各种流行的标准与协议,包括SOAP、REST、XML、和HTTPS等。Windows Azure主要包括三个部分,一是运营应用的计算服务;二是数据存储服务;三是基于云平台进行管理和动态分配资源的控制器(Fabric Controller)。

SQL Azure:云中的数据库

SQL Azure是一个云的关系型数据库,它可以在任何时间提供客户数据应用。SQL Azure基于SQL Server技术构建,但并非简简单单将SQL Server安装在微软的数据中心,而是采用了更先进的架构设计,由微软基于云进行托管,提供的是可扩展、多租户、高可用的数据库服务。SQL Azure Database帮助简化多数据库的供应和部署,开发人员无需安装、设置数据库软件,也不必为数据库打补丁或进行管理。SQL Azure为用户提供了内置的高可用性和容错能力,且无需客户进行实际管理。SQL Azure Database支持TDS和Transact- SQL(T- SQL),客户可以使用现有技术在T–SQL上进行开发,还可以使用与现有的客户自有数据库软件相对应的关系型数据模型。SQL Azure Database提供的是一个基于云的数据库管理系统,它能够整合现有工具集,并提供与客户自有软件的对应性。

Windows Azure Platform AppFabric:云的基础架构服务

Windows Azure platform AppFabric基于Web的开发服务,它可以把现有应用和服务与云平台的连接和互操作变得更为简单。Windows Azure platform AppFabric为本地应用和云中应用提供了分布式的基础架构服务。在云计算中存储数据与运行应用都重要,但是我们还需要一个基于云的基础架构服务。这个基础架构服务应该既可以被客户自有软件应用,又能被云服务应用。Windows Azure platform AppFabric就是这样一个基础架构服务。AppFabric能够使客户自有应用与云应用之间进行安全联接和信息传递。它使得在云应用和现有应用或服务之间的联接及跨语言、跨平台、跨不同标准协议的互操作变得更加容易,并且与云提供商或系统平台无关。AppFabric目前主要提供互联网服务总线(Service Bus)和访问控制(Access Control)服务。


一键分享:

在线客服