[更新至 2009 年 8 月 21 日]
帮我编写一个关于在谷歌应用引擎上构建应用程序的所有优缺点列表。
优点:
- 无需购买服务器或服务器空间(无需维护)。
- 使解决扩展问题变得更加容易。
- 在一定程度的资源消耗下是免费的。
缺点:
- 锁定于谷歌应用引擎?
- 开发人员只有对应用引擎上文件系统的只读访问权限。
- 应用引擎只能执行从 HTTP 请求调用的代码(除了计划的后台任务)。
- 用户可能会上传任意 Python 模块,但仅限纯 Python 模块;不支持 C 和 Pyrex 模块。
- 应用引擎将从实体获取的最大行数限制为每个 Datastore 调用的 1000 行。 (更新 - 应用引擎现在支持使用游标访问更大的查询)
- Java 应用程序只能使用 JRE 标准版的子集(JRE 类白名单)。
- Java 应用程序无法创建新线程。
已知问题! : http://code.google.com/p/googleappengine/issues/list
硬限制
每个开发者的应用程序数量 - 10
每个请求的时间 - 30 秒
每个应用程序的文件数 - 3,000
HTTP 响应大小 - 10 MB
Datastore 项大小 - 1 MB
应用程序代码大小 - 150 MB
更新 Blob 存储现在允许存储最大为 50MB 的文件
优点还是缺点?
应用引擎的基础设施消除了构建可扩展到数百万次点击的应用程序的许多系统管理和开发挑战。谷歌负责将代码部署到群集、监控、故障转移以及根据需要启动应用程序实例。
虽然其他服务允许用户安装和配置几乎任何*NIX兼容的软件,但App Engine要求开发者使用Python或Java作为编程语言,并且只能使用一组有限的API。当前可用的API允许从BigTable非关系型数据库中存储和检索数据;进行HTTP请求;发送电子邮件;操作图像和缓存。大多数现有的Web应用程序都无法在App Engine上运行而无需修改,因为它们需要使用关系型数据库。