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

Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

Google App EngineGoogle App Engine

PUG-PEmarço de 2010

Page 2: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

Qualquer desenvolvedor pode criar e hospedar

aplicações web usando a infraestrutura do

Google.

Inclusive você.

Page 3: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

Isso significa ter mais escalabilidade,

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

Page 4: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

A melhor parte é poder fazer isso tudo usando Python!

Page 5: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

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

Page 6: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

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: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

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

Autenticação de Usuários

Page 8: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

URL fetching

Envio de e-mails

Memcache

Manipulação de imagens

Agendamento de tarefas

Outros Serviços

Page 9: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

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: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

Sandbox

Fluxo de Desenvolvimento

App Engine SDK

API Bibliotecas appcfg.pyAdminConsole

Python 2.5

dev_appserver.py

Page 11: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

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: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

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: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

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: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

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: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

DemonstraçãoDemonstração

Page 16: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

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: Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de uma aplicação app.yaml script.py ... Google App Engine Oil

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/