10

微软,Google云计算基础技术的比较

2009年8月13日

感谢 克莱沃曼 的投递。
我想现在几乎没有人没有听说过“云计算”这个术语了,但是能明白云计算是怎么回事的人可能就是少数了,而在云计算的理解上也是因人而异,可能非常不同。这也不算不正常,因为云计算只是个概念,是个方向,很多时候大家都只是看到,抓到,感受到那么一点点,好比盲人摸象。就算大公司的理解也是千差万别,更何况每一个人了。我今天想通过对比微软和Google的云计算的基础技术来阐述一下自己对云计算的理解。首先我想澄清一些概念:

  • 云计算:现在最泛泛的概念就是云计算了。由于计算是其中的重点,我们经常把云上的所有东西统称为云计算,这就很容易使人感到迷惑。我个人认为云计算有两种context,一个就是计算,发生在云上的计算。另外一个是我刚提到的泛泛的概念,比如把云存储也归于云计算了。所以大家看相关文章的时候,一旦看到云计算要搞清楚context,否则就容易迷糊。而且我发现很多文章的作者本身对这两个概念也很迷糊。我在跟很多人讨论云计算的时候,也正是这个原因使得讨论无法进行。我个人倾向于把云和云计算区分开,就像把计算机和CPU的概念区分开,虽然CPU是计算机的核心。当然,这不是由我来作主的。
  • Server和client:我发现在讨论云计算的时候,不但需要区分上边讲的两个context,还需要区分server端和client端。如果从计算的角度来说,那当然server端是重点了,毕竟计算在server上产生。可是如果从云的整体来说,server端和client端就都很重要。而如果从用户的角度来讲,那就应该是client端最重要了,因为计算的发生对用户来讲是透明的,而client端的交互最重要。很多时候在讨论云计算的时候,人们竟然把client端跟server端混着来讨论。比如我在写livemesh与云计算的文章的时候,很多人竟然把windows azure拿进来讨论。我最近还看到有些文章竟然拿Chrome OS和Winows Azure进行讨论。
  • 由于以上原因,为了减少混乱,我会把云计算按照计算的context来讲,而把泛泛的概念直接称为云。我在讨论技术的时候,会把他们分为client和server端分别进行比较的。
  • Cloud OS与Web OS。在云计算概念流行以前,人们更多的是谈论Web OS。现在人们谈论的更多的是云计算,因此Cloud OS和Web OS的概念就又混淆了。可能不少人认为是一个东西,可是从我个方面的得到的信息来看,我们基本上可以用client/server端来区分他们。Cloud OS是server端的,比如微软的windows azure就号称Cloud OS。而Web OS则是客户端的,比如市面上的各种号称Web OS的网站,比如Facebook,比如Google的Chrome Browser,Chrome OS等等。目前来讲,Web OS还没有明确的概念,所有产品基本都是试验性质的,但是Web OS在client端还是比较明确的。
  • 对于云来讲,不同的人关心的重点不同。网络服务提供商,开发人员关心的是server端的cloud OS,而用户关心的是client端的web os。因此,对于大多数人都作为普通用户来讲,就没有太大必要去注意server端的那些新技术,新术语了,也不要被他们的出现搞糊涂了。

下面的表格列出了微软和Google公司云计算基础技术和产品,随后有我个人的讲解。

20090813-ms-goog-cloud

  • Cloud OS:由于Google App Engine只支持Python和Java,而我不想学Python也不喜欢Java,所以没有任何体验。而Windows Azure则体现出了微软强大的实力。从下至上,除了hardware则清一色使用微软自己的产品。OS: Server2008, VM: Hyper-V, Host: IIS, Dev tools: Visual Studio。从Azure来看,微软在云上开发了一套开发平台,从而改变了网络服务提供商的经营和开发模式。他们不再需要买自己的服务器,而转为租用微软的虚拟机,开发则是通过微软提供的接口开发在IIS上的web服务。重点是他们不需要考虑sacalability,而是按计算的需要和使用情况向微软付钱,就好比我们现在买电一样。而云计算的提供商则相当于现在的电力公司一样,使得计算变成一种资源去交易。由于我不是搞这行的,所以,我更多的注意力放在了client端。
  • RIA:要想建立client端的Web OS,则需要依赖于rich internet application。这方面的技术主要有三种,Adobe的Flash,微软的Silverlight以及Google推崇的AJAX。以前用过一些Web OS都是建立在Flash上, 我就感觉很别扭。一是因为既然是OS还需要依赖Flash?二是因为点右键总是有个Adobe的影子,而且不能customize。其实也正是因为这个原因使得Google在很早就放弃使用Flash了,而进行了更灵活的Javascript的大力支持。微软的Silverlight则正像是Flash的翻版,到现在为止我基本上没看到过什么基于Silverlight的应用,好像主要是播放视频。而Google自己基于javascript的Gmail, reader, 以及最近公布的集大成的Ajax的顶尖作品Google Wave等,都让我在RIA这个方向上很支持Google。
  • Browser:前边说过Google大力推行Javascript,而运行速度慢是Javascript的一个致命的问题,使得在和Flash, Silverlight的竞争中处于劣势。基于这个原因,Google推出了自己的Browser Chrome,并且内嵌了V8的JS的引擎,使得javascript的运行效率大大提高,从而可以用javascript开发出更高级的界面。比如,我看过JS实现的一些SD,动画的demo,都还是比较出色。而Chrome又大力支持HTML5,其中重要的一点是支持了视频,从而使得Flash和Silverlight的竞争力进一步降低。而且,javascript的好处在于浏览器本身就支持,不用像Flash, Silverlight还需要单独安装。进一步说,Chrome对JS的优化直接推动了Firefox和IE对JS的优化,而JS的运行效率也成为了浏览器的最重要的指标之一,使得Javascript的前景更加的光明。
  • Web OS:现在已经比较明确的看出来了Google的Web OS就是即将公开源代码的Chrome OS,而对于普通用户来讲,Chrome OS和Chrome Browser基本就是一个东西。因为普通用户对那块Linux内核是透明的,也是不在乎的。所以,我们只要看Chrome Browser的发展,就应该能推断出Chrome OS大概的样子。Chrome OS最大的焦点在于替换掉Windows,而Chrome Browser将要增加的同步功能,使得Google的Web OS更加完善,而谣传了许久的GDrive如果能够稍后推出的话,则Google的Web OS将基本成形。微软目前并没有一个所谓的Web OS,而最像Web OS的产品则是Live Mesh。Live Mesh我以前已经谈论过了,就不再重复了,简单来讲我很失望。
  • Offline:云计算的一个重大问题就是离线怎么办?这也是很多人质疑云计算的一个主要原因。Google的解决方案是Google Gears, 它内嵌于Chrome里,也可以安装到其他浏览器上。Google Gears使得用户在离线的时候还可以访问,操作数据。微软的主要解决方案是Mesh, 通过同步各种设备。最新的Silverlight也加入了一定的离线支持。
  • OOB (Out of Browser): 在浏览器中运行的Web应用界面与传统桌面软件比起来总是死板,不够灵活的。因此,人们就产生了需求,想在浏览器之外运行web应用。Adobe的Air可以实现这个功能,而Google的解决方案是Chrome里的shortcuts。给Web应用建立了shortcuts之后,就可以按照人们习惯的方式启动这个应用,而界面也很传统软件非常接近了。微软的解决方案则是Mesh, 或者最新的Silverlight OOB功能。

综上所述,我们可以清楚地看到,Google的云技术的client端的核心就是Chrome浏览器,所有相关的技术都嵌入到了浏览器中,甚至操作系统的内核也算嵌到了浏览器中,这也是为什么Google为它Browser和OS起了一个同样的名字。所以,我们可以说Google Chrome未来就是一个Web OS。而反观微软,则是把这些feature分散在了几个不同的产品中:Windows, IE, Silverlight, Live Mesh,并没有一个统一的解决方案。因此,在云计算的战略上,还是感觉Google比微软看的更高更远一些。

本站文章除注明转载外,均为本站原创编译
转载请注明:文章转载自:谷奥——探寻谷歌的奥秘 [http://www.guao.hk]
本文标题:微软,Google云计算基础技术的比较
本文地址:http://www.guao.hk/posts/comparing-cloud-tech-between-microsoft-and-google.html
本文短网址:http://guao.cc/2yK
作者: 分类: 观点/评论 标签: , ,
  1. McFRoG
    2011年12月20日16:41 | #1

    好早的文章,最近发展成什么样了,再来篇文章呗。

    Thumb up 0 Thumb down 0

  2. 病虎
    2009年9月3日01:30 | #2

    排版太差,看起来眼睛累。各自然段之间不能空一行吗?

    Thumb up 0 Thumb down 0

  3. 2009年8月14日00:22 | #3

    Facebook的开发平台以及提供的服务都是浏览器端的,他们并没有开放自己Server端的计算。所以它勉强符合WebOS的定义,不能成为CloudOS。

    Thumb up 0 Thumb down 0

  4. popoer
    2009年8月13日22:22 | #4

    为什么说facebook是客户端呢?

    Thumb up 0 Thumb down 0

  5. ray
    2009年8月13日19:34 | #5

    那张图……不知道为什么很有感觉

    Thumb up 0 Thumb down 0

  6. 2009年8月13日02:48 | #6

    Amazon的EC2是在server端的服务,我这篇文章主要强调client端。据我了解,EC2主要是提供了虚拟机的服务,比如Linux,Windows Server。用户可以租用虚拟机。做的比Google,微软更简单一些,也更容易实现一些,所以比较早。Google和微软都是在虚拟机上有一套开发平台。

    Thumb up 0 Thumb down 0

  7. 2009年8月13日00:49 | #7

    不知道Amazon提供的云计算服务如何?如果能加上Amazon一起横向对比就更好了

    Thumb up 0 Thumb down 0

  1. 2009年8月18日10:49 | #1
  2. 2009年8月26日15:11 | #2
  3. 2011年3月22日12:57 | #3
首次留言需审核,之后不会再审核。由于缓存机制您的留言可能不会立即显示出来,请稍后刷新本页面

您可以直接点击别人评论右侧的回复,这样您的回复评论将同时发到原作者信箱