谷歌为世界提供了网络服务是一个举世公认的事实,很多用户相信谷歌的服务比其他任何他们所熟悉的服务都要优秀。
因此谷歌应用引擎(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那样爱上谷歌应用程序引擎的"。