Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de...
Transcript of Google App Engine - pugpe.files.wordpress.com · Python 2.5 dev_appserver.py. Estrutura básica de...
![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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/1.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/2.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/3.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/4.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/5.jpg)
É 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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/6.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/7.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/8.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/9.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/10.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/11.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/12.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/13.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/14.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/15.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/16.jpg)
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](https://reader033.fdocumentos.com/reader033/viewer/2022051815/604127217135093dc26e5f90/html5/thumbnails/17.jpg)
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/