Introdução ao Google App Engine

17
Google App Engine Google App Engine PUG-PE março de 2010

description

Slides da palestra de Introdução ao Google App Engine, apresentada no Encontro do PUG-PE de março de 2010, por Rodrigo Amaral(Slides from the talk "Introduction to Google App Engine", presented at the 2nd Pernambuco Python Users Group Meeting, in march 2010, by Rodrigo Amaral)

Transcript of Introdução ao Google App Engine

Page 1: Introdução ao Google App Engine

Google App EngineGoogle App Engine

PUG-PEmarço de 2010

Page 2: Introdução ao Google App Engine

Qualquer desenvolvedor pode criar e hospedar

aplicações web usando a infraestrutura do

Google.

Inclusive você.

Page 3: Introdução ao Google App Engine

Isso significa ter mais escalabilidade,

disponibilidade e desempenho em suas aplicações, mas ainda não é tudo...

Page 4: Introdução ao Google App Engine

A melhor parte é poder fazer isso tudo usando Python!

Page 5: Introdução ao Google App Engine

É possível disponibilizar a aplicação em um domínio próprio ou como subdomínio de appspot.com

Page 6: Introdução ao Google App Engine

Distribuído, com suporte a consultas e transações

Não relacional: BigTable

Baseado em entidades que não possuem esquema

Estrutura é determinada pelo código da aplicação

Os objetos de dados possuem um tipo e um conjunto de propriedades

Armazenamento de Dados

Page 7: Introdução ao Google App Engine

API usa as contas do Google, mas nada impede que se implemente um esquema próprio

Autenticação de Usuários

Page 8: Introdução ao Google App Engine

URL fetching

Envio de e-mails

Memcache

Manipulação de imagens

Agendamento de tarefas

Outros Serviços

Page 9: Introdução ao Google App Engine

10 aplicações por conta

500 MB de armazenamento

5 milhões de pageviews por mês

Requisição expira em 30 segundos (timeout)

6,5 horas de CPU por dia

Algumas Restrições

...além de outras quotas de uso por API (mail, urlfecth, XMPP etc.)

Page 10: Introdução ao Google App Engine

Sandbox

Fluxo de Desenvolvimento

App Engine SDK

API Bibliotecas appcfg.pyAdminConsole

Python 2.5

dev_appserver.py

Page 11: Introdução ao Google App Engine

Estrutura básica de uma aplicação

app.yaml

script.py

● Identificação● Versão● Resolução de URLs● Permissões de acesso

● Processamento das requisições

● Declaração dos RequestHandlers

Datastore

Templates

resposta

Bibliotecas eFrameworks

webapp

Módulosda aplicação

requisição

Page 12: Introdução ao Google App Engine

Componentes de uma aplicação

Um aplicativo webapp contém três partes:

Classes RequestHandler que processam requisições e devolvem respostas

Uma instância de WSGIApplication que redireciona as requisições recebidas para os RequestHandlers, com base no URL

Uma rotina principal que executa o WSGIApplication usando um adaptador de CGI

Page 13: Introdução ao Google App Engine

A classe RequestHandler

Tem a finalidade de manipular uma requisição HTTP. Suas subclasses devem implementar um ou mais métodos correspondentes aos métodos de uma requisição HTTP:

get() post() put() options() delete() trace()

Page 14: Introdução ao Google App Engine

A classe WSGIApplication

Representa uma aplicativo que mapeia caminhos de URL para classes RequestHandler. Recebe como argumentos:

url_mapping: uma lista de tuplas que mapeia cada uma URL da aplicação para o RequestHandler correspondente

debug: valor True ou False que determina se a aplicação será executada em modo de depuração

Page 15: Introdução ao Google App Engine

DemonstraçãoDemonstração

Page 16: Introdução ao Google App Engine

Complementos e frameworks auxiliares

Alguns projetos que ajudam a reduzir a repetição de código e acelerar o desenvolvimento de aplicações: Google App Engine Helper for Django

http://code.google.com/p/google-app-engine-django/ Google App Engine Oil

http://code.google.com/p/google-app-engine-oil/ Google App Engine Patch (descontinuado)

☒http://code.google.com/p/app-engine-patch/

Page 17: Introdução ao Google App Engine

Referências

Documentação do Google App Engine em Português http://code.google.com/intl/pt-BR/appengine/docs/python/

Video: “Developing and deploying an application on Google App Engine” (legendado) http://www.youtube.com/watch?v=bfgO-LXGpTM

Galeria de Aplicativos http://appgallery.appspot.com/