云计算(一)

这个是个不错的标题,至少我觉得,只是不知道我能否把它扯成一系列文章:) . 在这儿勉强尝试一下吧,至少我还曾经动过脑筋,想着取个与云计算有关的公司名字过~。

到底什么是云计算(cloud computing)?感觉李开复是有点想把它描绘的更云里雾里了,几乎要到了“不带走一片云彩”的地步;李彦宏也是想要有自己的见地,而不限于在“云计算”里折腾出一朵不同的”云”来,索性就成了“框计算”。

在很久以前,应该是2000年前吧,那时候说的是网络上的应用取的方式是”Fat Server, thin client”。这也是由于当时的客观条件所限,一台电脑的计算能力可能都还不及现在的一部手机,所以只能让复杂的处理在强大的服务器端进行,在客户端只是尽量做个展示。然后随着个人电脑的计算力不断增加,同时网站的访问量逐渐增大,一台或者若干台庞大的服务器也是无法满足客户们的需要。所以在服务器端的一个应用往往要被拆分成好几个组件,有专管数据的,有专管逻辑的,有专管直接响应客户的,也就是把服务器端又分成了若干层,已逐渐适应不断增大的访问量。但这样似乎也不是什么好法子,服务器的压力还是会太大,于是就有提议说不如把一些事情移到客户端做吧,也就兴起了”Thin Server, Fat client” 的说法。这里的方式,很多比如假借Javascript, Flash, 或者一直半死不活的Java Applet等手段,服务器端主要保存数据,而把好多逻辑处理以及展现交给了客户端。

在个人电脑处理能力不断增强,有了闲余计算能力的情况下,不仅是一般的网站应用想着把有些处理让客户端被动的选择了接受,而且比如Folding@Home,寻找外星人等探索型计算也设计出了分布式计算的模式,让用户(客户端)们可以选择在特定时段主动贡献计算能力。但在这些计算模式中,有很大程度上,cpu的运算能力比较重要,网络间的流量却不是很大,只需要某一阶段再同步一下数据及结果即可。

在这些发展过程中,当然也有不同的声音,或者说对同一概念的不同解读。比如Google在发展它的服务时,就没有刻意的提高单台服务器能力,反而是要降低单台的能力,却以数量来战胜质量。这样培养出来的能力也使得Google现在能引领云计算的潮流,这种方式也逐渐成为了现在服务器端发展云计算的标准。但粗略来说,也就是服务器端依靠整合着无数台低端的服务器从而具备超级的计算能力。那在客户端又有何变化呢,一个是由于终端设备的大大丰富,尤其是手机阵群的加入,使得有时候客户端不能做过多的运算;二是用户们越来越多的要在不同场合接触同一数据,最好的手段的确就是把数据放在“云”端,然后招之即来,挥之即去。这也就使得服务器端最好又具有超强的运算力,又具备超大的存储力。

这样的介绍似乎不痛不痒,也根本没谈到“云计算”至少要具备的一个特性: Elastic(可伸缩性),这个就准备下期介绍吧:)

对云计算有兴趣了解的同学,也不妨先看看这个帖子,它把云计算的各种层次大概做了划分,虽然有些公司的归类不敢认同,但基本给出了一个思路: http://msn.ynet.com/eventns.jsp?eid=56349294

Post a Comment

Your email is never published nor shared. Required fields are marked *