Google App Engine

应用程序环境自动扩展和载荷平衡Sandbox安全Sandbox环境的限制实例包括:Python运行时环境 数据库
目录

Google App Engine 是一种让您可以在 Google 的基础架构上运行您的网络应用程序。Google App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展。使用 Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务。

基本信息

中文名

Google App Engine

使用类型

SaaS软件

品牌

谷歌

GoogleAppEngine让您可以在Google的基础架构上运行您的网络应用程序。GoogleAppEngine应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展。使用GoogleAppEngine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务。

您可以使用appspot.com域上的免费域名为您的应用程序提供服务,也可以使用GoogleApps从您自己的域为它提供服务。您可以与全世界的人共享您的应用程序,也可以限制为只有您组织内的成员可以访问。

可以免费开始使用AppEngine。注册一个免费帐户即可开发和发布您的应用程序以供全世界的人共享,而且不需要承担任何费用和责任。每个免费帐户都可使用多达500MB的持久存储空间,以及可支持每月约500万页面浏览量的足够CPU和宽带。

使用GoogleAppEngine的试用版本期间,只可以使用免费帐户。您很快就能够购买其他的计算资源。

应用程序环境

通过GoogleAppEngine,即使在重载和数据量极大的情况下,也可以轻松构建能安全运行的应用程序。该环境包括以下特性:

动态网络服务,提供对常用网络技术的完全支持

持久存储有查询、分类和事务

自动扩展和载荷平衡

用于对用户进行身份验证和使用Google帐户发送电子邮件的API

一种功能完整的本地开发环境,可以在您的计算机上模拟GoogleAppEngine

GoogleAppEngine应用程序是使用Python编程语言实现的。该运行时环境包括完整Python语言和多数Python标准库。

目前,GoogleAppEngine仅支持Python语言,但是我们希望将来它可以支持更多语言。

Sandbox

在安全环境中运行的应用程序,仅提供对基础操作系统的有限访问权限。这些限制让AppEngine可以在多个服务器之间分发应用程序的网络请求,并可以启动和停止服务器以满足访问量需求。Sandbox将您的应用程序隔离在它自己的安全可靠环境中,该环境与网络服务器的硬件、操作系统和物理位置无关。

安全Sandbox环境的限制实例包括:

应用程序只能通过提供的网址获取和电子邮件服务和API访问互联网中的其他计算机。其他计算机只能通过在标准端口上进行HTTP(或HTTPS)请求来连接至该应用程序。

应用程序无法向文件系统写入。应用程序只能读取通过应用程序代码上传的文件。该应用程序必须使用AppEngine数据库存储所有在请求之间持续存在的数据。

应用程序代码仅在响应网络请求时运行,且必须在几秒钟内返回响应数据。请求处理程序不能在响应发送后产生子进程或执行代码。

Python运行时环境

AppEngine提供了一个使用Python编程语言的运行时环境。将来的版本将考虑使用其他编程语言和运行时环境配置。

Python运行时环境使用Python2.5.2版。

该环境包括Python标准库。当然,您无法调用违反了Sandbox限制的库方法,例如尝试打开套接字或向文件写入。方便起见,其主要功能不受该运行时环境支持的标准库中的多个模块已被禁用,而导入这些模块的代码将发生错误。

应用程序代码只能以Python编写。具有用C编写的扩展的代码不受支持。

Python环境为数据库、Google帐户、网址获取和电子邮件服务提供了丰富的PythonAPI。AppEngine还提供了一个称为WebAPP的简单Python网络应用程序框架,从而可以轻松开始构建应用程序。

方便起见,AppEngine还包括DJANGO网络应用程序框架0.96.1版。请注意,AppEngine数据库不是某些Django组件所需的关系数据库。某些组件(例如Django模板引擎)按照文档化的程序工作,而其他组件则需要做更多工作。有关将Django与AppEngine一起使用的提示,请参阅文章部分。

只要这些库是完全使用Python实现并且不需要任何不受支持的标准库模块,您就可以使用您的应用程序上传其他第三方库。

有关Python运行时环境的详细信息,请参阅Python运行时环境。

 数据库

AppEngine提供了一个强大的分布式数据存储服务,其中包含查询引擎和事务功能。就像分布式网络服务器随访问量增加一样,该分布式数据库也会随数据而增加。

该AppEngine数据库与传统关系数据库不同。数据对象(或“实体”)有一类和一组属性。查询可以检索按属性值过滤和分类的给定种类的实体。属性值可以是受支持的属性值类型中的任何一种。

数据库的PythonAPI包括一个可以定义数据库实体结构的数据建模界面。数据模型可以指示属性值必须位于给定范围内,如果未给定任何范围,还可以提供默认值。您的应用程序可以根据需要向数据提供或多或少的结构。

数据库使用乐观锁定进行并发控制。如果有其他进程尝试更新某实体,而同时该实体位于以固定次数进行重新尝试的事务中,此时该实体将更新。应用程序可以在一个事务中执行多项数据库操作(全部成功或者全部失败),从而确保数据的完整性。

数据库通过其分布式网络使用“实体组”实现事务。一个事务操作一个组内的实体。同一组的实体存储在一起,以高效执行事务。应用程序可以在实体创建时将实体分配到组。

有关数据库的详细信息,请参阅数据库API参考。

Google帐户

AppEngine包括用于与Google帐户集成的服务API。应用程序使用户可以通过Google帐户登录,并可以访问与该帐户关联的电子邮件地址和可显示的名称。使用Google帐户使用户可以更快地开始使用您的应用程序,因为用户可以不需要创建新帐户了。Google帐户还省去只为您的应用程序执行用户帐户系统的麻烦。

如果您的应用程序正在GoogleApps下运行,则它可以与您组织的成员和GoogleApps帐户成员使用相同的功能。

用户API还可告知应用程序当前用户是否是应用程序的注册管理员。这样便可以轻松实现您站点上仅用于管理的区域。

有关与Google帐户集成的详细信息,请参阅用户API参考。

AppEngine服务

AppEngine提供了多种服务,从而使您可以在管理应用程序的同时执行常规操作。提供了以下API以访问这些服务:

网址获取

应用程序可以使用AppEngine的网址获取服务访问互联网上的资源,例如网络服务或其他数据。网址获取服务使用用于为许多其他Google产品检索网页的高速Google基础架构来检索网络资源。有关网址获取服务的详细信息,请参阅网址获取API参考。

邮件

应用程序可以使用AppEngine的邮件服务发送电子邮件。邮件服务使用Google基础架构发送电子邮件。有关邮件服务的详细信息,请参阅邮件API参考。

Memcache

Memcache服务为您的应用程序提供了高性能的内存键值缓存,您可通过应用程序的多个实例访问该缓存。Memcache对于那些不需要数据库的永久性功能和事务功能的数据很有用,例如临时数据或从数据库复制到缓存以进行高速访问的数据。有关Memcache服务的详细信息,请参阅MemcacheAPI参考。

图片操作

图片服务使您的应用程序可以对图片进行操作。使用该API,您可以对JPEG和PNG格式的图片进行大小调整、剪切、旋转和翻转。有关图片操作服务的详细信息,请参阅图片API参考。

开发工作流程

AppEngine软件开发套件(SDK)包括可以在您的本地计算机上模拟所有AppEngine服务的网络服务器应用程序。该SDK包括AppEngine中的所有API和库。该网络服务器还可以模拟安全Sandbox环境,包括检查是否存在禁用模块的导入以及对不允许访问的系统资源的尝试访问。

PythonSDK完全使用Python实现,可以在装有Python2.5的任何平台上运行,包括Windows、MacOSX和Linux。您可以在Python网站上获得适用于您的系统的Python。该SDK以Zip文件提供,安装程序可用于Windows和MacOSX。

您可以在此处下载该SDK。

该SDK还包括可将您的应用程序上传到AppEngine的工具。创建了您应用程序的代码、静态文件和配置文件后,即可运行该工具上传数据。该工具会提示您提供Google帐户电子邮件地址和密码。

构建已在AppEngine上运行的应用程序的新主要发行版时,可以将新发行版作为新版本上传。在您改为使用新版本之前,旧版本可以继续为用户提供服务。可以在仍运行旧版本的同时在AppEngine上测试新版本。

管理控制台是基于网络的界面,用于管理在AppEngine上运行的应用程序。您可以使用它创建新应用程序、配置域名、更改您的应用程序当前的版本、检查访问权限和错误日志以及浏览应用程序数据库。

限额和限制

创建AppEngine应用程序不仅简单,而且是免费的!您可以创建帐户,然后发布一个应用程序,用户无需承担任何费用和责任即可立即使用该应用程序。通过免费帐户获得的应用程序可使用多达500MB的存储空间和多达每月500万的页面浏览量。

此试用时间内,仅提供免费帐户。您很快就能够以有竞争力的市场价格购买其他的计算资源。试用期过后,免费帐户可继续使用。

此试用期间,最多可注册3个应用程序。

应用程序资源限制(“限额”)会不断刷新。如果您的应用程序达到基于时间的限额(例如宽带),则该限额将以给定限制的比率立即开始刷新。固定限额(例如存储使用量)仅在降低使用量时才会减小。

更多GoogleAppEngine资源链接更多GoogleAppEngine资源链接更多GoogleAppEngine资源链接更多GoogleAppEngine资源链接

有些功能会施加与限额无关的限制,以保护系统的稳定性。例如,当调用某应用程序以为网络请求提供服务时,该应用程序必须在几秒钟内发出响应。如果该应用程序花费的时间过长,则进程将被终止并且服务器将向用户返回错误代码。响应超时是动态的,如果请求处理程序经常达到其超时,则可以缩短请求超时以节省资源。

服务限制的另一实例是查询返回的结果数。一个查询最多可返回1,000条结果。要返回更多结果的查询只能返回该最大值。在这种情况下,执行这种查询的请求不可能在超时前返回请求,但限制仍存在以节省数据库上的资源。

更多GoogleAppEngine资源链接

试图破坏或滥用限额(例如同时在多个帐户上操作应用程序)违反服务条款,并可能导致应用程序被禁用或帐户关闭。

参考资料

1.http://code.google.com/intl/zh-CN/appengine/docs/whatisgoogleappengine.html

2.http://china-app-blog.appspot.com

免责声明

头条百科的词条系由网友创建、编辑和维护,如您发现头条百科词条内容不准确或不完善,欢迎您前往词条编辑页共同参与该词条内容的编辑和修正;如您发现词条内容涉嫌侵权,请通过 service@baike.com 与我们联系,我们将按照相关法律规定及时处理。

未经许可,禁止商业网站等复制、抓取头条百科内容;合理使用者,请注明来源于www.baike.com。

反馈
更多图片

接下来查看