[原创]Google App Engine使用简介
2010年08月28日
[原创]Google App Engine使用简介
by AKara 2010-08-28 @ http://blog.youkuaiyun.com/akara @ akaras@163.com
-------------------------------------------------- -------------------
在用Google App Engine之前,了解了其他一些现存的可称作云计算的平台:
> Force.com(http://www.force.com)
SaleForce.com推出的云计算服务平台。
> Amazon Cloud(http://aws.amazon.com)
S3(Amazon Simple Storage Service) 可伸缩的存储服务。
EC2(Amazon Elastic Compute Cloud) 云计算服务。
> Google App Engine(https://appengine.google.com)
Google的巨大虚拟机。
> Sina App Engine(http://sae.sina.com.cn)
国内新浪公司的平台。
在免费/Google/Python API等面前;无需挣扎,选了Google App Engine。
花去一些时间,做些记录。
-------------------------------------------------- -------------------
* Google App Engine底下的基础设施:
> Bigtable + GFS
> Map / Reduce
> Google Protocol Buffer
> Google Data Protocol
-------------------------------------------------- -------------------
* Google App Engine特色:
> 文档齐全。
> 本身就是开源项目:http://code.google.com/p/googleappengine。
> 提供sandbox(NO thread, file, socket …)环境下的Python(2.5.2)和Java两种App API形式。
> 通过简单直观的YAML配置方式来实现几大功能的定制:
app.yaml(主配置)
index.yaml(GQL索引配置)
cron.yaml(定时任务配置)
queue.yaml(后台任务配置)
dos.yaml(DoS保护配置)
> ORM(Object-Relation Mapping)对象关系映射技术隐藏了分布式数据库的复杂度。
> 类似SQL的GQL为关系数据库的转型使用者提供便利。
> 支持Django1.0,为WEB制作提供便利(模板引擎等...)。
> Google Protocol Buffer在所有服务的沟通接入中扮演着一个万能的中介者角色。
> 提供Development server在脱机环境下模拟App Engine的数据存储,沙盒限制等。
可以方便地在http://localhost:port上调试自己的App。
> 提供多项目成员管理功能。方便共同开发项目。
-------------------------------------------------- -------------------
* Google App Engine SDK可用API组件:
> Datastore(数据存储)
高可靠,可伸缩的分布式数据存储服务。
联想服务:Bigtable + GFS
> Images(图像)
提供对图像格式的各种操作。
联想服务:Picasa
> Mail(邮件)
收发邮件。
联想服务:GMail
> Memcache(Memcache)
顾名思义。
> OAuth(开放授权)
提供第三方认证。
> URLFetch(URL抓取)
从App中方便地对网络资源进行抓取和处理。
> Users(用户资料)
对Google Account等用户资料的认证和资料提取。
联想服务:Google Accounts
> XMPP(即时消息)
收发XMPP兼容的即时消息。
联想服务:Google Talk
并宣称年内的更新将支持更多的Google Services组件接入。
还可结合Google Data APIs(http://code.google.com/apis/gdata/)
(Python Client Library:http://code.google.com/p/gdata-python-client/)
来操纵以下信誉度极高的服务群(几乎涵盖所有的Google产品):
Blogger, Calendar, Health, Picasa Web Albums, Spreadsheets, YouTube...
-------------------------------------------------- -------------------
* Google App Engine的免费配额和付费配额制度:
相比于其它PaaS。Google App Engine通过免费额度的设定来吸引潜在的
应用开发者参与其中。当资源需求超过限额,可通过较合理的价钱来提高。
对于大众开发者,就把自己的App当作运行在一个500M存储空间,500w PV/月
的受限虚拟机上吧。
-------------------------------------------------- -------------------
* 里程碑和趋势
2008-04-08 Limited Preview 版本只完成基础功能(基础web功能,
基于Bigtable和GFS的查询/排序/事务接口,自动负载均衡,
账户认证和邮件发送,脱机模拟的开发环境),
并限制10000名开发者申请使用资格,目的是获得反馈。
2008-05-15 申请资格名额扩展到75000。
2008-05-28 不限申请名额,任何人可以使用GAE。
开始作超额资源的收费设计。
添加图像处理和Memcache两套新的API接口到GAE。
2008-07-24 每账户从3个项目扩充到10个项目(PS:至今也是10)。
添加Log Export功能。
2008-08-22 Datastore接口更新。批量删写。
2008-09-16 添加zipimport/zipserve,为WEB的静态资源文件的zip读取服务。
添加memcache viewer。修正bug。
2008-10-14 新的Admin Console。
2008-10-16 appspot.com支持HTTPS访问的app.yaml配置。
2008-12-16 系统状态仪表盘,配额信息页面,付费配额信息预览
2009-02-12 优化CPU / 最长响应时间 / 提高code file,static file,
request/respones到10M体积。
2009-02-24 正式推出付费配额服务。
2009-04-07 推出Java的API系列,掀起GAE关注小高潮。Eclipse环境集成。
CronJob支持,Database import,Secure Data Connector。
2009-06-18 增加任务队列,异步URL抓取,Django 1.0支持。
2009-09-03 增加XMPP支持。完善Java API。新的Windows App Engine Launcher。
2009-10-13 可从App中收邮件。支持删除废弃的App。更详细的Datastore状态查看。
2009-12-14 支持更大的数据上传。
2010-02-10 Datastore优化。
* 最近大约半年的预期新功能release:
> SSL for third-party domains
> Background servers capable of running for longer than 30s
> Ability to reserve instances to reduce application loading overhead
> Ability to select different availability vs. latency options for Datastore
> Support for mapping operations across datasets
> Datastore dump and restore facility
> Raise request/response size limits for some APIs
> Improved monitoring and alerting of application serving
> Support for Browser Push (Comet) communication
> Built-in support for OAuth & OpenID
可以看到,两年多时间内。看似不多的功能被逐渐增添上去。
而release间隔从1个月,2个月,3个月,到现在的半年。
更多的是添加新服务而不是改动已release内容,非常稳重。
而Google Trends上的热点轨迹则显示两年多来它的一个逐渐平缓中稍带走强的趋势:
关键的几个关注度峰值点上的原因值得注意。
-------------------------------------------------- -------------------
最后,按个人理解。
像Google App Engine这样的PaaS(Platform as a Service)产品,意义有三:
* App积累非技术资源到Platform
* Platform将非技术资源分享给App
* Platform为提供成熟的基础设施给App
试着自问自答几个问题:
Q: 平台价值是什么?
A: 链接原有的看似零散服务,为公司和目标用户创造更多的价值,
实现一个价值多向交叉,共同繁荣的局面。
自私地说,让更多智慧汇聚在平台,而不是走向分庭抗礼。
Q: 目标用户是什么人群?
A: 充满活力和未知数的第三方开发团队。
Q: 基本服务是什么?
A: 成熟的云计算服务;让应用构架在超级虚拟机上,更专注于应用业务本身。
Q: 扩展服务是什么?
A:所有现有或将有的'零散'服务可以通过某形式接入Google App Engine。
Q: 用户可自由发挥的是什么?
A:创意。在一个尚算宽松的环境下的任何创意。
Q:用户受限制的是什么?
A:受限于GAE SDK本身。
受限于应用由于规模需求而索取的资源量。
Q:App制作和运行优势是什么?
A:简易,开放,自由,受限,独立,隔离,公平。
-------------------------------------------------- -------------------
2010年08月28日
[原创]Google App Engine使用简介
by AKara 2010-08-28 @ http://blog.youkuaiyun.com/akara @ akaras@163.com
-------------------------------------------------- -------------------
在用Google App Engine之前,了解了其他一些现存的可称作云计算的平台:
> Force.com(http://www.force.com)
SaleForce.com推出的云计算服务平台。
> Amazon Cloud(http://aws.amazon.com)
S3(Amazon Simple Storage Service) 可伸缩的存储服务。
EC2(Amazon Elastic Compute Cloud) 云计算服务。
> Google App Engine(https://appengine.google.com)
Google的巨大虚拟机。
> Sina App Engine(http://sae.sina.com.cn)
国内新浪公司的平台。
在免费/Google/Python API等面前;无需挣扎,选了Google App Engine。
花去一些时间,做些记录。
-------------------------------------------------- -------------------
* Google App Engine底下的基础设施:
> Bigtable + GFS
> Map / Reduce
> Google Protocol Buffer
> Google Data Protocol
-------------------------------------------------- -------------------
* Google App Engine特色:
> 文档齐全。
> 本身就是开源项目:http://code.google.com/p/googleappengine。
> 提供sandbox(NO thread, file, socket …)环境下的Python(2.5.2)和Java两种App API形式。
> 通过简单直观的YAML配置方式来实现几大功能的定制:
app.yaml(主配置)
index.yaml(GQL索引配置)
cron.yaml(定时任务配置)
queue.yaml(后台任务配置)
dos.yaml(DoS保护配置)
> ORM(Object-Relation Mapping)对象关系映射技术隐藏了分布式数据库的复杂度。
> 类似SQL的GQL为关系数据库的转型使用者提供便利。
> 支持Django1.0,为WEB制作提供便利(模板引擎等...)。
> Google Protocol Buffer在所有服务的沟通接入中扮演着一个万能的中介者角色。
> 提供Development server在脱机环境下模拟App Engine的数据存储,沙盒限制等。
可以方便地在http://localhost:port上调试自己的App。
> 提供多项目成员管理功能。方便共同开发项目。
-------------------------------------------------- -------------------
* Google App Engine SDK可用API组件:
> Datastore(数据存储)
高可靠,可伸缩的分布式数据存储服务。
联想服务:Bigtable + GFS
> Images(图像)
提供对图像格式的各种操作。
联想服务:Picasa
> Mail(邮件)
收发邮件。
联想服务:GMail
> Memcache(Memcache)
顾名思义。
> OAuth(开放授权)
提供第三方认证。
> URLFetch(URL抓取)
从App中方便地对网络资源进行抓取和处理。
> Users(用户资料)
对Google Account等用户资料的认证和资料提取。
联想服务:Google Accounts
> XMPP(即时消息)
收发XMPP兼容的即时消息。
联想服务:Google Talk
并宣称年内的更新将支持更多的Google Services组件接入。
还可结合Google Data APIs(http://code.google.com/apis/gdata/)
(Python Client Library:http://code.google.com/p/gdata-python-client/)
来操纵以下信誉度极高的服务群(几乎涵盖所有的Google产品):
Blogger, Calendar, Health, Picasa Web Albums, Spreadsheets, YouTube...
-------------------------------------------------- -------------------
* Google App Engine的免费配额和付费配额制度:
相比于其它PaaS。Google App Engine通过免费额度的设定来吸引潜在的
应用开发者参与其中。当资源需求超过限额,可通过较合理的价钱来提高。
对于大众开发者,就把自己的App当作运行在一个500M存储空间,500w PV/月
的受限虚拟机上吧。
-------------------------------------------------- -------------------
* 里程碑和趋势
2008-04-08 Limited Preview 版本只完成基础功能(基础web功能,
基于Bigtable和GFS的查询/排序/事务接口,自动负载均衡,
账户认证和邮件发送,脱机模拟的开发环境),
并限制10000名开发者申请使用资格,目的是获得反馈。
2008-05-15 申请资格名额扩展到75000。
2008-05-28 不限申请名额,任何人可以使用GAE。
开始作超额资源的收费设计。
添加图像处理和Memcache两套新的API接口到GAE。
2008-07-24 每账户从3个项目扩充到10个项目(PS:至今也是10)。
添加Log Export功能。
2008-08-22 Datastore接口更新。批量删写。
2008-09-16 添加zipimport/zipserve,为WEB的静态资源文件的zip读取服务。
添加memcache viewer。修正bug。
2008-10-14 新的Admin Console。
2008-10-16 appspot.com支持HTTPS访问的app.yaml配置。
2008-12-16 系统状态仪表盘,配额信息页面,付费配额信息预览
2009-02-12 优化CPU / 最长响应时间 / 提高code file,static file,
request/respones到10M体积。
2009-02-24 正式推出付费配额服务。
2009-04-07 推出Java的API系列,掀起GAE关注小高潮。Eclipse环境集成。
CronJob支持,Database import,Secure Data Connector。
2009-06-18 增加任务队列,异步URL抓取,Django 1.0支持。
2009-09-03 增加XMPP支持。完善Java API。新的Windows App Engine Launcher。
2009-10-13 可从App中收邮件。支持删除废弃的App。更详细的Datastore状态查看。
2009-12-14 支持更大的数据上传。
2010-02-10 Datastore优化。
* 最近大约半年的预期新功能release:
> SSL for third-party domains
> Background servers capable of running for longer than 30s
> Ability to reserve instances to reduce application loading overhead
> Ability to select different availability vs. latency options for Datastore
> Support for mapping operations across datasets
> Datastore dump and restore facility
> Raise request/response size limits for some APIs
> Improved monitoring and alerting of application serving
> Support for Browser Push (Comet) communication
> Built-in support for OAuth & OpenID
可以看到,两年多时间内。看似不多的功能被逐渐增添上去。
而release间隔从1个月,2个月,3个月,到现在的半年。
更多的是添加新服务而不是改动已release内容,非常稳重。
而Google Trends上的热点轨迹则显示两年多来它的一个逐渐平缓中稍带走强的趋势:
关键的几个关注度峰值点上的原因值得注意。
-------------------------------------------------- -------------------
最后,按个人理解。
像Google App Engine这样的PaaS(Platform as a Service)产品,意义有三:
* App积累非技术资源到Platform
* Platform将非技术资源分享给App
* Platform为提供成熟的基础设施给App
试着自问自答几个问题:
Q: 平台价值是什么?
A: 链接原有的看似零散服务,为公司和目标用户创造更多的价值,
实现一个价值多向交叉,共同繁荣的局面。
自私地说,让更多智慧汇聚在平台,而不是走向分庭抗礼。
Q: 目标用户是什么人群?
A: 充满活力和未知数的第三方开发团队。
Q: 基本服务是什么?
A: 成熟的云计算服务;让应用构架在超级虚拟机上,更专注于应用业务本身。
Q: 扩展服务是什么?
A:所有现有或将有的'零散'服务可以通过某形式接入Google App Engine。
Q: 用户可自由发挥的是什么?
A:创意。在一个尚算宽松的环境下的任何创意。
Q:用户受限制的是什么?
A:受限于GAE SDK本身。
受限于应用由于规模需求而索取的资源量。
Q:App制作和运行优势是什么?
A:简易,开放,自由,受限,独立,隔离,公平。
-------------------------------------------------- -------------------