《云计算》教材
第 1 章 绪论 1 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]。网格计算池将计算和存储资源虚拟成 为一个可以任意组合分配的集合,池的规模可以动态扩展,分配给用户的处理能力可以动 态回收重用。这种模式能够大大提高资源的利用率,提升平台的服务质量。 之所以称为“云” ,是因为它在某些方面具有现实中云的特征:云一般都较大;云的 2 云计算 2 规模可以动态伸缩,它的边界是模糊的;云在空中飘忽不定,无法也无需确定它的具体位 置,但它确实存在于某处。之所以称为“云” ,还因为云计算的鼻祖之一亚马逊公司将大 家曾经称为网格计算的东西,取了一个新名称“弹性计算云” (Elastic Computing Cloud) ,并取得了商业上的成功。 有人将这种模式比喻为从单台发电机供电模式转向了电厂集中供电的模式。它意味着 计算能力也可以作为一种商品进行流通,就像煤气、水和电一样,取用方便,费用低廉。 最大的不同在于,它是通过互联网进行传输的。 云计算是并行计算(Parallel Computing) 、分布式计算(Distributed Computing)和网 格计算(Grid Computing)的发展,或者说是这些计算科学概念的商业实现。云计算是虚 拟化(Virtualization) 、效用计算(Utility Computing) 、将基础设施作为服务 IaaS (Infrastructure as a Service) 、将平台作为服务 PaaS(Plat 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,因而几乎可 第 1 章 绪论 3 3 将软件作为服务 SaaS(Software as a Service) 如:Salesforce online CRM 专 用 通 用 将平台作为服务 PaaS(Plat as a Service) 将基础设施作为服务 IaaS(Infrastructure as a Service) 如:Google App Engine Microsoft Windows Azure 如:Amazon EC2/S3 图 1-2 云计算的服务类型 以做任何想做的事情,但用户必须考虑如何才能让多台机器协同工作起来。AWS 提供了 在节点之间互通消息的接口简单队列服务 SQS(Simple Queue Service) 。IaaS 最大的优势 在于它允许用户动态申请或释放节点,按使用量计费。运行 IaaS 的服务器规模达到几十 万台之多,用户因而可以认为能够申请的资源几乎是无限的。同时,IaaS 是由公众共享 的,因而具有更高的资源使用效率。 PaaS 对资源的抽象层次更进一步,它提供用户应用程序的运行环境,典型的如 Google App Engine。微软的云计算操作系统 Microsoft Windows Azure 也可大致归入这一 类。PaaS 自身负责资源的动态扩展和容错管理,用户应用程序不必过多考虑节点间的配 合问题。但与此同时,用户的自主权降低,必须使用特定的编程环境并遵照特定的编程模 型。这有