(3)IaaS(基础设施即服务)层。IaaS(Infrastructure as a Service)针对的也是开发者,厂商提供的是计算、存储和带宽资源。典型代表是亚马逊的EC2/S3/SQS服务和IBM的蓝云服务。这种形式的云计算把开发环境作为一种服务来提供,用户可以使用中间商的设备来开发自己的程序并通过互联网和其服务器传到用户手中。目前网络上提供云计算服务的厂商有许多,比如Amazon、Google、Salesforce、微软等,各家所提供的云模式也不相同,比如Amazon.com、Sun、IBM是通过将服务器,存储等硬件虚拟化成一个数据中心来为整个网络的用户提供服务;Salesforce是通过浏览器将程序共享给用户等等。因此也产生了云计算定义的复杂性。覆盖当今流行的典型云计算解决方案有包括:Google云计算 、Amazon EC2/S3云计算、Salesforce云计算、Facebook等,都提供了免费的大容量存储空间,以及廉价高质量的网络服务[6]。
(四)云计算相关技术
云计算实现了按需计算,它的出现使普通用户也能使用高性能并行计算,提高了工作效率和计算资源的利用率。技术上,云计算的实现取决于数据的存储能力和分布式计算能力两个因素。因此,可以认为“云计算=存储云+计算云”。“存储云”是一个大规模的分布式存储系统,对第三方用户公开存储接口;“计算云”包括并行计算和资源虚拟化[7]。
1、虚拟化技术
虚拟化可以说是改变IT结构和运营模式的关键力量,从当今的IT产业发展的方向可以看出数据中心虚拟化仍然处于市场的核心竞争力,其中应用虚拟化、存储虚拟化、输入输出(I/O)虚拟化以及最终用户的虚拟化等诸如此类的端点虚拟化都成为心在IT企业的竞争焦点。
虚拟化即为基础设施的虚拟化(vertulization)其核心为现有的已成熟的集群技术和分区技术的集合,目前为止主要包括网络虚拟化(VPN)、存储虚拟(SNA/NAS)、服务器虚拟等,均为云计算的基础设施。
2、分布式并行编程模式
云计算采用类似MAP-Reduce[17]的编程模式。现在大部分IT厂商提出的“云”计划中采用的编程模型,都是基于Map-Reduce的思想开发的编程工具。MapReduce是Google开发的Java、C + +编程工具,用于大规模数据集(大于1TB)的并行运算,是一种分布式计算技术适用于大量数据的分布式运算,是用于解决问题的程序开发模型,也是开发人员分解问题的方法。
MapReduce模式是将问题分解成Map (映射)和Reduce (化简)两部分,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机进行分布式处理,再通过Reduce程序将结果汇整并输出[18]。
3、分布式海量数据存储技术
云计算的数据存储技术主要有谷歌的非开源的GFS(Google File System) [19]和Hadoop开发团队开发的GFS的开源实现HDFS(Hadoop Distributed File System) [20]。大部分IT厂商,包括雅虎、英特尔的“云”计划采用的都是HDFS的数据存储技术。GFS是一个管理大型分布式数据密集型计算的可扩展的分布式文件系统。它使用廉价的商用硬件搭建系统并向大量用户提供容错的高性能的服务[8]。
4、数据管理技术
BigTable数据管理方式设计者———Google给出了如下定义[21] :“BigTable是一种为了管理结构化数据而设计的分布式存储系统,这些数据可以扩展到非常大的规模,例如在数千台商用服务器上的达到PB(Petabytes)规模的数据。”
5、Hadoop架构
在Hadoop框架中MapReduce AP I提供Map和Reduce处理、GFS分布式文件系统和BigTable分布式数据库提供数据存取,如图4所示[7]。
图4:Hadoop架构(来源:本研究) 基于云计算的信息资源应用与长三角地区信息服务创新发展的研究(5):http://www.youerw.com/jisuanji/lunwen_3245.html