典型云计算平台与应用教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 云计算应用实例

1.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还构建其他云计算组件,包括一个领域描述语言及分布式锁服务机制等。