目前已经听说好几家公司提供了基于互联网的云计算服务,像Google, 亚马逊,Salesforce。我自己实践了了一下Google的APP Engine, 记录下来给大家分享。
Google App Engine提供的计算资源
每个 Google App Engine 应用程序都可使用多达 500MB 的持久存储空间以及可支持每月 500 万综合浏览量的足够带宽和 CPU。
Google App Engine使用的流程
1 帐号申请
如果你还没有Google App Engine的帐号,需要到这个网站创建一个。http://code.google.com/intl/zh-CN/appengine/
2 创建Application ID
使用Google App Engine的帐号登录后,你需要创建Application ID,现在看来好像每个账户可以建10个Applicaiton ID。我们后面上传的应用都要和一个Application ID绑定在一起。
如果你的一个ID是<Application ID 1>,那么其他用户就可以通过 http://<Application ID 1>.appspot.com访问到你的应用。
我的一个ID是iloveagile,所以你可以访问http://iloveagile.appspot.com/看看我做的简单的Samples.
对了,创建Application ID的时候需要输入手机号码,google会发送登录ID到你的手机上。对中国大陆,这个手机号码的输入格式是 +86 13520668668.
3 下载安装开发环境
Google App Engine开发只需2个东西,Google App Engine SDK,Python。 Google App Engine的Online文档里边给了SDK和Python的下载地址。我的开发平台是Windows,不过好像Google给的两个软件的版本都不Work。所以我最后使用了
GoogleAppEngine_1[1].1.9.msi : http://code.google.com/p/googleappengine/downloads/detail?name=GoogleAppEngine_1.1.9.msi&can=2&q=
python-3.0.1.msi : http://www.python.org/download/releases/3.0.1/
得到这两个安装包,在Windows上一路确认就可以装了上。至于其他平台,还没有尝试 :-(
4 开发
开发的code主要是python文件和一个app.yaml描述文件。Python可能很多人都用过,很简单。app.yaml也听清楚,看了例子,语法都能自解释。
app.yaml详解见 http://code.google.com/intl/zh-CN/appengine/docs/python/tools/configuration.html
此外,据说Google App Engine是base在CGI上做的,为了避免写很多笨重的CGI处理的code, Google App Engine还为用户封装了一些直接可用的Framework, 比如 Webapp Framework, Django Framework, 让开发变得非常简单。
新人上手可以看看Google给的Quick Start,http://code.google.com/intl/zh-CN/appengine/docs/python/gettingstarted/ 。给的例子简介明了,我调试了下,没有Bug. 如果英文好,还可以看看这个YouTube视频 http://www.youtube.com/watch?v=bfgO-LXGpTM
5 本地调试
写完Python code就可以执行 <Google App Engine SDK Home>/dev_appserver.py <Application Path>在本地启动Google App Engine服务,然后通过http://localhost:8080访问自己的应用。
Sample : C:/Program Files/Google/google_appengine/dev_appserver.py D:/Study/google/Code/python2.
dev_appserver.py详解见http://code.google.com/intl/zh-CN/appengine/docs/python/tools/devserver.html
6 安装应用到Google云端
执行<Google App Engine SDK Home>/appcfg.py update <Application Path> 将我们的应用部署到云端。登录 http://<Application ID 1>.appspot.com即可访问这个应用。
Sample : C:/Program Files/Google/google_appengine/appcfg.py update D:/Study/google/Code/python2
appcfg.py详解见 http://code.google.com/intl/zh-CN/appengine/docs/python/tools/uploadinganapp.html
7 监控
好了,现在你的应用程序已经运行在Google的云计算中心了。如果你对它的运行状态还不放心,可以登录到这个DashBoard去监控你的应用,及应用环境。
Google App Engine提供的服务
以上是Google App Engine操做和管理的基本流程。不过如果本文内容仅限于此,定有欺诈之嫌,应为上篇文章说了,云计算中心还提供了软件服务。就Google App Engine而言,不需任何设置,我们的应用就可以享受如下软件服务。
1 数据库服务
见http://code.google.com/intl/zh-CN/appengine/docs/python/datastore/
可能没有Oracle,DB2 那么强壮吧,不过像表、记录的增删改查,索引,多表关联,事务这些我们平时数据库开发中比较关心的东西都有。还能在从浏览器的DashBoard里直接查看表的状态。
2 邮件服务
见http://code.google.com/intl/zh-CN/appengine/docs/python/mail/
这个不需要自己配什么Mail Server,选择什么mail协议,就几行代码,轻松搞定Mail功能。
3 Cache
见http://code.google.com/intl/zh-CN/appengine/docs/python/memcache/
记得以前用过Jboss的Cache, 虽然不难,但要导入一些jar包;而在这里,仅是几行code。
4 其他
Image 见http://code.google.com/intl/zh-CN/appengine/docs/python/images/
URL fetch 见http://code.google.com/intl/zh-CN/appengine/docs/python/urlfetch/
Google Account 见http://code.google.com/intl/zh-CN/appengine/docs/python/users/
当然,这些可能还不够应对千变万化的应用。不过我相信,如果有需要的话,云会提供我们更多更专业的服务。就好像Salesforce在CRM领域做出的杰出贡献。
此外,像Google Map, Google Search这样的工具自然也可以直接集成在Google App Engine中,只是这个好像不算是云的功能,而是SaaS(将软件作为服务)的东西。不过,无论如何,使用它来拓展应用程序功能还是很容易、很有效的。
当然,像AJAX,Dojo这些东西在App Engine还可以原样使用。
Google App Engine Sample
如果想对这个东西增加信心,或是了解更多的东西,看看这些Sample会很有帮助。http://code.google.com/p/google-app-engine-samples/ 我下载了几个,部署在我的应用里,呵呵,还真挺Cool.
最后是一些不错的资源,罗列在这里,以后有新东西,也会补在这。
Integrate Python with Eclipse :http://www.youtube.com/watch?v=e1dtyQ6wqzc&feature=channel
精选文章:在 Django 上运行 App Engine 应用程序 :http://code.google.com/intl/zh-CN/appengine/articles/
Google Map API :http://code.google.com/intl/zh-CN/apis/maps/