云计算这个新名词最近甚嚣尘上,最近周围不少朋友都在谈,有必要写一个关于云计算的科普了。一般的业界比较喜欢用一些新名词来体现自己的战略眼光和与对手的区隔。当几个月前google提出云计算的概念的时候,amazon说自己做的事情就是云计算,IBM、intel、Sun都声称自己在云计算领域有深刻的计划。只可惜大家听了半天仍然不知道什么是云计算,依旧云里雾里知道这个与计算有关,干脆就叫“云计算”吧。
到底云计算是什么呢?
这个问题不好回答,专业一点的回答是:云计算是依靠强大的计算能力,使得成千上万的终端用户不担心所使用的计算技术和接入的方式等都能够进行有效的依靠网络连接起来的硬件平台的计算能力来实施多种应用。
非专业一点的回答就是,一堆你不需要搞清楚的硬件、软件在服务你。这堆硬件和软件构成的东东大的像朵云彩,又拥有极强的计算能力,这就叫云计算。那么云计算是怎么来的?我们为什么又需要云计算?
1. 云计算的前身是grid computing。
说起grid computing 可能知道的人就很多了,就是传统的网格计算。网格计算就是将一个计算分割成片段,提交到网络系统上的各个计算机上(格点),工作做好进行汇总完成。比较流行的软件例如globe bus + afs(提供存储映射服务)。不过grid一般都是用在学术界,例如cern的几个实验都采用了大规模的grid计算,例如进行新粒子的发现,需要处理t 级别的数据,单台计算机的运算和存储显然是不可能完成的,因此就必须使用网格计算了。
2. 云计算有实实在在的例子么?
很幸运,我们还可以找到几个:google appengine,Amazon的S3+EC2系统都是云计算的雏形。
3. 云计算的基础是什么?
最基本的需求:存储+处理器,当然,要支持无数的应用请求并负责保证存储和计算的性能,这两方面都是挑战。
4. 我自己能够搭建一个云计算环境么?
当然可以,我们可以利用开源的项目来搭建一个云计算环境:你可以利用hadoop+hbase+php(包装API)也许就实现一个简单的云计算环境。
5. 有没有更简单的例子?
也许一个分布式的邮件系统就是一个云计算的雏形:计算分布在各个节点上,应用(邮件收发)通过一个统一的平台来处理,也算是符合云计算的定义了,不过只能支持最简单的一种固定应用。
6. 有没有复杂一点的例子?
google的云计算的逻辑关系:gfs 实现存储,bigtable 实现结构化、半结构化数据存储,map/reduce 实现将分布在各个节点上的计算和merage起来,剩下的就是进行job的管理器,管理工作的提交和触发,然后就是我们看到的appengine了。
7. 程序员应该关注哪些软件?
hadoop 项目应该是一个比较有前途的一个,当然powerset在hadoop之上的Hbase应该是一个更接近能够替代简单database的应用。
8. 我们为什么需要云计算?
很简单,企业的雄心+个人电脑性能进展缓慢+我们处在数据指数膨胀的年代。当我们在 google上提交一个搜索的时候,会有成千上万的计算机被卷入这一个简单的一个查询过程中,未来的计算越来越庞大,到了我们干脆说“云”来替代其中的一切细节的时候。
9. 云计算平台的下一步是什么?
云计算api的标准化也许是一个最需要进行竞争的,可惜基础的技术平台的完善还需要时日,而且云计算未来也许会是免费的,这个遵从 “竞争导致利润下降”的原则,难度不是么?当更多的云计算平台出现的时候,然而跑在云上的应用却没有那么多,当然免费的午餐就会来。
10. 还有更有趣的么?
当然,你可以提供一个云计算,利用 google,amazon的云计算包含在你自己的云计算里,然后提供一个统一的api,或者也许未来的云计算会整合在一个,云里雾里,成为一个超大的云计算平台,那个时候,也许自己家的电脑也可以接入云计算平台成为其中的一个计算的提供者。这个听起来很有意思,不过13年前就已经存在了,那个分布在全球电脑上的寻找外星et的屏保就是一个云计算的平台,如果他们该行做云计算的话,估计能够盖过 google和amazon。
【编辑推荐】