Menu

O que é o Google App Engine ? (tradução do original)

Google App Engine permite executar suas aplicações web na infra-estrutura do Google. Aplicações App Engine são fáceis de construir, fácil de manter, e fácil de escalar conforme suas necessidades de tráfego e armazenamento crescem. Com App Engine, não existem servidores para manter: Você apenas sobe sua aplicação, e ela está pronta para servir seus usuários.

Você pode servir sua aplicação utilizando um subdomínio grátis no domínio appspot.com, ou utilizar o Google Apps para servir do seu próprio domínio. Você pode compartilhar sua aplicação com o mundo, ou limitar acesso aos membros da sua organização.

App Engine não custa nada para começar. Inscreva-se para uma conta gratuita, e você pode desenvolver e publicar sua aplicação para o mundo ver, sem custo ou obrigação. Uma conta gratuita pode utilizar até 500MB de armazenamento persistente e CPU e transferência de banda suficiente para aproximadamente 5 milhões de visualizações de página por mês.

Durante o lançamento de pré-estréia do Google App Engine, somente contas gratuitas estão disponíveis. Num breve futuro, você poderá comprar recursos computacionais adicionais.

O Ambiente da Aplicação

O Google App Engine facilita a construção de aplicações que funcionam de forma confiável, mesmo sobrecarregadas e com grandes quantidades de dados. O ambiente inclui as seguintes características:

  • servidor web dinâmico, com suporte completo às tecnologias web comuns
  • armazenamento persistente com consultas, ordenação e transações
  • escalabilidade automática e balanceamento de carga
  • APIs para autenticação de usuários e envio de e-mail utilizando Contas do Google
  • um ambiente local completo de desenvolvimento que simula o Google App Engine no seu computador

As aplicações Google App Engine são implementadas utilizando a linguagem de programação Python. O ambiente de execução inclui a linguagem Python completa e a maioria das bibliotecas Python padrão.

Embora Python seja atualmente a única linguagem suportada pelo Google App Engine, nós planejamos dar suporte a mais linguagens no futuro.

A Sandbox (área de testes)

Aplicações são executadas em um ambiente seguro que oferece acesso limitado ao sistema operacional. Estas limitações permitem que o App Engine distribua solicitações web para a aplicação entre múltiplos servidores, e inicie e pare os servidores para atender as demandas de tráfego. A sandbox isola sua aplicação em seu próprio ambiente seguro e confiável que é independente do hardware, sistema operacional e localização física do servidor web.

Exemplos das limitações do ambiente seguro de testes inclui:

  • Uma aplicação só pode acessar outros computadores na Internet através dos serviços de URL e e-mail e APIs. Outros computadores só podem conectar à aplicação através de solicitações HTTP (ou HTTPS) nas portas padrão.
  • Uma aplicação não pode escrever no sistema de arquivos. Uma app pode ler arquivos, mas somente arquivos que subiram com o código da aplicação. A app deve utilizar o datastore App Engine para todos os dados que persistirem entre solicitações.
  • O código da aplicação só é executado em resposta a uma solicitação web, e deve retornar os dados de resposta em poucos segundos. Um gerenciador de solicitações não pode dar origem a um sub-processo ou executar código depois que a resposta tenha sido enviada.

O Ambiente de Execução do Python

O App Engine oferece um ambiente de execução que utiliza a linguagem de programação Python. Outras linguagens de programação e configurações de ambiente de execução estão sendo consideradas para lançamentos futuros.

O ambiente de execução Python utiliza a versão 2.5.2.

O ambiente inclui as bibliotecas padrão do Python. Claro que chamar uma biblioteca que viola as restrições da sandbox, como tentar abrir uma porta ou escrever um arquivo, não funcionarão. Para conveniência, vários módulos na biblioteca padrão cujas características centrais não são suportadas pelo ambiente de execução, são desabilitadas e código que faz a importação delas provoca um erro.

O código da aplicação deve ser escrito exclusivamente em Python. Código com extensões escritas em C não é suportado.

O ambiente de execução Python oferece APIs Python ricas para o datastore, Contas do Google, URL fetch e serviços de email. O App Engine também oferece um framework web Python simples chamado webapp para facilitar a construção inicial de aplicações.

Para conveniência, o App Engine também inclui o framework de aplicações Django, versão 0.96.1. Note que o datastore App Engine não é um banco de dados relacional, que é requerido para alguns componentes do Django. Alguns componentes, como o mecanismo de modelos do Django, funcionam como documentado, enquanto que outros exigem um pouco mais de esforço. Veja as seções dos Artigos para dicas de utilização do Django com o App Engine.

Você pode subir outras bibliotecas de terceiros com sua aplicação, enquanto elas forem implementadas em Python puro e não exigirem qualquer módulo não suportado da biblioteca padrão.

Para mais informações sobre o ambiente de execução Python, veja O Ambiente de Execução do Python.

O Datastore

O App Engine oferece um poderoso serviço distribuído de armazenamento de dados com um mecanismo de consulta e transações. Assim como os servidores web distribuídos crescem com o tráfego, o datastore distribuído cresce com seus dados.

O datastore App Engine não é como um tradicional banco de dados relacional. Objetos de dados, ou "entities" (entidades), tem um tipo e um conjunto de propriedades. Consultas podem recuperar entidades de um determinado tipo filtrado e ordenar pelos valores das propriedades. Valores das propriedades podem ser de qualquer um dos property value types suportados.

A API Python para o datastore inclui uma interface de modelagem de dados que pode definir uma estrutura para entidades do datastore. Um modelo de dados pode indicar que uma propriedade precisa ter um valor dentro de uma determinada faixa, ou dar um valor padrão se nenhum valor for estabelecido. Sua aplicação pode dar tanto quanto ou o mínimo de estrutura para os dados que ela necessitar.

O datastore utiliza optimistic locking (travamento otimista) para controle de concorrência. A atualização de uma entidade ocorre em uma transação que é tentada novamente um número fixo de vezes se outros processos estão tentando atualizar a mesma entidade simultaneamente. Sua aplicação pode executar múltiplas operações de datastore numa única transação na qual todas são ou bem sucedidas ou todas falham, garantindo integridade dos seus dados.

O datastore implementa transações através de sua rede distribuída utilizando "entity groups" (grupos de entidades). Uma transação manipula entidades dentro de um único grupo. Entidades no mesmo grupo são armazenadas juntas para execucação eficiente de transações. Sua aplicação pode associar entidades à grupos quando as entidades são criadas.

Para mais informações sobre o datastore, veja a referência da API do Datastore.

Contas do Google

O App Engine inclui uma API de serviço para integração com as Contas do Google. Sua aplicação pode permitir a um usuário autenticar com uma conta do Google e acessar o endereço de e-mail e o nome de exibição associdado a uma conta. Utilizar as Contas do Google permite ao usuário utilizar sua aplicação mais rapidamente, porque o usuário não precisa criar uma nova conta. Também poupa você de implementar um sistema de contas de usuário para sua aplicação.

Se a sua aplicação está sendo executada no Google Apps, ela pode utilizar as mesmas características com membros da sua organização e suas contas Google Apps.

A API Users também pode dizer à aplicação se o usuário autenticado no momento é um administrador da aplicação. Isso facilita a implementação de áreas administrativas no seu site.

Para mais informações sobre integração com Contas do Google, veja a referência da API Users.

Serviços App Engine

O App Engine oferece uma variedade de serviços que possibilitam a você realizar operações comuns enquanto gerencia sua aplicação. As seguintes APIs são oferecidas para acessar estes serviços:

URL Fetch

Aplicações podem acessar recursos na Internet, como web services ou outros dados utilizando o serviço URF fetch do App Engine. O serviço URL fetch recupera recursos web utilizando a mesma infra-estrutura de alta velocidade do Google que recupera páginas para muitos outros serviços do Google. Para mais informações sobre o serviço URL fetch, veja a referência da API do URL Fetch.

Correio

Aplicações podem enviar mensagens de e-mail utilizando o serviço de e-mail do App Engine. O serviço de mail utiliza a infra-estrutura do Google para enviar mensagens de e-mail. Para mais informações sobre o serviço de e-mail, veja a referência da API Mail.

Memcache

O serviço Memcache oferece à sua aplicação um alto desempenho no cache in-memory key-value que é acessível por múltiplas instâncias da sua aplicação. Memcache é útil para dados que não necessitam da persistência e características transacionais do datastore, como dados temporários ou dados copiados do datastore para o cache para acessos em alta velocidade. Para mais informações sobre o serviço Memcache, veja a referência da API Memcache.

Manipulação de Imagens

O serviço Image permite à sua aplicação manipular imagens. Com esta API, você pode redimensionar, cortar, rotacionar e inverter imagens em formatos JPEG e PNG. Para mais informações sobre o serviço de manipulação de imagem, veja a referência da API Images.

Fluxo de trabalho do Desenvolvimento

O kit de desenvolvimento de software App Engine (SDK) inclui uma aplicação de servidor web que emula todos os serviços do App Engine no seu computador local. O SDK inclui todas as APIs e bibliotecas disponíveis no App Engine. O includes a web server application that emulates all of the App Engine services on your local computer. The SDK includes all of the APIs and libraries available on App Engine. O servidor web simula o ambiente seguro do sandbox, incluindo verificações de importações de módulos desabilitados e tentativas de acessar recursos do sistema sem permissão.

O SDK Python é implementado em Python puro, e é executado em qualquer plataforma com o Python 2.5, incluindo Windows, Mac OS X e Linux. Você pode pegar o Python para seu sistema no website do Python. O SDK está disponível em um arquivo Zip e instaladores estão disponíveis para Windows e Mac OS X.

Você pode baixar o SDK aqui.

O SDK também inclui uma ferramenta para subir sua aplicação para o App Engine. Uma vez que você tenha criado o código da sua aplicação, arquivos estáticos e de configuração, você executa a ferramenta para subir os dados. A ferramenta pergunta qual e-mail da sua conta Google e senha.

Quando você faz um novo lançamento maior de uma aplicação que já está sendo executada no App Engine, você pode subir o novo lançamento como uma nova versão. A versão antiga continuará servindo usuários até você trocar para a nova versão. Você pode testar uma nova versão no App Engine enquanto a versão antiga ainda está rodando.

O Console de Administração é a interface baseada em web para gerenciar suas aplicações que estão rodando no App Engine. Você pode utilizá-lo para criar novas aplicações, configurar nomes de domínios, mudar qual versão da sua aplicação está no ar, examinar logs de acesso e erro e navegar no datastore de uma aplicação.

Cotas e Limites

Criar uma aplicação App Engine não é somente fácil mas também, grátis! Você pode criar uma conta e publicar uma aplicação que pessoas podem utilizar imediatamente, sem custos e sem obrigação. Uma aplicação numa conta gratuita pode utilizar até 500MB de armazenamento e até 5 milhões de visualizações de página por mês.

Durante este período de pré-estréia, somente contas gratuitas estão disponíveis. Num futuro próximo, você poderá comprar recursos computacionais adicionais com preços competitivos de mercado. Contas gratuitas continuarão disponíveis após o período de pré-estréia.

Durante este período de pré-estréia, você pode registrar até 3 aplicações (atualmente este número foi aumentado para 10).

Limites de recursos da aplicação, ou "cotas", são atualizadas continuamente. Se a sua aplicação alcançar uma cota baseada em tempo, como por exemplo, largura de banda, a cota vai começar a atualizar imediatamente na taxa do limite estabelecido. Cotas fixas como utilização de armazenamento somente são aliviadas quando você reduzir a utilização.

Algumas características impõe limites não relacionados à cotas para proteger a estabilidade do sistema. Por exemplo, quando uma aplicação é chamada para servir uma solicitação web, ela deve resultar numa resposta dentro de alguns segundos. Se a aplicação demorar muito, o processo é terminado e o servidor retorna um código de erro ao usuário. O tempo de expiração da solicitação é dinâmico e pode ser reduzido se um gerenciador de solicitação alcança com frequência seu tempo de expiração para conservar recursos.

Outro exemplo de um limite de serviço é o número de resultados retornados de uma consulta. Uma consulta pode retornar no máximo 1.000 resultados. Consultas que retornariam mais resultados só retornam o máximo. Neste caso, uma solicitação que realiza uma consulta como esta não vai conseguir retornar uma solicitação antes do seu tempo de expiração mas o limite foi estabelecido para conservar recursos do datastore.

Tentativas de corromper ou abusar de cotas, através da operação de aplicações em múltiplas contas que funcionam em sequência são uma violação dos Termos do Serviço e podem resultar no bloqueio das aplicações ou contas.

Para mais informações...

Para mais informações sobre o Google App Engine:

Bem-vindo ao Google App Engine!