Google Java AppEngine - Vejamos as Vantagens...
Este é o segundo post da série de artigos sobre o Google Java AppEngine. Para saber mais, leia o primeiro que fala sobre as primeiras impressões do serviço. Ou acompanhe pelo nosso RSS.
Para facilitar o entendimento do que eu encontrei no Java GAE, eu classifiquei os aspectos em prós e contras. Nesse post vou começar falando das vantagens, e posteriormente falarei do que eu achei ruim na utilização da plataforma
Prós
- Fácil utilizacao do eclipse com o plugin: Impressionante como eles simplificaram e "oficializaram" um plugin do eclipse para a utilização da infraestrutura do google. Agora só precisa baixar a versão do eclipse com suporte a JEE e cadastrar o site do plugin no "Install and Updates" para instalar o plugin. Esse novo plugin tem suporte a desenvolvimento com GWT (sem precisar de nenhuma lib adicional), teste da app em servidor local com suporte a cache e bigtable, "one click deploy" para jogar sua app nas nuvens, e suporte a todas as apis que o google disponibiliza no desenvolvimento java no GAE (vou listá-las mais a frente).
- Servidor local para testes: Agora vc pode desenvolver e testar localmente suas aplicacoes antes de jogá-las nas nuvens. O servidor local do GAE facilita demais os testes que o desenvolvedor terá que fazer, sem ter que ficar testando as apps na "produção". O servidor do google já vem com suporte a BigTable, Memcached, e as outras apis que o google fornece no serviço. Só para constar, a api de envio de email não funciona localmente, acredito eu que seja para evitar a proliferação de spams.
- Forte utilizacao de padroes java: Fiquei muito feliz de saber que o google tem programadores muito bem qualificados e que sabem tirar o melhor proveito do java, utilizando padrões conhecidos e interfaces para disponibilizar suas funcionalidades (ao contrário de muitos que adoram re-inventar a roda). Da sopa de letrinhas consegui listar nessa primeira passada: JDO, JPA, Jcache, JSP, Servlet, JavaMail e WAR.
- Quota muito boa para um serviço free: As cotas para são bem generosas para um ambiente free. Algo como 500 mb de banco de dados (ops, bigTable), entre 1 e 2 gb de transferência entre os serviços. Segundo consta no blog oficial, a infra deles suporta uma página que é capa do digg ou que aparece no slashdot.
- Dashboard da app: Para quem gosta de ficar sempre de olho no consumo de cpu, consulta no banco de dados, tempo de processamento de cada request, gráficos de monitoramento, o dashboard é uma mão na roda. Inclusive existe um recurso que permite vc navegar entre as entidades que vc guardou no BigTable, bem no estilo do PhpMyAdmin (só que bem simplificado).
- Quantidade de instâncias de servidores: Pra que se preocupar com a quantidade de instâncias de servidores sua app está usando? Deixa o google cuidar disso! Segundo a documentação, acredita-se que em um ambiente otimista, um servidor consegue administrar 300 requisições por segundo e, caso seja detectado um pico na quantidade de requisições, novas instâncias serão criadas para balancear a carga.
- Abstração de apis de serviços pré-configurados: Serviços úteis (como cache, manipular imagens, pegar dados da internet) que o todo webadmin quer usar, mas às vezes falta expertise ou tempo para estudar, estão disponíveis para usar sem qualquer configuração prévia. Quer guardar um objeto no cache? cache.put(obj). Quer baixar um rss? reader.get(urlLocation). E tudo sem se preocupar com qual cpu vai executar o serviço e como vai ser feito. Vc só tem que pedir.
- Boas práticas por default: Sabe aquelas boas práticas que todo desenvolvedor web deveria implementar (mas muitos não implementam) como Gzip condicional, etag, cache, etc.? Bom, isso já vem por padrão no GAE. Isso ajuda o google a economizar banda e recursos, e ajuda vc a otimizar seu site.
Continue lendo os artigos sobre o Google Java AppEngine no JornalJava.com.
2 comentários:
Gostei do artigo listando as vantagens. Parabéns.
Só uma correção: é phpMyAdmin, e não MyPhpAdmin.
Valeu Rael.... já estou acertando o nome.
Postar um comentário