存档

文章标签 ‘python’

Google App Engine试用与感受

2010年5月27日 没有评论

google app engine是目前google的云应用中的最高级别的猛将。这两个星期试用了一下这个App engine。App engine是用来构建网络应用程序,例如你可以在上边开发一个blog程序,然后托管在google app engine上边,你不用再找主机托管商了,你可以使用免费版本,免费版本基本上有足够的配额给一般用户使用。当用户量增加后,你不用担心服务器的扩展。google会帮你做好一切,当然这样你需要给点钱。目前免费账号的程序可以使用可使用多达 500 MB 的存储空间和多达每月 500 万的页面浏览量(官方介绍资料)。一般用户可以用来做独立blog,有朋友已经写好了一个在app engine上运行的blog程序了– Micolog

目前app可以使用的语言有java和python。我无需思考就选择了python来做试验。因为我讨厌java。虽然我不会python,但是学习起来一点困难都没有。脚本语言不用关心内存管理。(在这里pk下java的内存管理,号称不用关心内存泄漏问题,但是实际上到处都是陷阱)。

这里讲讲App Engine需要注意的问题。开发环境一定要安装google所讲的python进行配置。不要使用python.26。需要下载新版本的App engine。我就在这个环境配置中吃了苦头。因为很久以前已经安装过App engine就旧版本。所在这次试用的时候就没有再安装新版本,发觉有些教程上边的程序不能运行,升级了app engine就可以了。

还有就注意是python的的环境。由于发布程序上服务器需要ssl认证,需要为python 2.5的环境安装ssl模块(http://pypi.python.org/pypi/ssl),安装编译ssl模块需要安装mingw32进行编译,并需要下边两个库。

libgw32c-0.4-lib.zip(http://nchc.dl.sourceforge.net/project/gnuwin32/libgw32c/0.4/libgw32c-0.4-lib.zip)
openssl-0.9.8h-1-lib.zip(http://gnuwin32.sourceforge.net/packages/openssl.htm)

另外要注意的是你的python环境是完全安装的版本,我开始使用的python版本是安装别的软件时候带的python2.5。结果这个python包并没有带编译模块的头文件。折腾了我一个早上的时间。不过我发觉app engine 1.3.3的版本在没有ssl的情况下也可以发布程序上服务器,不过没有了加密,很容易把你google的账号密码泄露出去了。

试用的时候发觉app engine的GQL的限制挺多的。使用上并没有sql那么变化多端的查询方式。有一定的局限性。

使用的时候要注意数据的索引(index.yaml),我在测试的时候开始没有注意索引这个东西,发现一些查询在本机上的测试环境上运行的时候ok的。但是当上载到服务器就运行失败。提示索引有问题。原来我试验的时候使用了google的demo程序guestbook。在原有的index.yaml文件中有些旧的数据索引,但是在我的新程序中并没有这些数据,导致上传index.yaml文件的时候失败。后来把这些数据删除了就可以了。其实只要你创建index.yaml文件,并插入下边内容。

indexes:
# AUTOGENERATED

基本上你不用关心文件还需要填写那些内容。在本机测试环境中index.yaml文件的内容可以根据你的程序中的查询语句自动生成的。上传到服务器的时候需要把这个index.yaml文件发布到服务器。

如果服务器你本身有数据,当你上传新的index.yaml文件的时候,服务器需要一段时间重新编制索引,需要等待索引编制完毕后你才可以测试与该索引相关的程序。

分类: IT, 编程 标签: , , ,