云计算的研究
中图分类号:tp 文献标识码:a 文章编号:1007-0745(2011)11-0078-01
摘要:互联网的发展使得云计算的出现是一个必然的结果。
在
未来,计算能力将作为一种商品进行流通,就像煤气、水、电一样,
取用方便,费用低廉。
最大的不同在于它是通过互联网进行传输的。
目前国内对于云计算机的研究还处于起步阶段。
关键词:云云计算
云计算是一种大规模分布式计算,之所以被称为云计算,因为
早期,网络工程师们喜欢用云的形状来表示网络。
云计算起源于
google,于2007被正式的提出,google的创始人因为负担不起昂
贵的服务器而采用许多廉价的pc来提供服务,没想到正是这个被
逼无奈的选择逐步形成了云计算技术。
云计算的出现并不是一蹴而就的,它的出现其实是一个必然的
结果。
曾经在旧pc时代,由于pc的价格昂贵,因此多进程、多线
程、分时等概念被提了出来,这个阶段的特点一台机器供多人同时
使用,可以说是“貌合神离”;随着pc的价格下降,pc变得越来越
普及,人们将关注的重点转向了数据的共享上,于是便出现了
internet,这个阶段特点是pc机各自为战,通过internet来完成
简单的通信,可以称之为“貌离神离”,随着internet的发展,导
致信息的飞速增长,于是如何解决海量信息的存储与计算问题又摆
在了人们的面前,一个很好的解决方法就是将多个pc组合起来一
起来完成大量的计算任务,于是云计算就应运而生了,云计算的出现就是要达到“貌离神合”的境界。
那么到底什么是云计算呢?如果你在互联网上搜索云计算,你会得到n种不同的答案。
这里我截取了wiki百科上对于云计算的解释:云计算是一种基于互联网的计算新方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算。
目前,基于云计算的服务方式主要有三种,基础即是服务(infrastructure as a service, iaas)、平台即是服务(platform as a service,saas)和软件即是服务(software as a service,saas)。
三种服务方式的层次依次递增:
iaas是最基础的服务,它将基础设施作为服务出租。
以iaas方式提供服务的项目有亚马逊的弹性云(ec2)和简单存储服务(s3)等。
paas则提供一个完整的虚拟平台,如操作系统以及平台软件、服务组件等。
以paas提供服务的项目有著名的google app engine,它是一个由python应用加bigtable数据库以及gfs文件系统组成的平台。
而saas则需要提供用户可以使用的应用程序。
以saas提供服务的项目有很多,例如在线文档编辑、crm(客户关系管理)、erp (企业资源管理)、hrm(人力资源管理)等等。
云计算用到的技术有很多,这里我列举了一些当前提出的重要的技术。
1.海量数据存储技术
云计算采用分布式存储的方式,利用冗余的方式保证数据的可靠。
目前云计算的数据存储系统主要有两个,google gfs(google file system)和hdfs(hadoop distributed file system),两者的基本原理是一致的,都采用了主从式结构。
与以往的文件系统不同,在云计算中集群中的节点失效是一个常态而不是异常,需要软件来监视系统的运行状态。
而且系统中文件的大小一般是以g为单位的,因此文件的读写方式是采用追加的方式来修改。
在系统中包含一个主服务器和许多块服务器(这是gfs 中的叫法,在hadoop中它们被称为namenode和datanode)。
文件被分割成固定尺寸的块,在创建这些块的时候会为每个块分配一个唯一的64位句柄作为标识,而每个块就是普通的linux文件,为了保证数据的可靠,每个块会被复制多次保存在多个块服务器,一般来说数据默认会被复制为3个,用户也可以根据需要进行更改。
主服务器负责管理名字空间、访问控制信息以及文件到块的映射。
客户端与主服务器进行数据的交互而与块服务器进行实际数据的
交互。
打个比方,从云中取数据就好比一个人到图书馆借书,主服务器就好比是装有图书索引的机器,从这台机器上可以找到你感兴趣的图书的索书码,然后你需要根据这个索书码自行去找想要的书。
2.并行编程技术
云计算所操作的数据如此巨大,显然用传统的单机处理程序是
无法应对的,并行编程技术是必然的选择。
当前云计算采用的是mapreduce的编程模式,该模式由google提出,它将对数据的操作归约为两个过程,map和reduce。
map过程将数据分布在多个节点上进行处理,然后经过一个shuffle的排序,交给reduce过程处理。
3.数据管理技术
云计算要对大规模数据进行处理,因此相应的数据管理技术也必须能够管理并处理大规模数据,例如如何在大规模数据中查询到特定的数据,数据管理技术方面的项目目前主要有google的bigtable和hadoop的hbase,两者原理相同,现以bigtable为例,bigtable顾名思义就是比较大的table,对于每个table用一个多维的稀疏图来表示,由行和列组成,并对其分配一个时间戳来记录数据的变动情况,由于表比较大,因此要将其按行来划分,多个行组成小的table,保存到节点上。
4.虚拟化技术
通过虚拟化技术可以将软件应用和底层硬件进行有效的隔离,可以通过虚拟的方式融合或划分资源,从而提高资源的利用率。
云计算不仅仅是技术,更是一种商业运营模式,当前许多it公司已经展开了自己的云计划。
根据市场调研机构idc最新的数据分析,云计算将在2013年达到it消费的10%,年收益将达到442亿美元,云计算的服务增长态势十分强劲,平均年增幅可达26%。
云计算的出现为it产业注入了新的活力,为软件服务开创了一
个崭新的空间,相信它的发展将不可限量,它的前途将一片光明。
参考文献:
[1]cloud computing by michael miller (kindle edition - sep 24, 2008)
[2]《走近云计算》王鹏人民邮电出版社 2009-6-1
[3]《云计算:深刻改变未来》张为民科学出版社 2009。