1.1.2云计算的定义
1. 云计算的来源
在云计算最早被提出的时候,曾经有一种流行的说法来解释“云计算”为何被称为“云”计算:在互联网技术刚刚兴起的时候,人们画图时习惯用一朵云来表示互联网,因此在选择一个名词来表示这种基于互联网的新一代计算方式的时候就选择了“云计算”这个名词。虽然这个解释非常有趣和浪漫,但是却容易让人们陷入云里雾中,不得其正解。
进入互联网时代后,人们热衷于上网冲浪,通过浏览网页来获得资讯。当用户在浏览器上输入网址后,浏览器将会与DNS服务器和网站服务器进行一系列的交互,将网页内容呈现在用户面前,而这些交互过程是通过互联网经过多次路由转发最终完成的。因为这个过程对用户是透明的,所以当时人们在绘制互联网示意图时,将网络抽象成一朵云,意在不去关心网络的转发过程,而去关注服务器端和客户端,如图1.1左侧所示。
图1.1 云计算中的“云”
随着互联网的发展,带宽得到了显著提高,无线接入方式也变得丰富起来,除了个人电脑外,越来越多的设备已经具有了接入互联网的能力,比如移动电话、办公设备甚至是家用电器。同样,互联网的作用也不再局限于浏览网页和收发电子邮件,还能够为企业提供诸如电子商务、客户关系管理等信息服务;为普通用户提供诸如博客、视频等服务;为科研机构提供强大的计算处理能力。因此,互联网的含义变得充实起来,除了人们普遍认知的接入、路由等含义,还包括了计算、存储、服务和软件等元素。因此,“云计算”这个名词就应运而生了。从图1.1右侧我们可以看出,云计算中的“云”不仅包含了网络,更包含了那些曾经被描绘在云外的事物。这个小小的改变在图上看似简单,实际上蕴含着深刻的变革。
正如用云描绘网络来强调对网络的运用而非关注于其实现细节一样,云计算用云描绘包括网络、计算、存储等在内的信息服务基础设施,以及包括操作系统、应用平台、Web服务等在内的软件,就是为了强调对这些资源的运用,而不是它们的实现细节。
2. 什么是云计算
了解了云计算为什么被称之为“云”之后,下面我们将给出云计算的定义。其实,这个概念被提出的时间并不长,然而对这个概念的定义却是百家争鸣。这体现了云计算包罗万象的特质,也说明业界对它的重视——既然所有人都希望成为云计算产业链中的一个角色,自然都会从自身的角度出发来定义云计算,那么对于概念的提取就是一个求同存异的过程。下面,我们先列举一些为人们普遍认可的云计算定义,然后再给出本书的定义。
在维基百科(Wikipedia.org)中,截止2010年7月,“云计算”的词条被表述为是一种基于互联网的计算,在其中共享的资源、软件和信息以一种按需的方式提供给计算机和设备,就如同日常生活中的电网一样。
专业的IT名词百科Whatis.com援引来自SearchCloudComputing.com的定义,广义地将云计算解释为一切能够通过互联网提供的服务,这些服务被划分为三个层次:基础设施即服务(Infrastructure-as-a-Service, IaaS)、平台即服务(Platform-as-a-Service, Paas)和软件即服务(Software-as-a-Service, SaaS)。
在美国加州大学伯克利分校(UC Berkeley)发表的一篇关于云计算的报告中,云计算既指在互联网上以服务形式提供的应用,也指在数据中心里提供这些服务的硬件和软件,而这些数据中心里的硬件和软件则被称为云。
《商业周刊》(BussinessWeek.com)发表文章指出,Google的云就是由网络连接起来的几十万甚至上百万台的廉价计算机,这些大规模的计算机集群每天都处理着来自互联网的海量检索数据和搜索业务请求。《商业周刊》在另一篇文章中总结说,从Amazon的角度看,云计算就是在一个大规模的系统环境中,不同的系统之间相互提供服务,软件都是以服务的方式运行,当所有这些系统相互协作,并在互联网上提供服务时,这些系统的总体就成为了云。
Salesforce.com认为云计算是一种更友好的业务运行模式。在这种模式中,用户的应用程序运行在共享的数据中心中,用户只需要通过登录和个性化定制就可以使用这些数据中心的应用程序。
IBM认为云计算是一种革新的信息技术与商业服务的消费与交付模式。在这种模式中,用户可以采用按需的自助模式,通过访问无处不在的网络,获得来自于与地理无关的资源池中被快速分配的资源,并按实际使用情况付费。本书沿用IBM的定义。这种模式的主体是所有连接着互联网的实体,他们可以是人、设备或程序。这种模式的客体是服务本身,包括我们现在接触到的,以及会在不远的将来出现的各种信息与商业服务。这种模式的核心原则是:
硬件和软件都是资源并被封装为服务,用户可以通过网络按需地访问和使用。
在云计算中,IT业务通常运行在远程的分布式系统上,而不是在本地计算机或者单个服务器上。这个分布式系统由互联网相互连接,通过开放的技术和标准把硬件和软件抽象为动态可扩展、可配置的资源,并对外以服务的形式提供给用户。该系统允许用户通过互联网访问这些服务,并获取资源。服务接口将资源在逻辑上以整合实体的形式呈现,隐蔽其中的实现细节。该系统中业务的创建、发布、执行和管理都可以在网络上进行,而用户只需要按资源的使用量或者业务规模付费。
3. 云计算的特征
在云计算的定义中,有四个关键要素,如图1.2所示。
(1)
硬件和软件都是资源,通过网络以服务的方式提供给用户。正如上一小节所描述的,Amazon EC2将计算处理能力打包为资源提供给用户;Google App Engine将从设计开发到部署实施Web应用所需的软件、硬件平台一起打包提供给用户;Salesforce.com将专业的客户关系管理应用模块打包成解决方案提供给用户。在云计算中,资源已经不限定在诸如处理器机时、网络带宽等物理范畴,而是扩展到了软件平台、Web服务和应用程序的软件范畴。传统模式下自给自足的IT运用模式,在云计算中已经改变成分工专业、协同配合的运用模式。对于企业和机构而言,他们不再需要规划属于自己的数据中心,也不需要将精力耗费在与自己主营业务无关的IT管理上。相反,他们可以将这些功能放到云中,由专业公司为他们提供不同程度、不同类型的信息服务。对于个人用户而言,也不再需要一次性投入大量费用购买软件,因为云中的服务已提供了他所需要的功能。
(2)
这些资源都可以根据需要进行动态扩展和配置。例如在前面的典型案例中,Amazon EC2可以在极短的时间内为华盛顿邮报初始化200台虚拟服务器的资源,并在9小时的任务完成后快速地回收这些资源;Google AppEngine可以满足Giftag的快速增长,不断为其提供更多的存储空间、更高的带宽和更快速的处理能力;Salesforce.com可以为哈根达斯公司在已经成型的CRM系统中动态地添加和删除应用模块,来满足客户不断改进的业务需求。这些例子都体现了云计算可动态扩展和配置的特性。
(3)
这些资源在物理上以分布式的共享方式存在,为云中的用户所共享,但最终在逻辑上以单一整体的形式呈现。对于分布式的理解有两个方面。一方面,计算密集型的应用需要并行计算来提高运算效率。例如,一个Web应用是由多个服务器通过集群的方式来实现的,此类的分布式系统,往往是在同一个数据中心中实现的,虽然有较大的规模,由几千甚至上万台计算机组成,但是在地域上仍然相对集中。另一方面,就是地域上的分布式。例如,一款商业应用的服务器可以设在位于纽约的华尔街,但是它的数据备份却由位
于德州戈壁中的数据中心完成。在上文的典型案例四中,IBM公司在世界范围内共拥有9所研究院,IBM RC2将这些研究院中的数据中心通过企业内部网连接起来,为世界各地的研究员提供服务。作为最终用户,这些研究员们并不知道也不关心某一次科学运算运行在哪个研究院的哪台服务器上,因为云计算中分布式的资源向用户隐藏了实现细节,并最终以单一整体的形式呈现给用户。
(4)
用户按需使用云中的资源,按实际使用量付费,而不需要管理它们。例如,华盛顿邮报为尽快完成档案的转换任务,使用了200台虚拟服务器,并为其所获得的1407小时机时支付了144.62美元。虽然华盛顿邮报没有足够的运算处理能力,但是云给了它强大的资源来快速完成任务,而它仅需要根据实际使用量来付费。对于华盛顿邮报来说,如此巨大计算量的任务并不经常出现,因此按照这个标准购置IT设备显然是不合理的。如果没有Amazon EC2,华盛顿邮报在9小时内完成档案的转换工作将是不可能的。同样,在Giftag的例子中,Giftag需要做的仅仅是根据其业务的增长而使用更多的Google App Engine的资源。依托Google强大的数据中心,Giftag拥有近乎无限的资源来满足新用户的注册,从而避免了自己投资IT基础设施而可能出现的浪费现象或客户流失。
总之,在云计算中软、硬件资源以分布式共享的形式存在,可以被动态地扩展和配置,最终以服务的形式提供给用户。用户按需使用云中的资源,不需要管理,只需按实际使用量付费。这些特征决定了云计算区别于自给自足的传统IT运用模式,必将引领信息产业发展的新浪潮。