了解GAE相关介绍
LOGO
武汉大学计算机学院----20XX年级硕士陈小强
GAE(Google App Engine)是络应用程序的平台,使用Google管理的数据中心,它跨越多个服务器和数据中心来虚拟化应用程序,是最全面的PaaS平台。开发时间:20XX年4月7日发布第一个beta版操作系统:适应任何操作系统(网络应用程序) 支持语言:Java、Python、Go(google开发)、Php 类似产品:(Cloud Storage、Bigtable、Cloud Sql、Compute Engine)- 三种云异同点
GAE的免费额度500M存储空间、每月500万次PV Google 账号就可以在Google App Engine上注册和开通一个免费账号,免费账号允许你创建10个应用,每一个应用提供1GB的容量,月流量是60GB(传出带宽是1GB/天,传入带宽1GB/天) GAE的收费标准流入带宽:0.1美元/GB 流出带宽:0.12美元/GB CPU 时间:0.1美元/CPU小时存储:0.15美元/GB 每月GAE使用的API 网址提取应用程序可以使用App Engine 的网址提取服务访问互联网上的资源,例如,网络服务或其他数据。网址提取服务使用高速Google 基础架构检索网络资源,很多其他Google 产品也通过该基础架构检索网页。邮件应用
程序可以使用App Engine 的邮件服务发送。邮件服务使用Google 基础架构发送。内存
缓存内存缓存服务为应用程序提供高性能的内存中键值缓存,该缓存可供多个应用程序实例访问。对于不需要数据存储区的持久性和事务功能的数据(例如,临时数据或从数据存储区复制到缓存以进行高速访问的数据),内存缓存是非常有用的。
GAE使用的API Google 帐户处理用户名及密码相关认证信息。图片处理通过使用图片服务,应用程序可以对图片进行处理。通过使用该API,您可以裁剪、旋转和翻转JPEG 和PNG 格式的图片以及调整图片大小。
GAE使用的API(66个)
GAE平台设计理念重用现有的Google技术:比如Datastore是基于Google的bigtable(分布式存储技术)技术,Images服务是基于Picasa的,用户认证服务是利用Google Account的,Email服务是基于Gmail的等。无状态:为了让更好地支持扩展,Google没有在应用服务器层存储任何重要的状态,而主要在datastore这层对数据进行持久化,这样当应用流量突然爆发时,可以通过为应用添加新的服务器来实现扩展。硬限制:比如无法创建Socket和Thread等有限的系统资源,这样能保证不让一些恶性的应用影响到与其临近应用的正常运行,同时也能保证在应用之间能做到一定的隔离。
GAE平台设计理念利用Protocol Buffers(协议缓冲)技术来解决服务方面的异构性:应用服务器和很多服务相连,有可能会出现异构性的
问题,比如应用服务器是用Java写的,而部分服务是用C++写的等。Google在这方面的解决方法是基于语言中立,平台中立和可扩展的Protocol Buffer(数据交换格式、独立于语言、独立于平台),并且在App Engine平台上所有API的调用都需要在进行RPC (Remote Procedure Call,远程方面调用)之前被编译成Protocol Buffer的二进制格式。分布式数据库:因为App Engine将支撑海量的网络应用,所以独立数据库的设计肯定是不可取的,而且很有可能将面对起伏不定的流量,所以需要一个分布式的数据库来支撑海量的数据和海量的查询。使用Datastore非关系型数据库,不同于MySql、SQL Server、Oracle 数据库关系型数据库管理。
GAE架构组图
前端前端
datastore
后端
GAE前端Front End: 既可以认为它是Load Balancer,也可以认为它是Proxy,它主要负责负载均衡和将请求转发给App Server(应用服务器)或者Static Files等工作。Static Files: 在概念
上,比较类似于CDN(Content Delivery Network,内容分发网络), 用于存储和传送那些应用附带的静态
文件,比如图片,CSS和JS 脚本等。App Server: 用于处理用户发来的请求,并根据请求的内容来调用后面的Datastore和服务。负载均衡的理解
App Master: 是在应用服务器间调度应用,并将调度之后的情况通知Front End。
GAE的Datastore 它是基于BigTable(分布式数据存储)技术的分布式数据库,虽然其也可以被理解成为一个服务,但是由于其是整个App Engine唯一存储持久化数据的地方,所以其是App Engine中一个非常核心的模块
GAE后端整个服务包括很多服务供App Server调用,比如Memcache,图形,用户,URL抓取和任务队列等。
GAE处理http请求过程用户发送一个HTTP请求。Front End接受这个请求,并将这个请求转发给一个空闲的App Server。App Server会处理这个请求。检查用于处理这个请求的Handler 是不是已经被初始化了,如果没有的话,需要对这个Handler进行初始化。
调用服务的用户认证服务来对用户进行认证,如果失败的话,需要终止整个请求的处理工作,并返回用户无法被认证的信息。查看这个请求所需的数据是否已经缓存在Memcahe中,如果没有的话,将对Datastore发出查询请求来得到数据。通过
整合上步得到数据来生成相关的HTML,并返回给用户。
GAE架构组图
前端前端
datastore
http http
空闲app server
先认证,是否在缓存
返回查询数据
GAE的不足在App Engine的文件系统中,开发者只有读取的权限。App Engine仅可在回应HTTP请求时执行代码(计划的后台任务、任务队列和XMPP服务则不在此限)。用户可以上传任意的Python模块
,但必须是纯Python模块,不得包含C扩展程序或其他需要编译的代码。
App Engine限制每次Datastore请求最多返回1000行数据。Java应用程序不能创建新的线程。Datastore使用类似于sql的gql查询语言。
Google云计算原理
Google云计算应用MapReduce GFS BigTable Chubb y18
Google设计GFS的动机Google需要支持海量数据存储的文件系统C 购置昂贵的分布式文件系统与硬件?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论