Google App Engine - Google App Engine

Google App Engine
Desenvolvedor (s) Google
lançamento inicial 7 de abril de 2008 ; 13 anos atrás ( 07-04-2008 )
Modelo Plataforma como serviço
Local na rede Internet nuvem .google .com / appengine /

O Google App Engine (frequentemente referido como GAE ou simplesmente App Engine ) é uma plataforma de computação em nuvem como um serviço para desenvolver e hospedar aplicativos da web em data centers gerenciados pelo Google . Os aplicativos são colocados em área restrita e executados em vários servidores. O App Engine oferece escalonamento automático para aplicativos da web - conforme o número de solicitações aumenta para um aplicativo, o App Engine aloca automaticamente mais recursos para o aplicativo da web lidar com a demanda adicional.

O Google App Engine oferece suporte principalmente a aplicativos Go , PHP , Java , Python , Node.js , .NET e Ruby , embora também possa oferecer suporte a outras linguagens por meio de "tempos de execução personalizados". O serviço é gratuito até um determinado nível de recursos consumidos e apenas em ambiente padrão, mas não em ambiente flexível. As taxas são cobradas para armazenamento adicional, largura de banda ou horas de instância exigidas pelo aplicativo. Foi lançado pela primeira vez como uma versão de visualização em abril de 2008 e saiu da visualização em setembro de 2011.

Recursos / restrições com suporte

Tempos de execução e estrutura

O Google App Engine oferece suporte principalmente a aplicativos Go , PHP , Java , Python , Node.js , .NET e Ruby , embora também possa oferecer suporte a outras linguagens por meio de "tempos de execução personalizados".

As estruturas da web Python que são executadas no Google App Engine incluem Django , CherryPy , Pyramid , Flask , web2py e webapp2, bem como uma estrutura de webapp personalizada escrita pelo Google e várias outras projetadas especificamente para a plataforma que surgiu desde o lançamento. Qualquer estrutura Python que suporte o WSGI usando o adaptador CGI pode ser usada para criar um aplicativo; a estrutura pode ser carregada com o aplicativo desenvolvido. Bibliotecas de terceiros escritas em Python puro também podem ser carregadas.

O Google App Engine oferece suporte a muitos padrões e estruturas Java. O núcleo para isso é a tecnologia servlet 2.5 usando o Jetty Web Server de código aberto , junto com tecnologias que o acompanham, como JSP . JavaServer Faces opera com algumas soluções alternativas. Uma versão mais recente do App Engine Standard Java em Beta oferece suporte a Java8, Servlet 3.1 e Jetty9.

Embora o banco de dados integrado, Google Cloud Datastore , possa ser desconhecido para os programadores, ele é acessado e compatível com JPA , JDO e pela API simples de baixo nível. Existem várias bibliotecas e estruturas alternativas que você pode usar para modelar e mapear os dados para o banco de dados, como Objectify, Slim3 e framework Jello .

O Spring Framework funciona com GAE. No entanto, o módulo Spring Security (se usado) requer soluções alternativas. O Apache Struts 1 é compatível e o Struts 2 é executado com soluções alternativas.

A estrutura da web do Django e os aplicativos em execução podem ser usados ​​no App Engine com modificação. O Django-nonrel visa permitir que o Django trabalhe com bancos de dados não relacionais e o projeto inclui suporte para App Engine.

Confiabilidade e Suporte

Todos os aplicativos do App Engine cobrados têm um SLA de 99,95% de tempo de atividade .

O App Engine foi projetado de forma que possa sustentar várias interrupções do datacenter sem qualquer tempo de inatividade. Essa resiliência ao tempo de inatividade é mostrada pela estatística de que o High Replication Datastore viu 0% de tempo de inatividade em um período de um ano.

O suporte pago dos engenheiros do Google é oferecido como parte das contas Premier.

Download em massa

A versão 1.2.2 do SDK adiciona suporte para downloads em massa de dados usando Python. Os projetos Python de código aberto gaebar, approcket e gawsh também permitem que os usuários baixem e façam backup dos dados do App Engine. Nenhum método para download em massa de dados do GAE usando Java existe atualmente.

Restrições

  • Os desenvolvedores têm acesso somente leitura ao sistema de arquivos no App Engine. Os aplicativos podem usar apenas sistemas de arquivos virtuais, como gae-filestore.
  • O App Engine só pode executar o código chamado de uma solicitação HTTP (as tarefas em segundo plano programadas permitem solicitações HTTP de chamada automática).
  • Os usuários podem fazer upload de módulos Python arbitrários, mas apenas se forem Python puro; Módulos C e Pyrex não são suportados.
  • Os aplicativos Java podem usar apenas um subconjunto (A Lista Branca da Classe JRE) das classes da edição padrão do JRE. Essa restrição não existe com o tempo de execução Java8 padrão do App Engine.
  • Um processo iniciado no servidor para responder a uma solicitação não pode durar mais de 60 segundos (com a versão 1.4.0, essa restrição não se aplica mais a trabalhos em segundo plano).
  • Não oferece suporte a sessões persistentes (também conhecidas como afinidade de sessão), apenas sessões replicadas são compatíveis, incluindo a limitação da quantidade de dados sendo serializados e o tempo para a serialização da sessão.

Principais diferenças

Diferenças com outro aplicativo de hospedagem

Em comparação com outros serviços de hospedagem escalonáveis, como Amazon EC2 , o App Engine fornece mais infraestrutura para facilitar a escrita de aplicativos escalonáveis, mas só pode executar uma gama limitada de aplicativos projetados para essa infraestrutura.

A infraestrutura do App Engine elimina muitos dos desafios de desenvolvimento e administração do sistema de construção de aplicativos para escalar para centenas de solicitações por segundo e além. O Google lida com a implantação de código em um cluster, monitoramento, failover e inicialização de instâncias de aplicativo conforme necessário.

Enquanto outros serviços permitem que os usuários instalem e configurem quase qualquer software compatível com * NIX, o App Engine requer que os desenvolvedores usem apenas suas linguagens, APIs e estruturas com suporte . As APIs atuais permitem armazenar e recuperar dados do banco de dados Google Cloud Datastore orientado a documentos ; fazer solicitações HTTP; enviando email; manipulação de imagens; e cache. O Google Cloud SQL pode ser usado para aplicativos do App Engine que requerem um back-end de banco de dados compatível com MySQL relacional .

Cotas por dia e por minuto restringem largura de banda e uso de CPU, número de solicitações atendidas, número de solicitações simultâneas e chamadas para as várias APIs, e solicitações individuais são encerradas se levarem mais de 60 segundos ou retornarem mais de 32 MB de dados .

Diferenças entre SQL e GQL

O banco de dados Google Cloud Datastore integrado do Google App Engine tem uma sintaxe semelhante a SQL chamada " GQL " ( Google Query Language ). GQL não suporta a instrução Join . Em vez disso, relacionamentos um-para-muitos e muitos-para-muitos podem ser realizados usando ReferenceProperty().

O Google Firestore é o sucessor do Google Cloud Datastore e substitui o GQL por um método de consulta baseado em documento que trata os objetos armazenados como coleções de documentos .

Preocupações de portabilidade

Os desenvolvedores se preocupam com o fato de os aplicativos não serem portáteis do App Engine e temem ficar presos à tecnologia. Em resposta, há uma série de projetos para criar back-ends de código aberto para as várias APIs proprietárias / fechadas do mecanismo de aplicativo, especialmente o armazenamento de dados. AppScale , CapeDwarf e TyphoonAE são alguns dos esforços de código aberto.

O AppScale implanta e dimensiona automaticamente aplicativos não modificados do Google App Engine em sistemas populares de nuvem pública e privada e clusters locais. O AppScale pode executar aplicativos Python, Java, PHP e Go no EC2, Google Compute Engine, Softlayer, Azure e outros fornecedores de nuvem.

O TyphoonAE pode executar aplicativos Python App Engine em qualquer nuvem compatível com máquinas Linux.

A estrutura da web Web2py oferece migração entre bancos de dados SQL e o Google App Engine, mas não oferece suporte a vários recursos específicos do App Engine, como transações e namespaces.

Kubernetes é um sistema de controle de trabalho de código aberto inventado pelo Google para abstrair a infraestrutura para que aplicativos em contêineres de código aberto (por exemplo, Docker) possam ser executados em muitos tipos de infraestrutura, como Amazon Web Services , Microsoft Azure e outros. Esta é uma das respostas do Google à preocupação com a portabilidade.

Back-ends

No Google I / O 2011, o Google anunciou os back-ends do App Engine , que podem ser executados continuamente e consumir mais memória. A API Backend foi descontinuada em 13 de março de 2014 em favor da API Modules.

Google Cloud SQL

Em outubro de 2011, o Google previu um banco de dados SQL de manutenção zero, que suporta JDBC e DB-API. Este serviço permite criar, configurar e usar bancos de dados relacionais com aplicativos do App Engine. O Google Cloud SQL é compatível com MySQL 8.0, 5.7 e 5.6.

Cotas de uso

O Google App Engine requer uma conta do Google para começar, e uma conta pode permitir que o desenvolvedor registre até 25 aplicativos gratuitos e um número ilimitado de aplicativos pagos.

O Google App Engine define cotas de uso para aplicativos gratuitos. Extensões a essas cotas podem ser solicitadas e os autores do aplicativo podem pagar por recursos adicionais.

Veja também

Referências

Bibliografia

links externos