这是云计算的时代,这是物联网的时代,这是虚拟化的时代。
与生物学教授的对话
2010年11月3日,2010浙江·杭州国际人才交流与合作大会。在几天的所谓学术和商业“交流”之后,会务组组织参会人员去参观杭州本地的一批“成功”高新技术企业。我所乘的大巴上面坐着一批来自美国、英国、瑞典等的学者和业界人士。一落座,发现身旁一位似乎有些派头,有点“大佬”的味道。由于这个年头“大佬”、“专家”、“学霸”、“业界精英”及各种“成功人士”如过江之鲫,实在有点审美疲劳,我也就没有做什么理会,准备闭目养神。不料,旁边的“大佬”似乎有点耐不住寂寞,开始有一句没一句地搭讪起来。攀谈中,得知此人为美国一大学的生物学教授(为尊者讳,名字省去)。他问我是干什么的,我回答说“存储”,然后又加上一句“云存储”。他立刻来了兴趣,忙问“云存储”是不是云计算,我说算是吧。该教授立即说到: “云计算现在很热门,到处都是搞云计算的人,可我一直没弄清楚云计算到底是什么东西。我也见到过很多自称搞云计算的人,每次有这样的机会时我都会请教云计算的概念。但每一次我都听不懂对方的解释。我又自己看过多本关于云计算的书,发现各种说法很多,最后还是莫衷一是,不知所云。你能给我解释一遍云计算的概念吗?”
图1浙江·杭州国际人才交流与合作大会展厅
这种困惑和这种问题已经是我第n次碰到了。此时,我突然觉得,也许真该写点什么了。
时间已经晚了
某汽车生产厂在生产过程中发现汽车的一种重要构件——前杠只有1天的库存了,需前言云计算之道要马上采购此配件。但在采购之前,自然需要查找当前市场上前杠的最佳价格。于是该汽车厂将一部分服务器重新配置(显然,临时买服务器是来不及的)来运转电子商务软件,该软件将能够自动与所有的供货商确认价格与供货的容量和时间。所有这些操作都要求这些被重新配置的服务器访问相关的数据库,而这就要求将重新配置的服务器与供应商的计算机网络进行快速连接。
但问题是,公司只有1天的“前杠”库存,而搞清楚谁有多余库存及相关的供货价格和容量就需要1天时间。因此公司没有时间了……
虽然这是一种假定的场景,但与实际情况相距并不遥远。而一旦面临这种境况,公司可能不得不暂停生产线,从而导致生产效率的下降。在当今的锱铢必较的年代,这种状况是难以容忍的。可能有读者说,公司为什么没有准备多余的服务器,或者让上述商务软件一直处于运行中呢?这样就不用从现有的服务器上选一台来进行重新配置了。没错,公司完全可以多准备一些服务器,也可以一直运行各种各样可能随时需要的软件,以应对各种可能出现的情况。但如果这样,公司势必要投入很多的资产和金钱来维持一些平时没有用,但需要时却非常紧急的服务器和任务。这种浪费对于很多公司来说可能承受不起。因此,更常见的是,公司将那些平时闲置的服务器加以利用,在服务器上运行别的软件。这样,就难以杜绝上面所描述的困境。由此看来,公司要么浪费资源,要么就可能面临上述困境。
没有别的出路了吗?
答案是有。如果公司事前部署了自己的私有云计算平台,或采用了他人的云平台,则上述问题和困境将不会出现。因为云计算的一个重要特点就是资源可以根据需要自动增长。当用户需要额外的服务器来跑商务软件时,额外的服务器马上就可以提供。而在平时无须跑商务软件时,额外的服务器也就可以拿掉,因此没有浪费。
这就是云计算的好处。
不过,云计算的好处并不仅限于能够让客户免除重新配置服务器的烦恼。事实上,上述例子彰显的仅仅是云计算的一个优点,而且还不能算是云计算的最大优点。要说清楚云计算的优点需要一整本书来阐述。从某种程度上来说,在IT领域,云计算几乎无所不在、无所不能(本书后面将会谈到这点),其重要性远远超过大多数人的想象。在2012年的IEEE网上杂志的一篇文章里,其作者对云计算的重要性进行了这样的描述: 如果不学习云计算,不了解云计算在业务扩展和降低运营成本方面所具有的无限潜力,则将处于非常不利的竞争态势。
可能有人觉得这句话将云计算的价值说得太高,把不做云计算的危害夸张得太过,有点危言耸听。但对于真正了解云计算的人来说,这句话不是危言耸听。因为云计算能够大幅度提高机构的运行效率、降低运行成本,如果一个机构不采纳云计算,其唯一的希望就是别人也不采纳云计算。如果竞争对手都采纳了云计算,从而获得效率的提升和成本的降低,那么不采纳云计算的机构将处于非常不利的竞争态势,从而在竞争中被淘汰出局。
说句比较夸张的话就是,不搞云计算,必定靠边站。
什么是云计算
不过,云计算是什么,却是众说纷纭,莫衷一是。有人说SaaS,有人说PaaS,还有人说IaaS、CaaS或其他的XssS;有人说是服务计算,有人说是互联网计算,有人说是分布式计算,有人说是移动计算,还有人说是效用计算;开发移动终端应用的人说移动应用是云计算,开办IT外包呼叫中心的人说呼叫中心是云计算,建立数据中心的人声称数据中心是不折不扣的云计算,使用Map/Reduce或者Hadoop或大数据的人更得声称自己做的是云计算,从事ETL的人则声称自己从来就是在搞云计算(他们已经搞了十几年或者几十年了);即使是从事高性能计算或管理超算中心,似乎耐得住寂寞的人也不能免俗,也得说自己的工作是云计算或者与云计算相关。一句话,只要是与IT沾点边的人,都说自己从事的是云计算或者与云计算相关的工作。似乎,地球人都在搞云计算。
那到底什么是云计算呢?如果不出意外,在听完各路“专家”的解释之后,很有可能堕入云里雾里,不知所云了。实际上,有关云计算的问题几乎数不胜数。例如,云计算是技术术语,还是工程术语,是商业术语,还是社会术语?它是一种技术模式,还是一种商业模式,或者二者兼而有之?云计算的本体是什么?云计算到底给个人和企业如何带来何种具体和可量化的好处?是否人人都真的需要云?云是如何让应用程序进行伸缩的?又是如何让应用程序更具弹性?如何才能开发出性能卓越的云应用程序?如何才能构建起真正的具有商业应用的云架构(或曰云平台)?掌握云计算或开发云应用需要什么新知识和新技能,又可以使用哪些现有的知识和技能?开发云应用和开发其他应用有何不同?
面对上述数不胜数的“云”问题时,别说一般人,就是大部分的“云专家”都会感到困惑和无奈。
如果读者想求助于市面上出版的各种关于云计算的书籍的话,则多半是打错了算盘。市面上的“云”书籍非但未能向自己的读者解释清楚云计算的要义,甚至还助长了各种误解和混乱。大部分书对云计算的阐述流于肤浅、缺乏逻辑、术语堆积,甚至误导繁多。从某种程度上说,这些书不过就是各种技术或商业术语如SaaS、PaaS、IaaS、Hadoop等的堆砌,对于如何克服读者在深刻理解和实际使用、开发或管理云计算平台和应用方面所面临的具体障碍没有什么有价值的指导。以致不少人以为,云计算就是一次新的规模更大的忽悠,大可不必理会。
云的真实
就是在这种混乱和误解中,云计算却真真实实地在一步一步地往前迈进,甚至有一部分人士正在经历云计算所带来的变化和阵痛。随着软件作为服务(SaaS,云计算中的一种可能模式)这种模式的不断推进,越来越多的企业发现已经难以像过去那样,将商业软件作为商品来购买。但由于其业务性质,这些企业又不能直接使用SaaS模型,从而被迫陷入架构软件的开发和私有云的构建中。这种发展趋势对人员的素质提出了很高要求,相关人员必须对云的架构、云的平台、云的生态环境、云上面的软件开发、布置和管理有着正确和到位的理解。
无论是为了消除云计算上的误解和混乱,还是为了满足有识之士对云计算理念、技术和实践的强烈渴望,都需要一本浅显易懂又不乏深度的书籍来为大众指点迷津。
而这正是本书的写作动机。本书以庖丁解牛般的手法拨开了掩盖在云计算上面的迷雾,精确阐述了云计算的理念、云的本体、云的架构、云的平台、云的应用、云的编程模式、云的构造、云的集成、云计算面临的困惑。本书以不同一般的视角、前所未有的深度、发人深省的讨论来展示云计算的实质,对云计算的多个方面进行了深入浅出的讨论,为大众释疑解惑,读者在本书的基础上很容易获得各种云问题的正确或接近正确的答案。
本书结构
本书共9章,每章标题如图2所示。
图2《云计算之道》一书的结构
书的第1章标题为似曾相识云计算。该章讨论云的概念和历史,通过历史可以看出云计算确实“似曾相识”。本章的内容包括新闻里的云计算、计算范式的进化、什么是云计算、云计算的优势、云计算的误区和云之道。第2章标题为云的本体。顾名思义,该章讨论云的本质属性,内容包括云的服务栈、云的划分、云的工作负载、IT服务、云控制器。第3章标题为云计算的软件架构,讨论云计算的软件架构支撑,具体内容包括云计算的分层、云的通用构件、云应用的结构和云应用的编程模型。第4章标题为虚拟化技术,讨论云计算的重要支撑技术: 虚拟化。该章具体内容包括为什么要虚拟化(云计算能否不构建在虚拟化之上?)、虚拟化的挑战、CPU、内存、IO、存储虚拟化和商用虚拟机。
第5章标题为Windows Azure云计算平台。该章以微软的Windows Azure云平台来进一步阐述云计算的概念。通过对Windows Azure的讨论,前面几章讨论过的内容将逐渐清晰并落到实处。该章具体内容包括云操作系统Azure、Windows Azure的持久存储、云体控制、云应用开发过程、服务隔离和安全、Windows Azure服务、Windows Azure云体、Windows Azure场景、云规模应用程序架构、Azure应用程序的发布过程。
第6章标题为其他主流云平台,讨论内容为谷歌的App Engine、亚马逊的AWS、EMC/VMware的Cloud Foundry、NASA/Rackspace的OpenStack。第7章标题为大数据——云计算的典型应用,讨论云计算的一种非常热门的应用: 大数据。该章具体内容包括云上的热门应用、大数据、大数据的挑战、伸缩数据、伸缩过程、Map/Reduce、分布式文件系统、Hadoop和Engine One。第8章标题为云的构造和集成,讨论如何构建私有和混合云平台。本章具体内容包括构建私有云的主要考虑、构建私有云的一般原则、迁移云应用、连接云应用和业务所在地系统等。第9章讨论云计算的困惑,内容包括云迁移、云安全、云伦理、云标准、云交易、云奇异点等。
本书特点
相对于市面上的其他云计算书籍,本书具有如下特点。
逻辑性强: 从云计算的基础,到云计算的本体,再到云计算的软件架构,再到商业云平台介绍,再到云计算上的热门应用(大数据),再到云体集成,再到云计算的未决议题,逻辑轴线清晰,步步递进,一气呵成。
讨论具体: 本书的阐述非常具体,从用户体验和云体设计人员的角度进行论述,有血有肉。化抽象为具体,而不是抽象地泛泛而谈,不着边际。
内容独特: 本书的构思独特,很多内容甚至是传统书籍所不包括,如云的软件架构、云的构建与集成、五大主流云平台的细致论述、云的未决议题等。
简洁易懂: 用常人容易看懂的语言进行描述,图文并茂,阐述生动,化晦涩为清晰。
视角新颖: 本书讨论云的视角与传统书籍不同,以“时间已经晚了”的故事引入对云计算的讨论,以云的无所不在和无所不能来结束对云计算的讨论。
简单说,本书不是泛泛地谈一些云的概念如SaaS、PaaS、IaaS,而是内容具体且丰富、阐述深刻、讲解清楚、视角独特、不局限于特定云平台、对读者的实际指导作用强,是理解云计算的不可多得的一本书,也是高等院校学生学习云计算的上佳选择。
本书局限
本书对云应用的具体开发不做讨论,因为云应用的具体开发需要针对特定的云平台进行。由于本书阐述的是云计算的通用理论、模型、思维及面临的问题,不适宜在这方面连篇累牍。而且,与特定云计算平台挂钩的云应用开发书籍市面上已经有售。例如,由笔者翻译的微软的《云计算系列丛书》就针对Azure云平台展开了如何构建云应用的详细讨论。对云应用开发有兴趣的读者,建议阅读该套由清华大学出版社出版的微软云计算系列丛书(《云迁移》、《云应用开发》、《构建弹性云应用》、《构建混合云应用》)。
由于作者水平有限,加之关于云计算的理解一直是众说纷纭,也确实存在多个不同的版本,书中难免有错误和偏颇,诚望读者不吝指教。
致谢
本书在撰写时用到了微软、EMC/VMWare、Intel、引跑(Intple)网络科技有限公司、云歌(信息)科技有限公司提供的相关资料,在此一并表示感谢。
邹恒明
2013年6月