Foi então que um amigo/guru me indicou o Google App Engine (GAE), dizendo que eu não precisaria me preocupar com configuração alguma no servidor. Para me convencer da facilidade no uso do GAE, ele pediu pra eu instalar o plugin no Eclipse e contruiu na minha frente uma aplicação simples: apenas retornar o resultado de uma soma. Apesar da simplicidade da aplicação, ele terminou em apenas 5 minutos, incluindo o tempo de publicar na internet. Depois dessa demonstração e de uma lida nos custos do serviço, estava escolhido o meu cloud, já que só de configuração de servidor eu perderia pelo menos um mês.
Comecei então a desenvolver minha aplicação usando esse serviço do Google. A documentação é bem completa, mas minha "técnica" de simplesmente fazer o programa dos mesmo jeito que eu fazia com TOMCAT + SPRING + JPA+BLAZE DS não funcionou bem.
Como não gosto de ler tutoriais, eu simplesmente só lia a documentação conforme os problemas iam aparecendo. Alguns dos problemas foram:
- A transação no Banco de Dados no GAE é bem restrita, simplesmente anotar seus métodos com @Transaction do Spring não funcionou para muitos casos.
- O GAE não suporta o SpringFlex diretamente, é necessário pegar versões alteradas do BlazeDS.
- Os relacionamentos entre classes de domínio a serem persistidas também não funcionou para muitos casos.
- Quando sua app não possui requisiçoes, o GAE simplesmente a desliga, religando assim que recebe outra requesição. Quando ele religa, precisa subir todo o contexto da aplicaçã e, esse processo acabava consumindo muito recurso de CPU.
Mas à conclusão geral que cheguei é a seguinte: o GAE é um excelente serviço, só que exige uma mudança de "paradigma" dos programadores Java acostumados com ambientes mais tradicionais.
Nenhum comentário:
Postar um comentário