DevSecOpsARTIGO

É possível o uso corporativo do Google Application Engine?

Ultimamente tenho recebido alguns emails indagando minha opinião sobre o GAE (Google Application Engine) e sua aplicabilidade em ambientes corporativos. Então, para começar, vamos detalhar um pouco o que é o GAE e suas funcionalidades.

O GAE é a oferta do Google para a camada de cloud computing que chamamos de PaaS ou Platform-as-a-Service. O GAE se propõe a criar uma plataforma para desenvolvimento e execução de aplicativos Web, que rodarão na nuvem do próprio Google.

É uma tecnologia bastante recente, apresentada ao mercado em abril de 2008, tanto que com algumas exceções, como o Google Moderator, as aplicações do próprio Google Apps não foram escritas usando o GAE.

A integração com sistemas on-premises é feita via um recurso chamado SDC (Secure Data Connector), mas que é viável apenas para integrações relativamente simples. Na verdade, a estratégia do Google tem sido claramente bottom-up, oferecendo o GAE basicamente para desenvolvedores, sem propor seu uso para ambientes corporativos. A sua proposição de valor não tem alcançado os CIOs ou CTOs das grandes corporações. Aliás, o DNA cultural do Google não é voltado para grandes empresas e sim para usuários finais e desenvolvedores.

Mas o que o GAE propõe aos desenvolvedores?

Que eles construam e testem suas aplicações em máquinas locais (fazendo o download do AppEngine Software Development Kit) e uma vez tendo a aplicação pronta, com um simples upload, torná-la disponível diretamente da nuvem do Google.

Essas aplicações podem estar abertas ao mundo todo ou serem limitadas apenas aos funcionários de sua empresa. Existe um domínio especifico para essas aplicações, chamado appspot.com, onde a aplicação pode ter qualquer nome que o usuário deseje.

Uma característica interessante do modelo GAE é que o custo para começar a usá-lo é zero. Todas as aplicações podem usar uma quota de até 500 MB de memória e um razoável tempo de CPU, bem como atender a até 5 milhões de page views por mês, sem pagar absolutamente nada. Mas o consumo de recursos acima das quotas vai obrigar ao usuário a pagar os excedentes ao Google.

Existem vantagens e desvantagens

Com o GAE o desenvolvedor não precisa se preocupar com questões como disponibilidade de middleware ou gerenciamento do sistema. Essas facilidades são disponibilizadas de forma automática e transparente para os seus usuários.

Por outro lado, algumas restrições incomodam, como por exemplo, a possibilidade de apenas escrever programas em Python e Java (até agora nada se falou em PHP ou Perl…), voltadas para Web, e que devem retornar resultados em  uma janela de tempo de 30 segundos. Se a aplicação demorar mais, o request é encerrado e a nuvem retorna um código de erro ao usuário. Outra restrição é o numero de resultados que podem retornar em resposta a uma query: máximo de 1.000. 

Também a ausência de uma base de dados relacional é outra restrição bem desconfortável. A persistência dos programas GAE é feita via BigTable, sistema de banco de dados não relacional, que suporta a própria estrutura de dados da nuvem do Google.

Embora o BigTable seja amplamente escalável, é otimizado para operações de leitura, típicas dos acessos do motor de busca do Google. O acesso ao BigTable é efetuado por um conjunto de APIs que não suportam a linguagem SQL. Além disso, por não ter visão relacional, deixa a validação da integridade dos dados a cargo do desenvolvedor.

Outro ponto negativo é que o GAE não suporta aplicações baseadas no estilo SOA (Service Application Architecture), no qual existe uma clara separação entre as camadas de software através de interfaces formais e abertas.

SOA é fundamental para integração entre sistemas e o GAE, não suportando padrões SOAP e WSDL, cria um grande entrave, pois não se imaginam aplicações corporativas, salvo raras exceções, que não tenham grande demanda de integração com outras.

Na minha opinião, essas restrições impedem que uma aplicação GAE evolua para ser corporativa e integrada a ambientes legados. Além disso, ainda não existem casos práticos de uso em aplicações corporativas e eu, pessoalmente, recomendo que o GAE seja usado, pelo menos por enquanto, apenas para aquelas novas e pequenas aplicações Web de âmbito departamental ou stand-alone, sem integração com aplicações legadas.

É CEO da Litteris Consulting. Profissional e estudioso de Tecnologia da Informação desde fins da década de 70, com educação formal diversificada, em Economia, mestrado em Ciência da Computação e MBA em Marketing de Serviços, e experiência profissional moldada pela passagem em empresas de porte mundial. Escreve constantemente sobre tecnologia da informação em publicações especializadas como CIO Magazine, Mundo Java, além do iMasters, e apresenta palestras em eventos e conferências de renome. É autor de sete livros que abordam assuntos como Software Livre, Grid Computing, Software Embarcado, Cloud Computing e Big data.

Ver perfil