论文部分内容阅读
如今互联网上冒出的科技新词都有一个普遍特色,就是即便给你准确的名词解释,即便你能看懂每一个汉字所代表的意义,依旧不太明白其到底是个什么意思,比如最近非常热门的新概念“云计算”(Cloudcomputing)就是其中之一。云计算,简单来说是指基于互联网的超级计算模式。即把存储于个人电脑、移动电话和其他设备上的大量信息和处理器资源集中在一起,协同工作。这个解释感觉比较抽象?那么就来看看落伍者论坛里的网友自创漫画吧,且不说这位网友是否真的理解云计算,但能用如此有才的方式将自己的理解表达出来,已经难能可贵了。希望下面的“图说”能有助于大家稍许理解云计算。
什么是云计算呢?
最开始,人们使用算盘。
后来,人们用电脑。
再后来,人们有了网络。
再后来,中国人口大爆炸,男女比例男的比女的多3700万,这三千多万人没事干,都去上网。于是服务器吃不消了。
于是人们就发明了牛逼的技术,用更好更多的服务器。
再后来,人更多了,于是服务器也更多了。
但事实上这样的效果并不好,过度繁重的结构加大了网站设计和构架的难度,而且越是复杂的系统越是不稳定。有可能一个出问题,这样一个完整的系统就彻底挂掉。如果考虑到系统的崩溃情况,那势必要引入一个更复杂的方案来保证不同的服务器可以做不同的支援。这是一个无解的循环,大量的计算资源被浪费在无限制的互相纠结中,很快到了瓶颈。
人们想,那我不用这么乱七八糟复杂的系统,我上个极其牛逼的服务器不就好了?可是,太贵了,而且最牛逼的也还没制造出来……
于是人们想到了一个好办法。将服务器不是简单地链接起来,说你是缓存,我是数据库。而是并发使用系统资源,每个操作请求都可以按照一定的规则分割成小片段,分给不同的机器同时运算,每个机器其实只要做很小的计算就可以了,哪怕是286的机器都能轻松完成。最后将这些机器的计算结果整合,输出给用户。
对用户而言,他其实根本面对的不是许多机器,而是一个似乎真正存在的计算能力巨大无比的单个服务器。事实上这个服务器是不存在的。但它拥有着成千上万台服务器的能力,下面来看实例。
实际上过程没这么简单。哪怕是统计收集资料的过程也会占据可怕的处理时间。这就将云计算的任务进一步划分下去,哪个服务器的CPU干什么,处理哪个任务段。这个其实可以由算法安排成自动分配的。总之,压榨每一个步骤的潜力,让一个任务被服务器集群们一起上,自然能飞速达成。别忘了,云计算不是弄个两三台服务器就可以达成的。云计算虽然和分布式计算有着深厚的渊源,但我们现在说的云计算基本上还是海量级别的服务器基数才能达成的。说成千上万台服务器绝不夸张。
过去我们做的是加法。用户请求多,计算任务重,那么就把服务器叠加,这是一个计算能力的加法。云计算走的另一个方向,我们在已有计算资源的基础不变的情况下,把用户的任务请求做减法。一个请求进来,我们把它变成许多个小任务段,最后汇总出去给用户一个完整的结果。
对用户来说,他根本感觉不到里面哪个CPU做了什么处理,哪部分是哪部分拼接起来的,他就感觉自己面对一台5亿内存3亿GHz的巨无霸电脑一样。用户对这样的计算莫名其妙,云里雾里的,于是他就把这个东西,叫做云计算。
上面对百度的例子其实连雏形都不算,实际上照样有许多的节点在里面,但总的意思上没错。工程师主要潜心的是算法,提高输出速度这些方面的考虑。除了初期架构和部署的麻烦外,以后考虑的主要还是搜索引擎本身的功能实现了。
PS:以上纯为扯淡。我说的是真是假,哪里可信哪里可以嘲笑,你自己看着办。
什么是云计算呢?
最开始,人们使用算盘。
后来,人们用电脑。
再后来,人们有了网络。
再后来,中国人口大爆炸,男女比例男的比女的多3700万,这三千多万人没事干,都去上网。于是服务器吃不消了。
于是人们就发明了牛逼的技术,用更好更多的服务器。
再后来,人更多了,于是服务器也更多了。
但事实上这样的效果并不好,过度繁重的结构加大了网站设计和构架的难度,而且越是复杂的系统越是不稳定。有可能一个出问题,这样一个完整的系统就彻底挂掉。如果考虑到系统的崩溃情况,那势必要引入一个更复杂的方案来保证不同的服务器可以做不同的支援。这是一个无解的循环,大量的计算资源被浪费在无限制的互相纠结中,很快到了瓶颈。
人们想,那我不用这么乱七八糟复杂的系统,我上个极其牛逼的服务器不就好了?可是,太贵了,而且最牛逼的也还没制造出来……
于是人们想到了一个好办法。将服务器不是简单地链接起来,说你是缓存,我是数据库。而是并发使用系统资源,每个操作请求都可以按照一定的规则分割成小片段,分给不同的机器同时运算,每个机器其实只要做很小的计算就可以了,哪怕是286的机器都能轻松完成。最后将这些机器的计算结果整合,输出给用户。
对用户而言,他其实根本面对的不是许多机器,而是一个似乎真正存在的计算能力巨大无比的单个服务器。事实上这个服务器是不存在的。但它拥有着成千上万台服务器的能力,下面来看实例。
实际上过程没这么简单。哪怕是统计收集资料的过程也会占据可怕的处理时间。这就将云计算的任务进一步划分下去,哪个服务器的CPU干什么,处理哪个任务段。这个其实可以由算法安排成自动分配的。总之,压榨每一个步骤的潜力,让一个任务被服务器集群们一起上,自然能飞速达成。别忘了,云计算不是弄个两三台服务器就可以达成的。云计算虽然和分布式计算有着深厚的渊源,但我们现在说的云计算基本上还是海量级别的服务器基数才能达成的。说成千上万台服务器绝不夸张。
过去我们做的是加法。用户请求多,计算任务重,那么就把服务器叠加,这是一个计算能力的加法。云计算走的另一个方向,我们在已有计算资源的基础不变的情况下,把用户的任务请求做减法。一个请求进来,我们把它变成许多个小任务段,最后汇总出去给用户一个完整的结果。
对用户来说,他根本感觉不到里面哪个CPU做了什么处理,哪部分是哪部分拼接起来的,他就感觉自己面对一台5亿内存3亿GHz的巨无霸电脑一样。用户对这样的计算莫名其妙,云里雾里的,于是他就把这个东西,叫做云计算。
上面对百度的例子其实连雏形都不算,实际上照样有许多的节点在里面,但总的意思上没错。工程师主要潜心的是算法,提高输出速度这些方面的考虑。除了初期架构和部署的麻烦外,以后考虑的主要还是搜索引擎本身的功能实现了。
PS:以上纯为扯淡。我说的是真是假,哪里可信哪里可以嘲笑,你自己看着办。