Sunday, April 24, 2011

“拨云探月”——云计算话题浅析(一)

【本文面向读者无需有专业知识。读过本文后可以茶余饭后与人神侃,忽悠“专家学者”问题不大】
时下,云计算是个热门话题,无论学术界、工业界还是商业界,凡是跟云计算扯上点关系的就能吸引人的眼球;反之就觉得“科技”含量不够。无数沾边或者不沾边的企业、专家都纷纷叫嚷云计算,却少见有人静下心来具体分析分析云计算到底是怎么回事。
本文试图通过云计算的起因、关键技术点和未来发展趋势这三个方面对云计算进行浅析,剥去那层“神秘”的面纱。

云计算起源

首先为什么会有云计算?
常识告诉我们,这个世界上没有无缘无故,如果一件事情违背了常理而找不到原因,那么一定是有人在背后捣鬼。
那么云计算的出现究竟是时代发展的自然趋势还是人为的巧合呢?
实际上,计算机的出现也不过几十年而已,在这短暂的几十年里计算模式发生过数次变化。
在巨型机/大型机时代,计算机只能在政府部门或者企业等中才能享有的。一方面造价昂贵、体积巨大、维护成本高,另一方面只有政府部门或者企业等大规模组织才有快速计算的需要。后来虽然有了早期的互联网,但使用计算机仍然是少数人圈子内的权利。这个时代的特色是昂贵集中的计算机+低速的网络+个人用户。
随着技术的成熟和生产工艺的提高,计算机的体积缩小、性能提高、配套的软件系统成熟,微型机(PC)终于慢慢普及开来。个人对于计算机的需求一下子发展起来。很难说是计算机推动了个人生活方式的改变,还是个人生活方式的改变增加了对于计算机的需求。总而言之不光企业,普通生活中也越来越离不开计算机了。这一阶段的计算模型是低速的网络+强大的个人终端。
从巨型机时代到微型机时代的转变有几个关键因素。一是集中式的高性能计算机造价太昂贵,个人用户人手一台不现实。那么能否大家一起share?早期低速几十k的互联网根本无法提供足够的分布能力。这两个关键的因素决定了用户个人终端的出现。可以说,计算由中心转移到终端是用户对于计算的急速增长的需求和脆弱的联网能力之间矛盾无法调和的必然结果。
而到了网络技术成熟的21世纪,解决这一矛盾有了新的可能方案。那就是将计算放到远端(云端),用户减少客户端的成本。这一看似复古的模式实在有着巨大的优势。于是乎,云计算的概念一经提出,就迅速红遍全球,当然这里面也有名字起得好的因素在。
从前面的分析我们可以看出,计算模式的改变并不是某几个人或企业能决定的,根本上说还是技术水平来决定的。是的,一点都不夸张。抽象的看确实就是生产力水平决定了上层的使用模式,即生产关系

云计算与经济

天下熙熙,皆为利来,天下攘攘,皆为利往。
就在写作本文的时候,全球最大的云计算供应商amazon的数据中心出现了严重的故障,造成多家互联网客户服务受到影响,为全球云计算市场增添了一丝阴影。
确然,如果将来大家都绑到云计算上,一旦发生故障将是十分可怕的。这听起来远没有将数据放到自己本地的机器上更为安全。那么为什么云计算的发展还是喷薄如斯呢?
如果从“利”,即经济的角度去看待这一问题,会发现一些有意思的结果。
大家都知道在经济史上,货币的出现是一个经济体系进入较高阶段的重要标志。为什么货币的出现如此重要?其实不在于说减少运输成本啊,市场调控啊等等因素。这些因素也很重要,但是更为关键的在于,货币这一体系极大的解放了生产力!
是的,听起来很夸张,但事实就是如此。在货币作为物品的代替物的时候,在稳定的金融社会,货币自身实际上就代表了生产力的成果。我们运用货币,实际上就是将生产力重新整理,投入新的生产的大循环过程。虽然说,在出现货币之前,我们干的也是这件事情。但这一过程从来没有如此的方便和有效率过。离开了货币,就相当于在生产大循环的某个环节掐住了喉咙。试想,如果一个人要吃饭,就必须自己种地,一个人要吃肉,就必须自己打猎,这一的社会生产力怎么能提高?而方便交换过程的重要手段,就是货币。
更为拔高一些,就是生产关系解放生产力
对于云计算模式同样是如此,在计算能力被集中管理的情况下,资源可以更为有效的投入到需要的地方去。用户获取计算资源更为便捷和便宜,也更加有效率。因此,云计算的出现,在经济上是一种必然。也因为如此,不同于当年的网站或现在的广告模式,云计算在网络泡沫后必然会存活下来。
当然,更深入一些,在现代金融体制里,形成垄断后的金融大鳄们利用货币的手段可以巧取豪夺,对于未来云计算的发展,是否也会有类似的事情出现呢?

云计算与数据中心

那么云计算与数据中心又有什么关系呢?
在云计算时代,用户只要通过客户端告诉云端自己的需求,云端完成之后就可以将结果push给用户。这里客户端起到了简单的信息解释的作用,并没有太多技术含量,而真正的快速解决问题需要一个强大的云端。
这个云端就是数据中心。
前面说到云计算模式是看似复古的模式。很重要的一个区别就在于提供计算服务的方式。在巨型机时代一台多用户的巨型机在机房里,各个用户登录上去,自己安排好任务然后让机器执行计算。而在云计算时代,则是几十万台计算机构建的数据中心共同为用户提供服务。而且数据中心内对用户是透明的,用户甚至根本不知道也无需知道自己的任务在哪几台机器上完成。
那么,为什么要用数据中心替代大型机呢?
这个问题在网格计算发展起来的时候曾经有过一个答案——成本。巨型机的成本实在是太高了,以至于只要拿出一部分钱购买大量廉价的PC来搭建网格就能提供接近的计算能力。看起来从成本上考虑,云计算是有太大的优势。但,这并不是最根本的原因,需知为了连接这些PC,数据中心中大量的昂贵的高性能交换机占据了大部分的成本。
那么根本的原因是什么?
说到这里,我们提下著名的摩尔定律。这一定律预测了几十年的芯片产业发展,到了近些年终于不怎么灵了。单块芯片的频率已经接近制造工艺的极限,进一步提高意义不大且成本惊人。Intel等企业早早就看到了这一点,这才提出多核的概念。可以说,多核不仅仅是用户体验改善,根本上是生产工艺局限的必然。看到这里,相信不少人已经明白了。
在信息时代的今天,要成为一朵拥有大量用户的云,所提供的计算资源(和存储资源)是惊人的,这根本不是几台巨型机就能提供的,服务所需要的稳定性也不是巨型机能保障的。没有办法了只好退而求其次,用廉价的机器搭建数据中心。也正是这一模式,成就了Google、Amazon、Facebook等新兴企业。
一个关键的问题是,这一模式是否必然成立呢?
这一问题的核心在于大量低性能节点构建的数据中心能否满足我们的庞大计算需求。
大家都知道蚂蚁搬家,有的蚂蚁搬运树叶,有的蚂蚁搬运粮食,每个蚂蚁搬动的东西有限,大量的蚂蚁一起工作就能产生惊人的搬运能力。这跟云计算的模式十分相似。但是我们知道,蚂蚁搬家再厉害也很难搬动大的石块。为什么?因为石块不能被分解开,成为一只蚂蚁可以搬动的单元。
同样,云计算模式也无法解决“石块”问题。如果一个任务根本无法分解并行进行,云计算的数据中心再庞大也只有仰天长叹了。幸运的是,我们现在碰到的大部分计算问题都可以采用这样或那样的方法来分解,然后并行进行,也正是这一巧合,让云计算在我们的世界上成为了可行。
ps, 本系列的下一篇将侧重分析数据中心中的核心技术和问题,希望关注技术的同仁不要错过。

No comments:

Post a Comment