Tutorial Google App Engine Python

Serviços do App Engine

Nós já utilizamos alguns dos serviços do App Engine no primeiro website:

  • O runtime Python, que escala automaticamente as nossas instâncias de servidor de aplicação.
  • O serviço de arquivos estáticos, otimizado para servir o conteúdo de nossos projetos.
  • A SDK que simplifica o processo de desenvolvimento e release.

O App Engine possui diversos outros serviços que podem ser utilizados em uma aplicação web.

Datastore

O Datastore é a base de dados não-relacional que é pré-configurada para seus projetos do Google Cloud. Ele possui recursos como:

  • Transações atômicas
  • Alta disponibilidade para leitura e escrita
  • Consultas consistentes para queries com um ancestral
  • Consistência eventual para todas as outras consultas

O Datastore não possui um esquema restrito, apesar de ser possível reforçá-lo em seu código. A modelagem de dados no App Engine é realizada por meio do pacote ndb, que é muito parecido com a modelagem de dados realizada pelo framework Django.

Memcache

Toda aplicação escalável utiliza-se de diferentes níveis de cache, incluindo o cache de dados mantidos em memória. Para este propósito, o Google App Engine possui um cache em memória, distribuído e visível globalmente. Isso significa que os dados mantidos em cache por uma instância, são visíveis em outras.

Uma boa prática na utilização do cache é manter o resultado de processamentos demorados em memória. Por exemplo, consultas ao banco de dados que são frequentes, podem ter seus resultados mantidos em cache, reduzindo consideravelmente o tempo de resposta de seu aplicativo. Além disso, é possível manter o resultado de qualquer processamento realizado, como um RSS das notícias da página principal.

URL Fetch

Aplicações do Google App Engine podem se comunicar com outras aplicações, ou acessar outros recursos na web. Para isso, as aplicações podem utilizar o serviço URL Fetch, que permite iniciar conexões HTTP e HTTPS com outros servidores, e consumir o resultados destas requisições. O Serviço de URL Fetch utiliza a infra-estrutura distribuída de clientes HTTP da rede do Google, por razões de escalabilidade e performance.

Taskqueue

Uma das mais poderosas ferramentas do App Engine, as filas de tarefas permitem que você distribua o processamento, enfileirando tarefas para serem executadas fora do escopo da requisição do usuário.

O App Engine se encarregará de executar, de forma eficiente e escalável, todas as tarefas de sua fila.

Com este recurso, você pode realizar tarefas como

  • Envio de e-mails transacionais de forma assíncrona
  • Processamento em background, como a exportação de relatórios
  • Mutações globais em sua base de dados

Entre outros.

Outros Serviços

O App Engine ainda possui um pool de outros serviços, que podem ser utilizados pela sua aplicação, tais como:

  • Serviço de manipulação de imagens
  • Canais para notificações push diretamente no browser
  • Serviço de análise de logs
  • Autenticação via OAuth e Contas do Google