技术趋势:谷歌和它的开放“云”

 谷歌为世界提供了网络服务是一个举世公认的事实,很多用户相信谷歌的服务比其他任何他们所熟悉的服务都要优秀。

  因此谷歌应用引擎(App Engine)也是如此,这项推出1年半时间的服务可以让外部研发人员在公司自己的分布式基础架构上构建和运行网络应用程序。根据埃文斯数据公司的市场研究结果显示,世界各地的研发人员都认为谷歌应用引擎将在所谓的公共云竞赛中超越亚马逊。他们甚至决定以谷歌云作为赌注来避免可怕的"供应商锁定"。

技术趋势:谷歌和它的开放“云”

  "应用程序引擎是一个只限使用雪橇的滑雪胜地。不能使用滑雪板,不能使用雪地汽车。只能是雪橇。雪橇当然不错,他们可你了解这种思维方式。谷歌 说这是开放的,所以它必须是开放的。谷歌表示他们已经开放了100多万行代码,托管的开源项目数量超过15万,它的网络浏览器是开放的,它的移动操作系统 也是开放的-所以它的云也必须开放。而且谷歌的云必须比亚马逊的云更具兼容性。

  只不过它不是。

  谷歌著名的分布式基础设施绝不是开放的。尽管Facebook和雅虎喜欢这样!通过在开源代码的基础上运行他们的后端配置,谷歌公司建立了他们 自己的专有平台-从谷歌文件系统(GFS)到数字运算MapReduce平台再到BigTable分布式数据库都是如此-这些都受到了极为谨慎的保护。谷 歌甚至不愿意对此进行评论。

  更重要的是,这些Googly平台对在上面构建应用程序等活动设置了广泛的限制。无论您是一位谷歌内部的研发人员或使用谷歌应用程序引擎的外界 人士都是如此。有正当的理由可以对此作出解释。谷歌的想法是让所有的应用程序都适用于在公司数据中心的全球网络内运行的预定义模板,以便网络应用程序的性 能可以按照需求马上得到升级和扩容。

  谷歌公司工程和体系架构事业部资深经理维杰。吉在今年夏天举行的云大会上发表讲话称:"可问题是:你该如何将应用程序用来实际使用基础架构呢?如何分配呢?如何优化呢?这是非常困难的部分。为此你需要投入大量的资金和精力"。

  "人都是懒惰的。他们会说'我不想在受限的空间离设计我的应用程序。谷歌云是一个有限的空间。因此,你需要大量的精力来让人们这样做"。

  对于谷歌应用引擎来说,结果是谷歌会严格限制你可以用来构建所需的研发工具。硅谷云计算集团的创始人塞巴斯蒂安。斯塔迪尔在接受我们采访时表 示"使用应用程序引擎,你就不能随心所欲的使用你喜欢的开源工具"。他举例说,比如你不能使用开放源码的内容管理系统Drupal。 "有些库是你不能使用的。如果你需要CMS软件这样的库,你就完蛋了"。

  更重要的是,很多最常见的电子邮件库它都无法兼容。 "因此如果你想使用发送邮件的开源组件,那就得放弃,自己重新进行应用程序编写。"谷歌有一个塔自己的平台所使用的数据库白名单,如果你的库不在清单之列,要么你无法使用谷歌应用程序引擎要么重新编写程序。

  出于这个原因,斯塔迪尔认为谷歌应用程序引擎并不是吸引大量研发人员蜂拥而至的最佳选择-至少不会那么快。斯塔迪尔表示 "谷歌应用程序引擎所规定的种种限制要确保轻松扩容就需要太多的专业知识,并且在企业里永远都要沿用下去"。

  具有讽刺意味的是,你无法将Ruby on Rails和谷歌应用程序引擎放在一起比较。这种类比只能发生在Python和Java之。

  斯塔迪尔还以网页编程语言Ruby on Rails进一步作了一个比喻。 "就以Ruby on Rails为例,他们在编写应用程序方面的表现卓越。但目前在企业中的使用依然滞后,因为这种语言需要IT人员进行大量的学习"斯塔迪尔又补充说:"斯坦 福大学年轻的的本科生们将会像他们喜欢Ruby on Rails那样爱上谷歌应用程序引擎的"。

  但更大的问题是,如果你大量使用GFS或者BigTable来建立一个App Engine的应用程序,如果你想将他们从谷歌云上挪走,你还需要做大量的重新编写工作。由于这些平台的源代码并不开放,因此你就无法将其安装在你们自己的云或任何其他人的云上。

  当我们在今年早些时候谷歌举行的研发人员大会上提出这个问题,谷歌公司技术工程部副总裁Vic Gundotra以不便透露为由将这一问题断然搁置在一边。研发人员不能使用BigTable的代码,他们可以使用谷歌应用编程接口的代码,他还认为切换 到另一个云是小菜一碟。

  这可能是谷歌公司自己研发人员的问题,也可能不是-与人们对其专有平台都非常熟悉-但涉及每一个人时问题肯定肯定会延伸出去。 "如果你想离开谷歌云,你需要更改你的数据库和关系模型"斯塔迪尔表示"数据模型和数据处理是不同的"。

  尽管埃文斯数据公司的开发人员告诉自己说,这就是所谓的"供应商锁定。"确实,在亚马逊云专有的SimpleDB数据库也面临类似的问题。但是,亚马逊现在也可以提供MySQL。与谷歌的应用程序引擎不同,亚马逊云是一个你可以使用任何你喜欢的开发工具的地方。

  "因此你首先要花钱购买好的雪橇,然后才能前往亚马逊丛林"斯塔迪尔打比喻说 "你仍然可以踩着雪橇四处移动,但它不是最理想的选择。有辆雪地汽车就更好了"

  现在你可能会认为,因为它选择了所谓的"平台云"(相对于亚马逊的基础架构云而言)-你可以更为快速的扩展你的应用程序。目前任职 RightScale云配置公司首席技术官的分布式系统大师Thorsten von Eicken表示 "对厂商锁定的关注和灵活性匮乏的问题正在逐渐迫近和严峻。但他们显然需要大的规模。为了实现这种扩展性,他们已经对应用环境进行了严格的限制"。
但是,我们真的知道应用引擎比亚马逊要更好吗?von Eicken表示 "这是一个很好的问题"。谷歌表示他们会的,所以他们必须这样做。对吗?

  谷歌要求你容忍这种可怕的厂商锁定,以确保你的应用程序能够得到普及。但是如果为了应用软件的普及,你真的就想接受谷歌在锁吗?

  von Eicken表示"在某种程度上,某一天谷歌所说的扩展性会成为是子弹引发的刺痛,我发现这是一剂苦药,如果我甚至都不知道我的应用程序是否会取得成功,那么我为什么要付出这些努力呢"。

  当然,谷歌会比微软更加开放。但它的核心平台绝对是保持关闭的。即使是Android这样表面开放的项目实际也并不像它看起来那样开放。谷歌的Android平台确实开放了部分源代码,但实际推出的知名品牌手持设备的代码实际上也是封闭开发出来的。

  值得我们记住的是谷歌愿意开放另一款表面上的开放式平台:即Chrome OS操作系统。同时这也给给我们带来另一个讽刺。当谷歌准备明天在其山景城总部揭开Chrome OS铬操作系统开放性的神秘面纱,他们甚至对可能参加此次活动的新闻机构都只字未提。这确实只是一件小事情-但却说明了一些大问题。

  最新消息

  谷歌已经打来电话说,他们无法向我们提供出席Chrome OS操作系统发布会的邀请函。谷歌公司告诉我们说是因为没有足够的地方。

posted on 2009-11-27 11:21  only4agile  阅读(190)  评论(0编辑  收藏  举报

导航