第1章 绪论 第1章 绪论
很少有一种技术能够像“云计算”这样,在短短的两年间就产生巨大的影响力。Google、亚马逊、IBM和微软等IT巨头们以前所未有的速度和规模推动云计算技术和产品的普及,一些学术活动迅速将云计算提上议事日程,支持和反对的声音不绝于耳。那么,云计算到底是什么?发展现状如何?它的实现机制是什么?它与网格计算是什么关系?。本章将分析这些问题,目的是帮助读者对云计算形成一个初步认识。
1.1 云计算的概念
云计算(Cloud Computing)是在2007年第3季度才诞生的新名词,但仅仅过了半年多,其受到关注的程度就超过了网格计算(Grid Computing),如图1-1所示。
搜索量指数 Google Tronds 云计算 网格计算
图1-1 云计算和网格计算在Google中的搜索趋势
然而,对于到底什么是云计算,至少可以找到100种解释,目前还没有公认的定义。本书给出一种定义,供读者参考。
云计算是一种商业计算模型,它将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。
这种资源池称为“云”。“云”是一些可以自我维护和管理的虚拟计算资源,通常是一些大型服务器集群,包括计算服务器、存储服务器和宽带资源等。云计算将计算资源集中起来,并通过专门软件实现自动管理,无需人为参与。用户可以动态申请部分资源,支持各种应用程序的运转,无需为烦琐的细节而烦恼,能够更加专注于自己的业务,有利于提高效率、降低成本和技术创新。云计算的核心理念是资源池,这与早在2002年就提出的网格计算池(Computing Pool)的概念非常相似[3][4]。网格计算池将计算和存储资源虚拟成为一个可以任意组合分配的集合,池的规模可以动态扩展,分配给用户的处理能力可以动态回收重用。这种模式能够大大提高资源的利用率,提升平台的服务质量。
之所以称为“云”,是因为它在某些方面具有现实中云的特征:云一般都较大;云的
1 1 云计算
规模可以动态伸缩,它的边界是模糊的;云在空中飘忽不定,无法也无需确定它的具体位置,但它确实存在于某处。之所以称为“云”,还因为云计算的鼻祖之一亚马逊公司将大家曾经称为网格计算的东西,取了一个新名称“弹性计算云”(Elastic Computing Cloud),并取得了商业上的成功。
有人将这种模式比喻为从单台发电机供电模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水和电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。
云计算是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,或者说是这些计算科学概念的商业实现。云计算是虚拟化(Virtualization)、效用计算(Utility Computing)、将基础设施作为服务IaaS(Infrastructure as a Service)、将平台作为服务PaaS(Platform as a Service)和将软件作为服务SaaS(Software as a Service)等概念混合演进并跃升的结果。
从研究现状上看,云计算具有以下特点。 1)超大规模。“云”具有相当的规模,Google云计算已经拥有100多万台服务器,亚马逊、IBM、微软和Yahoo等公司的“云”均拥有几十万台服务器。“云”能赋予用户前所未有的计算能力。
2)虚拟化。云计算支持用户在任意位置、使用各种终端获取服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解应用运行的具体位置,只需要一台笔记本或一个PDA,就可以通过网络服务来获取各种能力超强的服务。
3)高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机更加可靠。
4)通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一片“云”可以同时支撑不同的应用运行。
5)高可扩展性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。 6)按需服务。“云”是一个庞大的资源池,用户按需购买,像自来水、电和煤气那样计费。
(7)极其廉价。“云”的特殊容错措施使得可以采用极其廉价的节点来构成云;“云”的自动化管理使数据中心管理成本大幅降低;“云”的公用性和通用性使资源的利用率大幅提升;“云”设施可以建在电力资源丰富的地区,从而大幅降低能源成本。因此“云”具有前所未有的性能价格比。Google中国区前总裁李开复称,Google每年投入约16亿美元构建云计算数据中心,所获得的能力相当于使用传统技术投入640亿美元,节省了40倍的成本。因此,用户可以充分享受“云”的低成本优势,需要时,花费几百美元、一天时间就能完成以前需要数万美元、数月时间才能完成的数据处理任务。
云计算按照服务类型大致可以分为三类:将基础设施作为服务IaaS、将平台作为服务PaaS和将软件作为服务SaaS,如图1-2所示。
IaaS将硬件设备等基础资源封装成服务供用户使用,如亚马逊云计算AWS(Amazon Web Services)的弹性计算云EC2和简单存储服务S3。在IaaS环境中,用户相当于在使用裸机和磁盘,既可以让它运行Windows,也可以让它运行Linux,因而几乎可
2 2
第1章 绪论 专 用 将软件作为服务 SaaS(Software as a Service) 如:Salesforce online CRM 将平台作为服务 PaaS(Platform as a Service) 如:Google App Engine Microsoft Windows Azure 通 用 将基础设施作为服务 IaaS(Infrastructure as a Service) 如:Amazon EC2/S3
图1-2 云计算的服务类型
以做任何想做的事情,但用户必须考虑如何才能让多台机器协同工作起来。AWS提供了在节点之间互通消息的接口简单队列服务SQS(Simple Queue Service)。IaaS最大的优势在于它允许用户动态申请或释放节点,按使用量计费。运行IaaS的服务器规模达到几十万台之多,用户因而可以认为能够申请的资源几乎是无限的。同时,IaaS是由公众共享的,因而具有更高的资源使用效率。
PaaS对资源的抽象层次更进一步,它提供用户应用程序的运行环境,典型的如Google App Engine。微软的云计算操作系统Microsoft Windows Azure也可大致归入这一类。PaaS自身负责资源的动态扩展和容错管理,用户应用程序不必过多考虑节点间的配合问题。但与此同时,用户的自主权降低,必须使用特定的编程环境并遵照特定的编程模型。这有点像在高性能集群计算机里进行MPI编程,只适用于解决某些特定的计算问题。例如,Google App Engine只允许使用Python和Java语言、基于称为Django的Web应用框架、调用Google App Engine SDK来开发在线应用服务。
SaaS的针对性更强,它将某些特定应用软件功能封装成服务,如Salesforce公司提供的在线客户关系管理CRM(Client Relationship Management)服务。SaaS既不像PaaS一样提供计算或存储资源类型的服务,也不像IaaS一样提供运行用户自定义应用程序的环境,它只提供某些专门用途的服务供应用调用。
需要指出的是,随着云计算的深化发展,不同云计算解决方案之间相互渗透融合,同一种产品往往横跨两种以上类型。例如,Amazon Web Services是以IaaS发展的,但新提供的弹性MapReduce服务模仿了Google的MapReduce,简单数据库服务SimpleDB 模仿了Google的Bigtable,这两者属于PaaS的范畴,而它新提供的电子商务服务FPS和DevPay以及网站访问统计服务Alexa Web服务,则属于SaaS的范畴。
1.2 云计算发展现状
由于云计算是多种技术混合演进的结果,其成熟度较高,又有大公司推动,发展极为迅速。Google、亚马逊、IBM、微软和Yahoo等大公司是云计算的先行者。云计算领域的众多成功公司还包括VMware、Salesforce、Facebook、YouTube、MySpace等。
亚马逊研发了弹性计算云EC2(Elastic Computing Cloud)和简单存储服务S3(Simple Storage Service)为企业提供计算和存储服务。收费的服务项目包括存储空间、带
3 3 云计算
宽、CPU资源以及月租费。月租费与电话月租费类似,存储空间、带宽按容量收费,CPU根据运算量时长收费。在诞生不到两年的时间内,亚马逊的注册用户就多达44万人,其中包括为数众多的企业级用户。
Google是最大的云计算技术的使用者。Google搜索引擎就建立在分布在200多个站点、超过100万台的服务器的支撑之上,而且这些设施的数量正在迅猛增长。Google的一系列成功应用平台,包括Google地球、地图、Gmail、Docs等也同样使用了这些基础设施。采用Google Docs之类的应用,用户数据会保存在互联网上的某个位置,可以通过任何一个与互联网相连的终端十分便利地访问和共享这些数据。目前,Google已经允许第三方在Google的云计算中通过Google App Engine运行大型并行应用程序。Google值得称颂的是它不保守,它早已以发表学术论文的形式公开其云计算三大法宝:GFS、MapReduce和Bigtable,并在美国、中国等高校开设如何进行云计算编程的课程。相应的,模仿者应运而生,Hadoop是其中最受关注的开源项目。
IBM在2007年11月推出了“改变游戏规则”的“蓝云”计算平台,为客户带来即买即用的云计算平台。它包括一系列自我管理和自我修复的虚拟化云计算软件,使来自全球的应用可以访问分布式的大型服务器池,使得数据中心在类似于互联网的环境下运行计算。IBM正在与17个欧洲组织合作开展名为RESERVOIR的云计算项目,以“无障碍的资源和服务虚拟化”为口号,欧盟提供了1.7亿欧元作为部分资金。2008年8月,IBM宣布将投资约4亿美元用于其设在北卡罗来纳州和日本东京的云计算数据中心改造,并计划2009年在10个国家投资3亿美元建设13个云计算中心。
微软紧跟云计算步伐,于2008年10月推出了Windows Azure操作系统。Azure(译为“蓝天”)是继Windows取代DOS之后,微软的又一次颠覆性转型——通过在互联网架构上打造新云计算平台,让Windows真正由PC延伸到“蓝天”上。Azure的底层是微软全球基础服务系统,由遍布全球的第四代数据中心构成。目前,微软已经配置了220个集装箱式数据中心,包括44万台服务器。
在我国,云计算发展也非常迅猛。2008年,IBM先后在无锡和北京建立了两个云计算中心;世纪互联推出了CloudEx产品线,提供互联网主机服务、在线存储虚拟化服务等;中国移动研究院已经建立起1024个CPU的云计算试验中心;解放军理工大学研制了云存储系统MassCloud,并以它支撑基于3G的大规模视频监控应用和数字地球系统。作为云计算技术的一个分支,云安全技术通过大量客户端的参与和大量服务器端的统计分析来识别病毒和木马,取得了巨大成功。瑞星、趋势、卡巴斯基、McAfee、Symantec、江民、Panda、金山、360安全卫士等均推出了云安全解决方案。值得一提的是,云安全的核心思想,与早在2003年就提出的反垃圾邮件网格非常接近[5]。2008年11月25日,中国电子学会专门成立了云计算专家委员会。2009年5月22日,中国电子学会隆重举办首届中国云计算大会,1200多人与会,盛况空前。2009年11月2日,中国互联网大会专门召开了“2009云计算产业峰会”。2009年12月,中国电子学会举办了中国首届云计算学术会议。2010年5月,中国电子学会将举办第二届中国云计算大会。
1.3 云计算实现机制
由于云计算分为IaaS、PaaS和SaaS三种类型,不同的厂家又提供了不同的解决方
4 4
第1章 绪论 案,目前还没有一个统一的技术体系结构,对读者了解云计算的原理构成了障碍。为此,本书综合不同厂家的方案,构造了一个供参考的云计算体系结构。这个体系结构如图1-3所示,它概括了不同解决方案的主要特征,每一种方案或许只实现了其中部分功能,或许也还有部分相对次要功能尚未概括进来。
服务接口 服务注册 SOA构建层 服务查找 服务访问 服务工作流 管理中间件 用户管理 任务管理 资源管理 账号管理 用户环境配置 用户交互管理 使用计费 映像部署和管理 任务调度 任务执行 生命期管理 负载均衡 故障检测 故障恢复 监视统计 身份认证 安访问授权 全管理综合防护 安全审计 资源池 计算资源池 存储资源池 网络资源池 数据资源池 软件资源池 物理资源 计算机 存储器 网络设施 数据库 软件
图1-3 云计算技术体系结构
云计算技术体系结构分为四层:物理资源层、资源池层、管理中间件层和SOA(Service-Oriented Architecture,面向服务的体系结构)构建层。物理资源层包括计算机、存储器、网络设施、数据库和软件等。资源池层是将大量相同类型的资源构成同构或接近同构的资源池,如计算资源池、数据资源池等。构建资源池更多的是物理资源的集成和管理工作,例如研究在一个标准集装箱的空间如何装下2000个服务器、解决散热和故障节点替换的问题并降低能耗。管理中间件层负责对云计算的资源进行管理,并对众多应用任务进行调度,使资源能够高效、安全地为应用提供服务。SOA构建层将云计算能力封装成标准的Web Services服务,并纳入到SOA体系进行管理和使用,包括服务接口、服务注册、服务查找、服务访问和服务工作流等。管理中间件层和资源池层是云计算技术的最关键部分,SOA构建层的功能更多依靠外部设施提供。
云计算的管理中间件层负责资源管理、任务管理、用户管理和安全管理等工作。资源管理负责均衡地使用云资源节点,检测节点的故障并试图恢复或屏蔽之,并对资源的使用情况进行监视统计;任务管理负责执行用户或应用提交的任务,包括完成用户任务映象(Image)的部署和管理、任务调度、任务执行、任务生命期管理等;用户管理是实现云计算商业模式的一个必不可少的环节,包括提供用户交互接口、管理和识别用户身份、创建用户程序的执行环境、对用户的使用进行计费等;安全管理保障云计算设施的整体安全,包括身份认证、访问授权、综合防护和安全审计等。
基于上述体系结构,本书以IaaS云计算为例,简述云计算的实现机制,如图1-4所示。
5 5