2008年8月5日星期二

App Engine:在Google上托管你的应用

今天晚上第二次CampFireOne上Google Code将会宣布App Engine——给Web开发人员提供的托管平台。这一服务将会进入封闭测试阶段,10,000名开发人员将被允许参加进来,可谓”先到先尝”。
终于等到了Google平台。传说Google的服务器服务以及开发工具已经有好几年了。自从Amazon Web Services提供了很好的类似服务之后我们都知道Google加入进来是迟早的事(下一个是Microsoft无疑)。App Engine和AWS的服务比较不完全相同,Amazon发布的是一套独立的服务,你可以使用它们创造一个通用计算平台,这些服务可以共同工作,但并不绑在一起。
App Engine则几乎是一个Web应用引擎。将很多类似AWS在独立包中提供的功能绑到一起:类似S3的存储功能,类似EC2的自扩展和处理能力,以及类似 SimpleDB的数据库功能。App Engine同时还提供一些AWS没有的能力比如Python环境、Google API,以及有可能的部分免费服务。App Engine更像是其他一些Web平台服务,比如Bungee Labs(类似但有自己的语言),Heroku(支持Rails),还有气数已尽的Zimki(它支持服务器端JavaScript,请参考Radar文章)。
App Engine包括可扩展的数据存储(基于BigTable和GFS,可以参看TechCrunch星期五的报道,这将允许应用扩展到数百万行数据的数百万用户级别),Python运行时环境——受Django(模板系统)影响极大,以及一个开源Python日志系统。App Engine针对应用可以提供自扩展和故障恢复的能力。全球配置设定则提供了认证、分析和对Google服务API的访问。还有可下载的SDK,能够进行本地开发和调试。本地开发的应用移到Web上只需要一条命令。
所有的应用将会在appspot.com域名下。每个开发人员目前有三个应用ID。应用上载后就是http://application-id.appspot.com。开发人员当然可以把自己的域名指过来。你可以在application gallery看到当前的一组应用。我喜欢appspot这个域名,这是对Blogspot的一种敬意,和Jotspot也很贴合。
App Engine最初包括几个API。User API允许应用认证Google 帐户。Mail API允许应用发邮件——从开发人员注册的邮件地址发送。其他API则允许与数据库的交互以及从URL抓取内容。
该服务最开始是免费的,还提供500MB的存储空间以及针对每月5百万页的充足带宽和处理器能力。一些部分的服务将会永远免费(具体有多少会在测试期间确定)。流行的应用最终是要为它的成功付费的。我猜未来Adsense帐号会连到应用上,这样App Engine的费用就可以从那里支付了。
另外值得指出的是App Engine不是一个通用计算平台。它不是打算为批处理使用。它是一个请求驱动的平台。我能想象一些AppSpot前端会使用EC2作批处理。
还要注意使用Python的情况。我提过的每一个托管平台都选择了一个特定语言。Google选择了Python而且所有Python内置工具似乎受Django(一个Python Web框架)影响极大。App Engine未来将会与其他Python框架兼容(这些在文档中有所提及:EZT,Cheetah, ClearSilver,Quixote,Django,CherryPy)。
我喜欢Google的方式。他们很清楚Google需要更多的人在Web上(更多的页面意味着更多的广告)。他们为需要建立快捷应用的用户提供平台,真正的问题是:当应用成功后还会留在这里吗?
发这个帖子的时候我正在CampFireOne,Google将会在这里宣布App Engine。如果你有任何问题要问可以贴在评论里或直接在Twitter上发信息给我。我会替你们问。
Google会在5月24日旧金山的Web 2.0 Expo上介绍App Engine。这一部分会议对任何佩戴Expo徽章的人开放。Google还将在5月28-29日自己的会议Google I/O上介绍App Engine。