2009年3月24日星期二

云计算、网格计算、实用计算等

开门见山的说,目前,我们是没法看到一个成型的云计算系统的,当前标称自己为云计算的服务,通常都是只是提供了一系列应用程序,以及把这些程序部署到实用计算框架内的能力。说实在话,这些东西严格意义上讲是建立在实用计算上的一种服务供应能力,并不是真正意义的云计算。而且,如今大多数的服务解决方案都只是能将一个单独的应用程序或者一系列单独的应用程序部署到一台单独的服务器上,也许,这是云计算的雏形,但坦白说,这是一个很trivial的雏形。真正的云计算发展成什么样,我也很难说清。

问到云计算和目前存在的这些计算类型有什么区别,我大概在这里谈一谈。

[先谈谈实用(utility)计算。国内很多科普文章和报道,都把使用计算归为云计算的一类,这是不准确的。实用计算是什么东西?简单说,在这里面,是别人拥有计算资源,别人进行管理,你只是用钱购买容量。这有点像你日常生活中享受的水,点,天然气等服务。你根本就不用管这些东西是怎么来的,怎么管理的,你只需要有一个合适的接入方式,比如水龙头之类的,就能够享用。当然,享用的数量决定了你为此花的钱。
理论上讲,所有人都可以搞实用计算,提供自己的计算资源,因为实用计算并没有规定什么样的系统需要被提供,什么样的接口需要被提供,或者什么样的程序需要被开发。实用计算的意义,在于你不用花精力去搞一些建立硬件基础,管理,系统选型,如何使用应用程序等等,你只需要run你的应用程序即可,其他东西自有其他人关心。所以从本质上说,实用计算主要关注的,是如何利用他人管理的硬件。这里的他人范围可以很大,可以是专门的公司,政府,企业,甚至是你自己的公司的其他部门。

再说说网格计算。网格计算是这样一个东西,它的目的在于让计算资源最大限度得可共享,并最大范围被访问,最终提供实用计算的一种形式。绝大多数和网格计算有关的项目,都是对cluster-aware的程序进行深入研究的,说白了,就是研究怎么去分这个工作负荷。如今,绝大多数的网格计算都是用于提供某种实用计算的模型的,另外,它在近些年也被研究以用于支持商业数据中心的工作负荷,虽然到目前为止,还没有啥数据中心是网格性质的。
虽然网格通常被看作是实用计算的提供者,但它也可以被用作把本地的或者区域性的数据中心组织称一个高性能计算引擎的方式,当然,主要是用于研究用。网格计算的模型本来是主要针对于如何简化对复杂计算或者复杂数据的工作负荷的管理和处理,不过由于这种特点,反而比较受科学计算社区的亲睐,成为一种比较通用的标准模型了。
接下来再看看集群计算(cluster computing)。集群计算其实在很大程度上也类似于网格计算,甚至可以被称为是网格计算的子集。刚才也说了,绝大多数和网格计算有关的项目,都是对 cluster-aware的程序进行深入研究的。集群计算建立在一系列能共享存储访问的机器上,所有的操作都作为一个单独的工作负载的一部分,而这种工作负载是 cluster-aware的,例如一些用于把问题划分成多个离散模块的经典模型,像著名的SETI (Search for Extraterrestrial Intelligence) 项目,就能将一个很大的工作集轻易划分成很多的离散子问题。

当然,集群计算和网格计算还是有一些不同之处的。

首先,在硬件和软件的安装方面,集群是相当同质化的,他们通常都是由一帮完全相似的,以”多处理器“形式进行操作的机器组成。而网格计算呢,则是尽可能去保持软件栈的相似性,所有大型集群或者高性能计算机都尽量拥有相同的软件栈,以此来作为一个超级计算机的一部分。
其次,每一个集群通常都被设计成“一次运行一个任务”的模式,这些任务通常都是长期的,针对的是大型的,用普通方式很难解决的目标问题。也就是说,集群计算的实际工作负荷的数量其实是很少的,而且会随着特定时间的不同而改变。

最后简单说一说分布式计算。分布式计算,还是属于网格计算的一个子概念,但是为什么这里要提出来呢?因为在分布式计算中,它是以“多个工作负载分布到多个运算机器上”的形式存在的。注意,这里体现了分布式计算和集群计算的不同。正是因为这个差异,分布式计算对软件和硬件系统的相似性要求不高,比传统的网格计算宽松很多,它所关注的,是如何提供一种通信的方法,不管是像网格计算那样紧耦合的,还是像传统的SOA部署一样的松耦合的。

废话了这么多,实用计算,网格计算,分布式计算和云计算的本质区别到底在于哪呢?

首先,实用计算通常是被看成一种应用场景,而这种服务场景是由网格计算或者云计算所提供的。

其次,云计算借鉴了很多网格计算,集群计算和分布式计算的特点,就好比,和分布式计算比,云计算注意到,如今的计算环境,已经不仅仅是把负载分配到各个公司,研究所,大学院校中,更重要的是整个互联网中。云计算实际上在概念上非常接近网格计算,也借用了很多网格计算的特性。而且,未来,云计算和网格计算可能有更高程度的交汇,因为他们的核心原理和目的都非常类似。无独有偶,网格计算之父Ian Foster, 也在他的博客里面提到过云计算 。

那么,到底云计算会不会最终变成网格计算呢?Never. 这里有一个很有意思的视频,http://www.nohardware.com/node/2,有兴趣的朋友可以看看,至于它表达的意思,就一切尽在不言中了:)
总的来说,云计算是一个总结并发展的东西,它包含很多已有计算类型的特点,同时有着适应越来越广阔的互联网和越来越无穷的计算能力的特点。

没有评论:

发表评论