这两天玩了玩 Google App Engine,感觉所谓云计算就是一个屏蔽底层细节的操作系统,只不过这个操作系统是管理分布式计算的。从对用户起的作用来说,与我们现在用的 Linux Windows 本质上没什么区别。
让我们想想,计算机发展早期,没有现代操作系统的时候,我们想往磁盘上写入一些内容是一种什么情况。首先你要告诉机器使用哪个磁头,保存到哪个扇区、几号磁道;其次,你要自己控制 CPU,操作它的每一步动作;最后,你还要自己确定使用哪一段内存,确保这段内存空间不会对别的程序有影响。所有这些工作你都要自己完成。这种情况下,不但效率低下,而且很容易出错。
而现代操作系统的发展,把所有这些细节都屏蔽了。我们要用 Java 向磁盘写点数据,只需要几条语句,至于数据被写到磁盘的什么位置,怎么使用CPU,怎么开辟内存缓存区,我们都不用管,操作系统在后台自动帮你完成这些工作,他不但效率高,而且基本不会出错。从这个意义上说,Dos、Linux、Windows 也是一块块“云”,把复杂的细节放到云后面,让我们可以关注更重要的东西。
本来,目前这些操作系统已经可以满足我们的要求,例如我们做个个人网站、或者配置个企业服务器,都可以工作得很好。
但是,随着一些超大型的互联网公司的出现,一些新的、麻烦的细节问题又出现了,原先的老式的“云”已经无法遮挡住这些新的问题。比如,像 Google、亚马逊等这些大型的互联网公司,动辄就拥有十几万台服务器,如果你是 Google 公司的一名员工,你完成了一些代码,想上传到公司的服务器让它工作,但是这里有十几万台服务器,你选择哪台呢?是三万八千五百四六号服务器比较好,还是六万九千八百二三好服务器比较好呢?而且,不同的服务器有各种各样的数据库,有各种各样的操作系统,等等等等,一切你都要自己考虑。于是,我们又回到了早年那种效率低下,容易出错的境地。
好在,电脑本来就是一种自动化的机器,我们做不好,交给机器管理就是了。于是,现在所说的“云”出现了。
你还是 Google 公司的一名员工,你同样完成了一些代码,想上传到公司的服务器让它工作。但是你不用考虑公司有多少台服务器,你只要告诉“云”,我要上传这些文件,它就会帮你完成这项工作。具体存到那台服务器上你不用管,有可能今天在这台上,或许明天来个“磁盘整理”又跑到那台上去了,但是不管这些文件在那里,你需要它的时候只要告诉“云”,拿回来,它就自动帮你找到。同样,你有一条数据,只要告诉“云”,存入数据库,具体什么类型的数据库,怎么连接,怎么释放,你都不用操心。云屏蔽了所有这些细节。
从我试用两天 GAE 感觉,它仍然很低级,只提供了一些底层服务,用户接口并不友好。如果类比成 PC 操作系统,甚至还达不到 Dos 的水平。打个比方,要玩PC,你可能不需要计算机组成原理的知识了,但是你想玩得转,必须得懂操作系统原理和汇编语言,这让人很不爽。
当然,底层服务完善了,上层接口也会慢慢友好的。我的设想的用户接口,文件管理应该模拟 ftp、数据库应该模拟关系型数据库管理,表面上看起来,用户与过去管理一个单台服务器、或者虚拟主机没有任何区别。当然,这些模拟只是表面上看起来和过去一样,实际上底层已经发生了很大的变化。这样,以前的习惯和知识都不用改变,这才是真正的“云”。如果要暴露过多的细节需要考虑,还都是一些新创造出来的知识,那还能称做“云”吗?
建议:
1、如果你是玩票性质,想自己弄个免费虚拟主机玩玩,可以考虑;但是要付出学习成本;
2、如果你的应用需要几百台、甚至几千台服务器,你也可以考虑租用“云服务”。虽然要付出学习成本,但是可以节约大规模硬件管理成本。
3、如果你想弄个个人应用,建议还是租用虚拟主机,现在价格都很便宜;如果你是企业应用,但是服务器数量很少,最好也按照老式方法来。
4、如果你有几千台服务器,但你是技术牛人,建议你自行开发出比 Google 亚马逊还牛的“云”操作系统
posted on 2009-05-06 23:05
左洸 阅读(2509)
评论(7) 编辑 收藏