【IT168 专稿】Carlos Ble是一个来自西班牙开发者。他所在的公司决定使用Google App Engine(GAE),但是最终放弃了。
这周刚开始的时候,Ble在他的一篇博客中谈到了关于公司放弃使用GAE的13个原因。一天之内,这篇博客已经达到了89000次点击,158个回复。有的评论表示同情,其他的责备Ble,觉得他不应该批判Google,他们认为Ble应该先做更多研究来确定GAE这个平台是否适合其所在公司的需求。
Google 云和工具的开发者关系经理Patrick Chanezon也进行了评论。出于对Chanezon的尊重,以及为了澄清他的顾虑,Ble对博文内容进行了修改,但是还是觉得GAE存在足够多的问题,于是,他坚持了自己批判性的评论。
下面是Ble列出的5个问题,也是他的团队所遇到的影响重大问题:
1、它需要Python 2.5,这是一个非常古老的语言。使用Ubuntu意味着你需要一个具有单独环境的virtualenv或chroot,才能很好地与SDK协调。好吧,这只是一个小小的挫折。
2、你不能在你自己的域(也就他们所谓的裸域名)下使用HTTP,可靠的连接应该通过yourname.appspot.com:这真是太烂了!
3、任何请求的时间都不能超过30秒,否则的话请求就会停止:天啊,这是最痛苦的事情。当我们上传数据到数据库的时候(一个no-sql引擎),上传请求会在30秒之后中断,因此,我们不得不费尽力气将文件切割,克服各种困难来管理这种情况。由于同样的规则,运行后台任务(cron)也变成一个大工程,但是在网站管理的操作中,许多许多任务都需要超过30秒钟才能完成。这样的情形你能想象吗?
4、每一个从一个服务器发到其他网址的GET或POST请求,如果没有在5秒之内完成就会失败。你可以修改配置,但是最多只能是10秒。当你需要中间服务器时,这使得与Twitter和Facebook协同工作成为天方夜谈。这再次加倍了完成看似简单的人物的难度。
5、你不能使用构建于C之上的Python库,只能是用Python写的库:就不要再幻想使用那些很棒的库了。
Ble在9月份的时候写道,Google App Engine老是宕机。他说他们面对着500个错误代码,有时候每天有60%的时间网站处于宕机状态。也就是说,10次有6次,用户访问网站的时候不能登录或使用。
Ble承认,他应该更加谨慎一些,而不是盲目相信Google。
“对我们来说,GAE和Wave和Buzz一样都是失败的,不同的是,这一次我们付了钱。都怪我太顽固了,因为这个平台的背后是一家大公司,但是,我现在已经总结出一个重要的教训:好公司也会犯错。在开发实际的功能之前,我没有作深入的调查。我应该在投入如此多的资金之前进行深入的了解。我真是瞎了眼!”
一些评论者并不同情Ble的遭遇,他们觉得他应该多做调查。
但是就在那时,曾经写过关于Google App Enige书籍的Eugene Ciurana进行了评论:
“Carlos,我在几年前写了第一本Google App Engine编程的书。书出版后,我会经常有机会在一些会议上,做一些关于在App Engine上用Phython和Java进行编程的演讲;我意识到我的“Google App Engine HOWTO”已经成为一个“让人们使用慎用GAE的东西”,并且,最终建议人们不要使用GAE来做任何很关键任务。我很欣赏你的博客,并且已经Tweet了,因为我认为这是一个很重要的、值得借鉴的故事。我所做的大部分工作都是与可扩展性和高可用性有关的。然而,我喜欢把App Engine作为我借鉴的对象,现在只是它很少的一部分,提供无状态的TESTful的Web服务,而不是满状态的应用。真正的应用是继续放在一个常规的数据中心还是把它放到Amazon/Rackapace等等。关于NoSQL系统:很难说是一个数据存储的好例子。App Engine或许已经足够好了,只是你不了解它的警告。好的工具成就好的工作,我建议,你应该定义文档或者是列式数据存储和检索需求,试试mongoDB和Hbase。我们正在将这两个产品用于大企业客户,没有什么问题。祝好!Eugene Ciurana。”
Chanezon在他的评论当中说道,Ble的许多观点Google都是知道的,他表示公司正在改进。
Chanezon还强调,阅读Google App Engine文档很重要,文档中列出了一些限制。这个服务是专为有高可扩展性需求的应用而设计的,这些应用需要实现快速扩展,以适应大量用户或数据。他指出,Gri.pe就是一个例子。
关于这个问题,你怎么看的呢?Ble的担心是否合理?