Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Aplicações Web com Python e Google App Engine

Aplicações Web com Python e Google App Engine

Visão geral dos recursos do Google App Engine e seu ambiente de execução de aplicações em Python

Rodrigo Amaral

December 11, 2013
Tweet

More Decks by Rodrigo Amaral

Other Decks in Programming

Transcript

  1. Aplicações web são legais ▪ Multiplataforma ▪ Acessadas de qualquer

    lugar ▪ Fácil distribuição ▪ Atualização instantânea ▪ Correção de bugs controlada
  2. Mas as coisas podem ficar complicadas ▪ Múltiplos acessos simultâneos

    ▪ Administração de servidores ▪ Precisa de alta disponibilidade ▪ Custos de hospedagem ▪ Programação precisa ser ágil
  3. Platform as a Service (PaaS) ▪ Delegar tarefas de administração

    ▪ Permitir escalabilidade ▪ Reduzir os custos iniciais ▪ Prover serivços auxiliares
  4. Python ▪ Tipagem dinâmica ▪ Uso geral ▪ Multiparadigma ▪

    Sintaxe clara e legível ▪ Introspecção poderosa ▪ Rica biblioteca padrão
  5. Python cabe no seu cérebro class HelloWorld { public static

    void main(String[] args) { System.out.println("Hello, World!"); } } print "Hello, World!" JAVA PYTHON
  6. Python cabe no seu cérebro (2) vetor = [1, 2,

    3, 4, 5, 6, 7] quadrado_pares = [n ** 2 for n in vetor if n % 2 == 0] print(quadrado_pares) # mostra [4, 16, 36] QUADRADO DOS NÚMEROS PARES EM UM VETOR
  7. Python cabe no seu cérebro (3) import random sorteio =

    'Pedro Maria Paulo Joana Renato Sofia'.split() print random.choice(sorteio) SORTEIO SIMPLES
  8. Sandbox ▪ Ambiente protegido ▪ Facilita distribuição da demanda ▪

    Não escreve no sistema de arquivos ▪ Somente HTTP(S) nas portas padrão ▪ Não dispara subprocessos ▪ Não enxerga outras aplicações
  9. Armazenamento de dados ▪ Datastore • banco de dados não-relacional

    • entidades, tipos, propriedades • schemaless ▪ Google Cloud SQL • banco de dados relacional ▪ Google Cloud Storage
  10. Serviços ▪ URL Fetch ▪ Mail ▪ XMPP ▪ Memcache

    ▪ Manipulação de imagens ▪ Fila de tarefas
  11. Python App Engine SDK ▪ Servidor de aplicação que simula

    o ambiente App Engine • dev_appserver.py ▪ Utilitário para upload • appcfg.py ▪ Interface gráfica (Windows e Mac) ▪ Python 2.7
  12. Web Server Gateway Interface (WSGI) ▪ Especifica a comunicação entre

    servidores web e aplicações ▪ Se o framework é compatível, funciona com o App Engine ▪ Django, Flask, Pyramid, Bottle etc. ▪ webapp2
  13. Estrutura da aplicação Datastore Templates Cliente app.yaml Identificação Versão Resolução

    de URLs Permissões script.py Aplicação WSGI Módulos da aplicação Frameworks e bibliotecas APIs de serviços requisição resposta
  14. relogio.py import webapp2 import datetime class PaginaPrincipal(webapp2.RequestHandler): def get(self): self.response.headers['Content-type']

    = 'text/plain' self.response.write(datetime.datetime.now()) aplicacao = webapp2.WSGIApplication([ ('/', PaginaPrincipal) ], debug=True)
  15. Servidor de aplicação local dev_appserver.py # dev_appserver.py <diretorio_da_aplicacao> Linha de

    comando INFO 2013-12-09 19:58:56,850 api_server.py:138] Starting API server at: http://localhost:50958 INFO 2013-12-09 19:58:56,863 dispatcher.py:171] Starting module "default" running at: http://localhost:8080 INFO 2013-12-09 19:58:56,867 admin_server.py:117] Starting admin server at: http://localhost:8000
  16. Para saber mais Google Developers https://developers.google.com/appengine/ Programming Google App Engine

    Livro - Editora O’Reilly Stack Overflow http://stackoverflow.com/questions/tagged/google-app-engine