这就是云,就这么简单!

时间:2023-02-10 15:37:10

原文名称: 让电脑功能无限扩展--说说云计算

http://www.tianya.cn/publicforum/content/itinfo/1/161481.shtml


 让电脑功能无限扩展——说说云计算 

 十多年前,我在大学学习做点小开发,课程设计,毕业设计什么的。
  有个项目,所用计算机是一台386。真是老古董啊,虽然它的价格放现在,能买好几台电脑。
  程序越写越大,以至于我按下F9开始Building程序,要等10几分钟,甚至半个小时才能看到结果。
  我就在这个时间里休息,在教研室外面的过道散步,思考。
  久而久之,同学们一看我在外面溜达,就知道:你又在run啊?
  解决办法当然也有,比如把程序分解成n个文件,每次编译有变化的那一个,尽量一天时间里只building一次或者两次。
  但实际上,我当时非常垂涎旁边的一台486工控机,还有隔壁机房的586,也就是Pentium服务器。
  我在散步的时候想:既然这台486工控机和隔壁586服务器服务器大多数时间是空闲的,
  为什么不把他们连成网络,
  当我要building程序的时候,通过网络把我的程序源代码发到空闲的计算机上,最多几分钟跑完,然后把编译错误或者运行结果,
  返回到我的计算机上即可,不是非常提升效率的一件事情吗?
    不过,现实生活走的是另外一条路,
  人们都很熟悉:386,486,Pentium,Pentium II……到现在的多核心CPU。
  在286,386上用电脑,运行很多程序都能感觉到它很慢,
  用486的时候,就只有编译一些大程序能感觉到了,
  用586,building程序只需等你去打杯水就能看到结果。
  过去不流畅的CAD软件,也能比较流畅了,
  ………………

工作站和服务器当然也同时发展,性能更加强大起来了,
  只不过,因为客户端机器的性能日益强大,人们不太会想到自己客户端上有什么程序,需要让服务器端来协同运行。
  而且,什么事情都在本机解决,简单方便,整体系统搭建设计上,也简单得多。
  所以,PC机性能日益提升,到今天,可以说,绝大多数程序,都能以完美的速度在电脑上运行,
  你不太能感觉到自己电脑多慢多慢,这和10多年前的体验,是完全不一样的。
  我当年爱打一款叫红色警报的游戏,有一次安装在家里的计算机上,想怀旧一下,结果运行速度太快了,我连最简单的模式,都玩不过电脑。
  今天的电脑,不但够用,而且按照8020原则,80%的时候,或者说跑80%的程序时候,PC性能是过剩的。空闲的。
  大家可以非常容易发现这一点,启动任务管理器,你可以看到你的CPU占有率一般都低于5%,内存占有率一般也低于50%。
  (Core 2 duo及其以上级别电脑,至少2GB。)
  但是,还是有一些情况下,运行某些应用,你会感觉电脑性能是不够用的,
  比如,跑某些大型CAD应用,编辑处理家里的视频,速度还是觉得一般。
  如果个人想测试的话,和简单的办法,就是压缩你计算机上一个1GB的文件夹,
  把它打包成一个RAR文件,你会发现,还是要不少时间才能完成。
  
  这就是一个矛盾,
  一方面,大多数时候机器性能过剩,
  另外一方面,运行少量应用,确实觉得自己计算机性能不够。如果继续采用过去提升客户端性能的办法,成本很不值得。
  很简单,如果一个软件开发公司,100多个软件工程师,100多台PC,
  现在性能基本够用,但跑新程序,新应用有些吃力。如果全部更换新电脑,100多台有些让人不可接受。
  但如果能通过一个网络,让那些吃力部分的应用,跑在几台新工作站上,你选那个方案?
  另外一方面,
  过去十多年里,除了个人计算机迅猛发展之外,互联网也高歌猛进,个别计算性能上的体验让人大吃一惊。
  我记得我第一次用Google搜索,刷,搜索结果出来了。
  然后计算机前面的我,傻掉了。
  原因很简单,我们在自己硬盘上搜索一个东西,有时候还需要几分钟呢,
  但人家Google在全世界帮我搜索,如何做到一下子就出来了呢,
  这是什么算法,这是什么原理……后面是不是有一台超级计算机啊??
  后来披露的资料显示,Google创新,发明了一种办法,用廉价的PC(相对于服务器和工作站而言)组成一个计算阵列网络,
  自己开发的一种操作系统,能让大量运算分布运行在各台PC上,
  但是对外,给人的感觉是一台超级计算机,最开始,人们把这个叫分布式运算,
  后来叫网格计算,我门不去探究这背后的原理,统一把他们叫网络运算,
  设想,未来人们都从网上订购各种应用服务,来弥补自己个人电脑性能或者使用方便性上的不足。
  这几年,这种基于互联网的运算,进化了一步,取了一个好听的名字,叫云计算。
  这个名字,一下子大众化了起来,也把网络应用就像水和电一样的未来设想,向前推进了一步。

回到前面的案例,100多台PC不用更新,甚至也不用买新的工作站了,
  有了云计算,只需要到网上去租用“超级计算机”,把需要大运算的部分工作,交给它做即可。
  当然,这有一个渐进的过程,第一是网络传播速度要求够快,你上传一个文件给云,云把计算结果返回给你,
  传播速度很关键,别编译了我的计算结果,因为文件庞大,半天看不到效果,这个体验就太差了。
  第二,安全,我开发的程序,让云帮我调试,结果,文件泄漏了,真倒霉。实在是太……
  第三,云上要有这样的应用。开发云上的应用,比现在的软件模式,有很多优点,比如解决bug容易升级容易;还有发布容易防盗版容易。
  速度和安全,现在基本上正在不断提升中。第三个也在迅猛发展中,我估计很快会有各种各样基于轻客户端和云计算相结合的应用出现。
  
  其实现实中已经有了这样的案例,
  十年前,IBM已经有了一个不错的语言输入软件,但需要人们端坐在电脑前用普通话认真说话,效率还不算高,
  作为玩具,流行了一阵,就消失了。一个是当时计算机硬件限制,复杂算法不敢上。一个是升级改变调整算法不方便。
  但我最近在我的手机上安装了两个语音输入软件,感觉相当的好用。
  分析一下,这两个软件比当年IBM的软件牛B之处在于,计算都在后台,都在云上,我说一句话,它就传到后台服务器端转化成文字返回。
  看起来和以前没有不同,用户也感觉到不同,但是,我们千千万万人用这个软件,后台系统,就收集了千千万万人的语音,不断优化改进算法,最后越来越准确,
  而过去IBM纯客户端的语音输入软件,算法完全是一个死的,用我的话说,没有深交互嘛,
  不能根据人的口音特点,完善调整算法。只能在实验室里提高,收集采集的样本,实在太少了。
  我相信,未来很多的软件,都会走上这条道路,他们会不断根据人们在前端使用这个软件的体验,修正自己的系统。
  
  从这个基于云的语音输入法的案例,我们可以总结未来一类软件的运行模式:
  在客户端,软件只负责采集数据(比如把人说的话录制下来),传输数据到云上,云上处理后,传输给客户端,客户端负责显示(显示人说的文字)。
  客户端对性能的需求,大大降低,你看,我现在的手机,性能一般的很,但就能完成语音采集和传输的任务即可了。
  复杂的运输,完全交给云即可。客户端性能,不需要再大幅度提升,关键是提升人们和客户端交互的体验。
  
  我们可以思考一下过去的系统,是不是因为没有云计算,而显得止步不前的。
  很快,我们在家里就讨论并找到一个案例。
  也是大约十年前,我们讨论开发一个数字产品,电子血压计,系统的关键,当然是算法,
  可是,在优化这个算法的时候,就会发现,我们采集的样本太少了,特别瘦和特别胖的人,完全是测试不准确的,
  而且,人和人不同,都还有各自的特点,可是要优化这个算法系统,完全是不可能的,需要的样本,工作量太大,时间太长,除非你拥有100家医院。
  查了所有相关专利和算法,你会发现,大多是实验室的产品,样本数量远远不够用。
  所以,到今天你可能都会发现,其实现在市场上开发的大量数字血压计,对某些人群,是测试不准确的,
  但如果有了云计算………………
  并且,如果还有了个性化的个人门户,你的血压特点,你的语音特点,都会记录在内,针对你个人优化,更加准确。
  
  我估计,云计算,会首先在这些领域,这类应用中获得突破,因为完全纯客户端,做不好,甚至可以说搞不定。
  你想想还有那些领域,那些算法,通过云计算会干得更好,
  说不定就是一个创新改变世界的想法。