现在许多行业或者服务都打着云计算的旗号,但并不是所有的都是云计算,去伪存真看云计算,就是要抓住云计算真正的内核,
云计算实际有两个重要方面,缺一不可,不可偏废,一是集中计算,一是分布式计算,云计算是以特定方式融合二者的历史产物。忽视任何一点,都会有严重片面性。
现在许多“伪云计算”,倒不一定是说了完全不沾边的事情,而是把云计算的某个侧面,或历史上的某个局部来源,夸大为云计算的主流,而产生误导。
为此,在这里打算仅就云计算最核心的内涵,进行一番辨析。
1)集中计算分几种情况,与云计算既有联系,又有区别:
第一种,也是最典型的集中计算是大型主机,如IBM的S/360。相当多的人把云计算说成是集中计算,这并不全面。因为云计算显然不等于大型主机。云计算的应用,并不集中于大型主机内部,而是分散在集中计算和存储的外部计算节点上。
第二种,是主从机结构,服务器是主从机结构中的集中的一方,以后互联网的WEB模式,就是主从机结构的一种。主从机结构和WEB都不等于云计算,这是因为,它们的控制权位于主机(服务器);从机虽然分散存在,但没有控制权,不是以用户为中心的。
第三种是网格计算,网格计算本质上仍是集中计算。它表面上虽然具有利用分布计算资源的特征,但由于要解决的是巨大而单一的计算问题,从应用角度看,并不是分布式的。把云计算理解为网格计算,显然会漏算由节点方(应用方)提出任务这一点。
2)分布式计算,同样与云计算既有联系,又有区别:
第一种,WEB出现前的互联网(WWW出现前的互联网),如阿帕网,就是典型的分布式计算,并不需要服务器作为计算中心。仅有分布式计算,并不等于云计算,因为云计算还有集中存储和计算的部分。
第二种,P2P,即无须经由服务器,一台计算机与另一台计算机直接相联。其重要特点是对等,没有主从之分。在可管理的P2P模式下,虽然可以经过服务器,但不同于主从机结构处,在于它也可以不通过服务器,而主从机结构不通过服务器是不可以的。云计算不同于P2P之处,在于它必须以集中计算和存储作为分布式计算的互补方面。
第三种,协同计算,可以认为是P2P形式的推广,从点对点,发展到群组协作,即时消息、SNS等,都可以是基于协同计算和并行计算的。协同计算已非常接近云计算,但仍有不同,例如SOA(面向服务架构)可以复用服务模块,但这可能只是发生于应用之间,必须将这些可复用资源移向独立于应用的云服务器中,才算云计算。
现有许多云计算的定义,都往往偏向上述情况中的某一边,因此显得似是而非。需提醒的是,业内人士谈云计算往往有特定语境,比如说云计算建设要加强集中计算和分享。结合具体所指,可能并没有错,因为它可能是指云计算基础设施或平台本身建设,也可能是针对大企业的云端业务。但听的人往往听错,以为这就是云计算的全部,体会不到分布式计算和应用端的存在。这就造成误导和误解。
这种情况并不可怕,消除误解就会搞明白。但还有一种情况就不同了。一些大企业在搞云计算时,以传统的网格计算、主从机的旧理念,把云计算纳入排斥分布式计算的集中计算的轨道,那就属于内行的传统与保守了。目前对于集成的理解,就有这种实际问题存在。
3)集中与分散的联接
现有对云计算的定义中,许多都忽略了两个基本点之间的联接方面的内涵。实际上,二者的联接,是云计算的精髓所在。这种内涵,也是从历史中一步步发展出来的。有几个概念,值得特别注意:
第一,分享(或共享)。现在所有的云计算,都会提到分享。这主要是指在云中分享可复用的资源,也包括点对点之间的分享。分享是与工业化格格不入的概念。工业企业经济是在排除分享的前提下建立起来的;可分享的东西,属于政府用税收提供的公共产品。但在云计算中,分享完全可以是市场行为。之所以会这样,是因为有两种情况与工业经济相比发生了变化,一是生产资料从物质和资本,变成了数据,从不可复用,变为可复用;二是出现了基础业务与增值业务之间的交叉补贴,分享可以获得回报(例如免费模式)。这样就造成集中的部分分享,而分散的部分回报(在苹果应用商店模式中是三七分成,由分散的开发者得七成,回报给分享工具和平台的苹果以三成)。其中,数据资源可复用性,正是云计算中的集中,采用分享模式的基础;而集中业务与分散业务之间的关联,是分享可以成立的模式基础。许多人在谈及云计算提到分享时,只注意到集中资源部分的分享,而没有联系于节点上的回报机制,就把云计算混同于学雷锋做好事了,相当于把开源软件与自由软件弄混。这样就把云计算的基础设施搞成了人民公社,变得不可持续或变成另外的事情了。
第二,虚拟化。虚拟化是云计算的重要特征。工业生产方式是集中,农业生产方式是分散。历史上从来没有解决好二者的矛盾。虚拟化在协调二者关系上,走出了新路。早在大型主机时代,虚拟化的思想就被提出了。但那时并没有端的应用可供施展。到了云计算中,虚拟化在云的集中与端的分散之间,起到关键联接作用。实际是在技术上,把资本专用性的框框打破了。在实体经济中,要素具有刚性,难以自由流动,固定资产的投资,经常成为沉没成本,造成巨大闲置和浪费。在云计算中,虚拟化实际上将要素的刚性,变为了柔性。这对于应用端、增值端的边际投入,固然没有造成直接的改变,但对集中于云端的可分享资源来说,却是一种巨大的社会节约。相当于从事同样生产的固定成本(如初始固定投入)凭空节省了许多。社会可以把固定成本转化为可变成本,集中于必要的增值业务,为用户创造更多价值。更深远的意义在于,当这种方式与范围经济结合时,以个性化和定制为特征的“小农”就重新复活了(当然是在更高的历史阶段,在更先进的生产力基础之上),集中与分散的矛盾就被扬弃了。
第三,效用计算。效用计算实际是租赁的概念。由于资源可复用而生产要素可以虚拟化,在产权上带来的一个合理变化,就是资源配置可以“变拥有为控制(使用)”,把所有权与使用权分开,对生产要素不必拥有所有权,而以租赁的方式,控制使用权即可。在云计算中,以这种方式,实现的是云一方的所有权与端一方的使用权的自然联接。这造成公有制与私有制之间一种奇妙混合:在云的方面,基础设施(I)、平台(P)和软件(S)相当于工业时代的道路、厂房和设备是“公有”的;在端的方面,增值业务和边际投入是“私有”的,而“公”、“私”之间以一定比例分成(如三七分成)。
第四,开放API(应用程序接口)。人们在定义云计算时,很少把API考虑进去。实际上,在集中与分散之间,离开了API相联,一切都变得不可行。因此可以说,API是云计算的关键或者说,起到云与端联接作用的机制,是云计算的关键。在工业经济条件下,API是不存在的。即使在云计算出现之前的互联网经济中,API也经常是封闭的或不起实质作用的。例如在SOA中,共用模块并没有独立出来以API形式,由独立第三方(象云那样)提供。许多谈论云计算的人,都没有把资源共享到云端后,如何与终端计算联接的问题,当作云计算内涵的一个重要方面来认识。
我个人认为,云计算从更深的意义上,是以提高效能(即报酬递增)为目标取向的。许多人仅仅从效率(包括节省成本)来谈云计算可以解决什么问题,没有充分到位。可以倒着证伪一下,提高效率,也可以是报酬递减,但那样的话,云(I、P、S)与非云(实体基础设施、厂房和设备)就没有区别了。可见不谈效能,就无法把真正的区别总结出来。真正的区别在于效能(效率的变化率,即“越……越……”):采用云计算,系统越复杂,边际成本越低;不采用云计算,系统越复杂,边际成本越高。从这个意义上来说,采取云计算,实质是在转变生产方式。