全球正在进入云计算的时代。云计算是一种新的计算模型和服务模式,其核心理念是我们不再依赖本地的计算机来做计算,而是依赖由第三方运营的集中的计算和存储资源。云计算的概念可以追溯到1961年,计算机科学的先驱John McCarthy在麻省理工学院的百年纪念典礼上发言说:“计算某一天可能会像电话一样被作为公用资源(Public Utility)……计算机资源会成为一种新的重要的产业的基础。”1966年 D. F. Parkhill则在其经典著作《The Challenge of the Computer Utility》中大胆预测计算能力将如同水和电一样被提供给大众。今天业界称云计算是继水、电、气、油之后的第五种公用资源。
人们常用以下两个经典故事解释云计算的应用 [9] 。
故事一:Tom是一家公司的员工,某天公司派Tom去伦敦出差。因此,Tom想要了解他所乘坐的航班信息、从他的住所到机场的最佳路线,以及伦敦最新的天气和住宿信息等。在未来,所有的这些信息都可以通过云计算来提供。云计算将与各种各样的终端(如个人计算机、PDA、手机、电视等)进行连接,为用户提供广泛、主动、高度个性化的服务。
故事二:Bob是这家公司的另一个员工,不过公司并没有派他出差,于是他照常到公司上班。到了公司,他打算管理一下自己最近的任务,于是他可以通过 Google Calendar来管理自己最近的日程安排。整理完日程,Bob可以通过Gmail收发邮件,通过GTalk与同事、朋友进行联系。如果他这时打算开始工作,可以通过Google Docs来编写在线文档;在这个过程中,如果他需要查阅相关论文,可以通过Google Scholar进行搜索,也可以使用Google Translate翻译一些英文,他甚至可以使用Google Charts来绘制一些图表。如果Bob工作累了,他可以通过Google Blogger来分享日志,通过Google 的YouTube来分享视频,通过Google的Picasa来编辑和分享图片。
“云计算”是英文Cloud Computing的直译,一种流行的说法解释“云计算”之所以被称为“云”计算是因为在互联网技术刚刚兴起的时候,人们画图时习惯用一朵云来表示互联网,如图1-1所示。人们通过浏览网页访问互联网可能需要经过多个中间转接过程,而这些对于用户是透明的。因此在选择一个名词来表示这种基于互联网的新一代计算服务方式的时候,就选择了“云计算”这个名词,意在不去关心网络的转发过程,而关注服务器端和客户端的服务与应用。这个解释非常有趣和新潮,但是却容易让人们陷入云里雾里,特别是中文的很多与云相关的词汇都是贬义词,使得很多人从“云计算”的字面意思产生误会,因此有必要对云计算给予系统定义和特征分析。
图1-1 看似“云”的互联网
关于云计算的定义有很多种,维基百科的定义是“云计算是一种商业计算模型和信息服务模式。它将计算任务分布在大量物理计算机服务器或虚拟服务器构成的不同数据中心,使各种应用能够根据需要获取计算能力、存储空间和信息服务 [19] ”。伯克利云计算白皮书则将其定义为“云计算包括互联网上各种服务形式的应用,以及数据中心提供这些服务的软硬件设施 [3] ”。我们综合云计算的特点把它定义为“一种由规模经济效应所驱动的大规模分布式计算模式,把抽象化、虚拟化、动态可扩展、有效管理的计算、存储、平台和服务等资源池,通过互联网按需提供给外部用户 [2] ”。它与传统的计算模式的区别在于:
①它的大规模性;
②它能被封装成一个抽象的实体,提供给用户不同级别的服务;
③它是基于规模经济效应的;
④服务能够动态配置,按需供应。
云计算通过网络可以提供的服务与应用如图1-2所示,包括计算、存储、网络、服务、软件等多种形式。
图1-2 云计算提供的服务与应用
自1966年 D. F. Parkhill 在其经典著作《The Challenge of the Computer Utility》中大胆预测计算能力将如同水和电一样被提供给大众之后,众多计算机科学家不断通过探索与创新去努力实现这一目标,然而始终未能找到一个为业界和用户所广泛接受的成功方案,很多方案被提出后又被推翻,或者未能大规模应用 [8] 。随着网络基础设施的不断改进,以及互联网应用的飞速发展,云计算——这个计算机领域先进技术的集大成者,正在为越来越多的人所接受。今天业界称云计算是继水、电、气、油之后的第五种公用资源。也有人称之为“穷人的超级计算机”。这主要是因为用户不再需要购买和维护庞大的计算机集群,只需要通过网络按需消费计算资源。