quarta-feira, 3 de março de 2010

Sobre o Google Apps Engine - GAE

Conhecendo o GAE (Google Application Engine)
ctaurion 120000QEUW | Feb 23 | Tags: cloudcomputing | Comments (2) | Visits (110)

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 (http://moderator.appspot.com/), 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. Estas aplicações podem estar abertas ao mundo todo ou serem limitadas apenas aos funcionários de sua empresa. Existe um domínio especifico para estas aplicações, chamado appspot.com, onde a aplicação pode ter qualquer nome que o usuário deseje.


Uma caracteristica 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 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 que o usuário pague 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. Estas 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 se 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 1000.


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 abertos. 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, estas 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.

Nenhum comentário:

Postar um comentário