Google App Engine e Python

                   Renzo Nuccitelli
           Engenheiro de Computação – ITA
               renzo@nuccitec.com.br
Objetivo


Explicar a infra do Google App Engine utilizando
  o framework Python Webapp-CE
Roteiro
•   Google App Engine
•   Webapp-CE
•   Problema Base: Cadastro de Pessoas
•   Controller
•   Modelo
•   View
•   Formulário e Validação
•   Aplicação Comercial: Revelação Virtual
•   Conclusões
Google App Engine
•   Cloud do Google
•   Suporte a 3 linguagens: Java, Python e Go
•   Modelo SaaS (Software as a Service)
•   https://appengine.google.com/
•   GAE para os mais íntimos
Google App Engine : Vantagens
•   Escalável
•   Centralizada e excelente documentação
•   Excelente API
•   “Pay as you go”, com cota grátis
•   Abstração da camada de persistência
•   Definição dos dados na própria linguagem.
Google App Engine: Desvantagens
•   Lock-in da API e dos dados
•   Restrições nas pesquisas
•   Restrições na duração de requisições
•   Adaptação de desenvs acostumados a outros
    ambientes
Webapp-CE
• Framework web
• Mapeamento de urls ao estilo PHP
• Validação de formulários
• Transformação de dados para o modelo
• Instalação através da simples cópia de
  arquivos a setup de arquivo app.yaml
• http://code.google.com/p/webapp-ce/
Problema Base
• Construir Applicativo Web para cadastro de
  pessoas
• Ferramentas: Google Launcher + Pydev (Plugin
  Python para Eclipse)
• Será que fazemos em 30 minutos?
Controller

• Criar controller na pasta private
• Delegar handler para cehandler no app.yaml
• Mapear links com cengine
Modelo
• Big Table – Banco de Dados não relacional
• Módulo db do GAE
• Criar Classe User com Nome (name) e
  Telefone (phone) e Id do Google (googleid)
• Criar método estático para achar usuário
  corrente logado (getCurrent)
View
• Templates Django
• Utilizar classe Form do pacote ce.forms para
  gerar o formulário básico
• Criar formulário para cadastro de usuário
  (módulo ce.forms)
• Criar lista de usuários cadastrados
• Criar classe para renderizar templates
Formulário e Validação
• Classe Form de ce.forms já faz validação
  básica
• Método validate
• Método transform
• Possível extender com suas regras de
  validação e transformação
Aplicação Comercial
• Site Revelação Virtual
  www.revelacaovirtual.com.br
• Mais de 200 mil fotos transmitidas em 2010
• Desenvolvido com equipe enxuta
Conclusões
• Apenas introdução, faltou muito coisa
  (Segurança, Filtros, Cache e etc)
• Ambdev simples
• Administração via web
• Framework enxuto e open source
• Opção barata para startups de tecnologia
  (cota grátis e custo variável)
Roteiro
•   Google App Engine
•   Webapp-CE
•   Problema Base: Cadastro de Pessoas
•   Controller
•   Modelo
•   View
•   Formulário e Validação
•   Aplicação Comercial Real: Revelação Virtual
•   Conclusões
Objetivo


Explicar a infra do Google App Engine utilizando
  o framework Python Webapp-CE
Obrigado pela atenção!
      Perguntas?

Python, Google App Engine e Webapp-CE

  • 1.
    Google App Enginee Python Renzo Nuccitelli Engenheiro de Computação – ITA renzo@nuccitec.com.br
  • 2.
    Objetivo Explicar a infrado Google App Engine utilizando o framework Python Webapp-CE
  • 3.
    Roteiro • Google App Engine • Webapp-CE • Problema Base: Cadastro de Pessoas • Controller • Modelo • View • Formulário e Validação • Aplicação Comercial: Revelação Virtual • Conclusões
  • 4.
    Google App Engine • Cloud do Google • Suporte a 3 linguagens: Java, Python e Go • Modelo SaaS (Software as a Service) • https://appengine.google.com/ • GAE para os mais íntimos
  • 5.
    Google App Engine: Vantagens • Escalável • Centralizada e excelente documentação • Excelente API • “Pay as you go”, com cota grátis • Abstração da camada de persistência • Definição dos dados na própria linguagem.
  • 6.
    Google App Engine:Desvantagens • Lock-in da API e dos dados • Restrições nas pesquisas • Restrições na duração de requisições • Adaptação de desenvs acostumados a outros ambientes
  • 7.
    Webapp-CE • Framework web •Mapeamento de urls ao estilo PHP • Validação de formulários • Transformação de dados para o modelo • Instalação através da simples cópia de arquivos a setup de arquivo app.yaml • http://code.google.com/p/webapp-ce/
  • 8.
    Problema Base • ConstruirApplicativo Web para cadastro de pessoas • Ferramentas: Google Launcher + Pydev (Plugin Python para Eclipse) • Será que fazemos em 30 minutos?
  • 9.
    Controller • Criar controllerna pasta private • Delegar handler para cehandler no app.yaml • Mapear links com cengine
  • 10.
    Modelo • Big Table– Banco de Dados não relacional • Módulo db do GAE • Criar Classe User com Nome (name) e Telefone (phone) e Id do Google (googleid) • Criar método estático para achar usuário corrente logado (getCurrent)
  • 11.
    View • Templates Django •Utilizar classe Form do pacote ce.forms para gerar o formulário básico • Criar formulário para cadastro de usuário (módulo ce.forms) • Criar lista de usuários cadastrados • Criar classe para renderizar templates
  • 12.
    Formulário e Validação •Classe Form de ce.forms já faz validação básica • Método validate • Método transform • Possível extender com suas regras de validação e transformação
  • 13.
    Aplicação Comercial • SiteRevelação Virtual www.revelacaovirtual.com.br • Mais de 200 mil fotos transmitidas em 2010 • Desenvolvido com equipe enxuta
  • 14.
    Conclusões • Apenas introdução,faltou muito coisa (Segurança, Filtros, Cache e etc) • Ambdev simples • Administração via web • Framework enxuto e open source • Opção barata para startups de tecnologia (cota grátis e custo variável)
  • 15.
    Roteiro • Google App Engine • Webapp-CE • Problema Base: Cadastro de Pessoas • Controller • Modelo • View • Formulário e Validação • Aplicação Comercial Real: Revelação Virtual • Conclusões
  • 16.
    Objetivo Explicar a infrado Google App Engine utilizando o framework Python Webapp-CE
  • 17.