本章提供了
Google App Engine
的一些概念。我们将看看
Google
App Engine
的开发以及
Google App Engine
怎样通过开发和运行服务来实现云计算的概念。
什么是
Google App Engine
?
Google App Engine
是一个基于
Python
(译者注:现在也已经支持
JAVA
语言了)的应用服务运行平台,在
Google
大量的基础架构上提供了
Web
应用托管、数据存储以及高速网络的功能。
开发人员可以利用
Google App Engine
提供的
API
免费创建应用服务,包含着下面的一些限制:
-
一个月限制在
500
万次访问(包括带宽和
CPU
使用)。
-
可以使用
500M
的存储空间。
注意:本文写作的时候
Google App Engine
还只是免费试用,而且暂时没有收费计划。
上面的这些限制考虑到下面的特性就不会奇怪了:
-
Google App Engine
的开发是在用户终端上进行的,支持的主机包括
OS X
、
Linux
和
Windows
。
-
Google App Engine
提供了高效的动态网页执行功能,即使是在很强数据量的情况下,这主要得益于内置的负载均衡机制。
-
存储系统支持事务、查询和排序。
-
可以使用
Gmail API
提供
E-mail
认证支持。
运行环境已经通过底层的操作系统抽象出来从而避免了系统平台的依赖性。
Google
的基础架构通过分发在多个服务器为你的应用提供了自动和按需的流量整形和负载均衡功能。每一个应用都运行在一个单独的安全沙盒上,而不会影响到其他应用和引起资源冲突。应用可以运行在一个默认的
appspot.com
域名上,或者是你自己的
Google App
帐号。使得应用建立并运行起来只需要一些简单的设置工作。
Google App Engine
和云计算
云计算描述了运行在第三方提供的分布式运算资源上的应用。有些云计算提供商提供通用计算和存储能力,而另一些提供专门或专业服务。
云上的终端用户应用
最引入注目的云计算例子是终端用户应用。这集成了软件为服务(Software as
a Service (SaaS))以及平台为服务(Platform as a Service(PaaS))的计算模型。用户通过标准的
Web
浏览器和应用进行交互,而不用关心发布和内部管理。
云上的服务
除了能够发布交互式应用,供应方可以通过通信或者数据交互协议发布服务的
API
或者是开启服务的平台。这些服务可能还包括主机系统提供。还有的一些云服务包括:
Web
服务:Salesforce.com,the United States Postal Service,Google
Maps都为其特定的任务提供了
API
。
服务平台:Mule, Postini, SecureWorks和Cape
Clear通过引入基于
ESB
技术的第三方提供或者用户的应用的商业系统提供了整合能力。
管理服务:Sun Microsystems, IBM, Liquid
Computing, 和3Tera为终端用户和服务软件提供了主机服务,同时还包括用户架构和
IT
团队支持。
Google App Engine
和云计算
Google App Engine
为终端用户提供了
3
个特别的云计算特性:
-
一个
PaaS
服务。开发小组或者公司可以使用
Google App Engine
创建公共或者内部的
Web
应用,支持事务、单点认证和健壮的可扩展性和可用性。
-
使用
Google App Engine
创建的应用是通过
SaaS
提供的,可以直接通过用户的
Web
浏览器来访问。
-
还有和其他第三方提供的服务平台集成的能力。
怎样开始实现一个云计算服务呢?本章接下来的部分描述了
Google App Engine
如何使得这个任务非常容易。
在使用
Google App Engine
之前
在使用
Google App Engine
之前需要知道一些基础知识:
-
一些
Python
编程知识(越多越好)。
-
Web
应用如何创建已经运行行为的基本知识,包括
CGI
使用、
servlet
和应用容器。
-
如何使用
SQL
命令查询和更新数据库。
容易使用是
Google App Engine
的一个主要设计目标。可以通过
SDK
或者是标准的
Python
代码使用一个
App
模拟器来对代码进行测试。
Python
的解释特性使得可以快速的做行测试以及原型设计。
SDK
和
App
模拟器的硬件需求是很低的,所以只要是一个简单的工作站和基本的互联网能力都可以工作得很好。
提示:“Dive into Pytho”是学习
Python
语言的好的途径,包括基本的和高级的概念。这本书可以从
http://www.diveintopython.org
上获得。
和用户交互的
App Engine
应用需要支持一个
Web
应用框架。
Python
的
Web
服务网关接口(Web Server Gateway Interface (WSGI))是你的
App Engine
应用可以使用的和
Web
服务器以及应用服务器通信的标准机制。
App Engine
支持
WSGI
,并且可以工作在任何兼容的应用服务器上。如果需要阅读有关
WSGI
的背景,以及和应用服务器的集成,请阅读第四章。
设置开发环境
开发和发布环境是
App Engine
服务的一个组合,可以下载一个
SDK
到你的工作站上。
Google App Engine
需要一个账号来绑定环境,就像
Google
Docs
和
Gmail
一样。你可以在
http://code.google.com/appengine上注册和获取
SDK
。按照下面的步骤开始吧
。
-
确保你的工作站上安装了
Python2.5
或更高版本,打开一个终端,输入
Python
--version
。
-
定义一个需要开始的应用
-
提供一个移动号码,
Google
将向这个号码发送短信消息用来确认。
-
创建应用标识符用来形成应用的
URL
:
yourappid.appspot.com
。在本书中,将使用genpasswd
和bookmarksbin作为应用标识符。你可以设置更多的选项,如终端用户访问认证设置等(见第八章)。
-
安装合适你的操作系统的
SDK
。从http://code.google.com/appengine/downloads.html下载。
-
开始GoogleAppEngineLauncher
用来结束安装。在
OS X
和
Windows
下的启动器需要管理员密码,因为启动器将设置本地应用服务模拟器和上传工具的链接,同时为
SDK
创建主目录(/usr/local/google_appengine)。这是一次性的安装,以后就再也不需要管理员密码了。
-
确保应用服务器模拟器和上传工具可以全局性的运行。输入下面的命令进行测试:
dev_appserver.py
–help
appcfg.py –help
-
检查
Python
和
App Engine
的安装目录是否在
PATH
环境变量中:如在
OS X
和
Linux
下可以输入which dev_appserver.py。你应该可以看到如
/usr/local/bin/dev_appserver.py,使用set
| grep PATH应该可以得到/usr/local/bin。
现在你已经做好编写和管理
App Engine
工程的准备了!
Hello, World!
App Engine
应用在本地文件系统中的组织方式和上传到
Google
服务器后的组织方式是一样的。一个工程至少要包含有一个
Python
程序文件和一个
YAML
文件,用来告诉
Web
服务器如何运行,以及如何响应用户的请求。
什么是
YAML
?
YAML
是一种用于配置文件、存储和网络消息的跨语言、用户友好的数据序列化语言。
YAML
容易为人所阅读,而且比
XML
消耗更少的资源。“
YAML
”代表“YAML Ain’t a Markup
Language,”,可以从
http://yaml.org
上找到更多的信息。
创建一个名为greetingprogram的目录,并在其中生成一个greeting.py文件:
Listing
1-1. greeting.py
#
Greeting program
print
'Content-Type: text/plain'
print
''
print
'Hello, World!'
这个程序唯一需要提及的是需要告诉
Web
服务器响应的内容类型。在第二章和第三章中将看到如何利用
WSGI
框架,而不是每次都这样输出类型。
Listing 1-2显示了你的新应用中使用
YAML
定义的运行元信息。app.yaml是默认的,因为
Web
服务器启动的时候会搜索此文件。使用不同的文件名将触发一个AppConfigNotFoundError错误。
Listing
1-2. app.yaml
application:
greetingprogram
version:
1
runtime:
python
api_version:
1
handlers:
-
url: /.*
script:
greeting.py
打开一个系统终端,转到开发目录,输入下面的命令:
dev_appserver.py
greetingprogram/
这将启动应用服务器并在控制台下显示服务器日志。greetingprogram/目录是你的开发目录,包含
Python
文件和
YAML
文件。如果没有问题的话,你可以看到下面的信息:
Running
application greetingprogram on port 8080:
http://localhost:8080
最后,指向浏览器中的这个地址,并验证你的
greeting
程序,如图
1-1
所示。
图
1-1
greeting.py
的输出
小结
Google App Engine
是一个运行在
Google
可伸缩基础架构上的开发面向终端用户软件服务(
SaaS
)的服务平台(
Paa
S
)应用框架。
App Engine
设计得可以让只有很少
Python
和
Web
编程知识的开发者都可以很容易的书写和发布复杂的应用。
Google App Engine
简化了云应用的发布及其组件,这在其他终端应用的云计算平台上可能不稳定。
本章的程序并没有实际意义。怎样完成一个实际的项目并发布到
Web
上去呢?在第二章中将通过使用
SDK
中的开发工具来熟悉这一过程。
- 大小: 41.7 KB
分享到:
相关推荐
### GAE(Google App Engine)空间申请使用教程及 GAE域名捆绑方法 #### GAE简介与功能概述 GAE(Google App Engine)是由谷歌提供的一个强大的云服务平台,它允许开发者构建并托管各种类型的应用程序。从实用性...
这篇文章将带你深入了解如何使用WingIDE这一强大的Python集成开发环境来部署应用程序到Google App Engine(GAE),一个由Google提供的云服务平台,允许开发者构建、运行和托管Web应用。WingIDE以其高效的代码编辑、...
最后,通过《云端代码Google App Engine编程指南》的指导,开发者可以更加系统地掌握GAE开发的核心知识,学会如何高效地使用这一平台来构建和维护各种Web应用和服务。通过学习这些知识,开发者能够利用GAE提供的各种...
标题中提到的“Google App Engine 入门教程”意味着本文将介绍如何开始使用GAE这一服务,而描述中提到了“eclipse插件”,说明教程将会涉及如何在Eclipse开发环境中使用Google App Engine插件来开发应用。...
"miniStruts 适合GAE(Google App Engine)的小型框架(Struts 1.x的克隆)" 这个标题揭示了我们讨论的核心是 miniStruts,一个针对 Google App Engine(GAE)设计的轻量级框架。它模仿了经典的 Struts 1.x 框架,...
clock.rar 这是我今天做的一个基于google app engine写的一个在该平台上开发app的示例,通过该示例的学习,我们可以很快上手学会怎样在GAE上开发属于你的应用程序了,希望对大家有用!
Google App Engine(GAE)是谷歌提供的一种云计算平台,它允许开发者构建并托管Web应用程序,无需管理和维护服务器硬件。这个平台支持多种编程语言,包括Python、Java、Go和PHP,为开发者提供了强大的服务,如数据...
基于Google App Engine(GAE)的Java和GWT应用开发_Google App Engine Java and GWT Application Development Nov.2010
Eclipse Google 插件 Google App Engine SDK for Java Google App Engine文档 按钮 Google App Engine 开发包
Google App Engine(简称GAE)是Google于2008年推出的一项云服务,允许开发者使用Python、Java、Go等多种语言构建并部署Web应用。GAE提供了自动扩展、高可用性和全球分布等特性,使开发者能够专注于编写代码而无需...
Google App Engine (GAE) 是Google Cloud Platform的重要组成部分之一,它为开发者提供了构建高效、可扩展的应用程序的平台。本文旨在详细介绍GAE在资源使用方面的一些关键限制,帮助开发者更好地理解和规划应用程序...
使用Python的`google.appengine.ext.db`库,你可以定义数据模型类,这些类对应于Datastore中的实体。通过创建这些类的实例并调用`put()`方法,可以将数据插入到Datastore中。例如: ```python from google.app...
通过以上步骤,用户能够成功地使用Google App Engine构建和测试自己的网站或网络应用程序。Google App Engine的这一特性使得开发者无需购买和管理硬件,只需关注应用的开发,降低了初创项目和技术爱好者进入云服务的...
Google App Engine Docs,Google App Engine开发人员指南(Java版),简体中文离线文档,起始页为主目录下的appengine\docs\docs.html
Google App Engine(GAE)是谷歌提供的一款云端应用程序开发平台,允许开发者使用Python、Java、Go或PHP等语言编写应用,并在谷歌的基础设施上运行。它提供了完整的服务器环境,包括存储、数据库、计算资源和网络...
google_appengine_1.9.10 for linux 发布于2014-08-28 To install on Linux: Unzip the App Engine SDK file you downloaded (google_appengine_1.9.10.zip), for example: unzip google_appengine_1.9.10.zip ...
2. Google App Engine SDK:这是 GAE 的开发工具包,包含所有必要的开发和调试工具。安装 SDK 之前应确保已安装 Python,然后从 Google 官方网站下载对应版本的 SDK 并安装。安装过程中可能会遇到错误,但通常重新...