Iniciamos um processo de decisão sobre qual servidor de aplicação passaremos a utilizar em nosso ambiente. A motivação é que o velho Jboss de guerra não está mais dando conta do recado. Não que o Jboss não seja um ótimo servidor, muito pelo contrário. A questão é que o seu ponto mais criticado, a administração, começou a cobrar seu preço. Iremos aumentar consideravelmente o número de servidores em produção (assunto outro post) e uma interface de administração central, mais produtiva e confiável, passou a ser uma necessidade.
Depois de uma análise prévia, vimos que duas soluções poderiam atender nossas necessidades: Glassfish ou Jboss + JON.
O Glassfish é uma promessa que virou realidade, mas confesso que ainda não me convenci, culpa mais pela pouca experiência que tenho com esse servidor do que por sua qualidade, que ele é a melhor solução para o nosso caso. De qualquer maneira, nesses estudos prévios e na apresentação do Kohsuke, acabou subindo muito no meu conceito.
O Jboss já é um velho conhecido e ainda está no páreo, levando em consideração a utilização do JON. O JBoss Operations Network me pareceu ser uma ferramenta realmente fantástica que permite a administração e monitoramento de muitos e muitos e muitos pontos, desde o sistema operacional, passando pelo servidor de aplicação e chegando nas aplicações. Seu lado negativo é que é uma ferramenta paga.
Tomcat está fora da jogada. A maioria das nossas aplicações utilizam Spring, mas algumas mais novas já estão em EJB e futuramente iremos para o Jboss Seam ou Web Beans, como preferirem (também assunto para outro post). Ainda existem algumas outras alternativas, mas a princípio os principais candidatos são esses dois mesmo.
Bem, a análise ainda está em andamento e os principais pontos ques estamos analisando são:
- Administração: facilidade de administrar e monitorar remotamente múltiplas instâncias de servidores.
- Performance: para essa avaliação buscaremos análises de instituições independentes.
- Ambiente de desenvolvimento: facilidades de utilização do servidor de aplicação no ambiente de desenvolvimento: integração com o Eclipse, tempo de start up e deploy, facilidade de debug, hot deploy, etc.
- Documentação técnica: disponibilidade e qualidade da documentação técnica disponível: manuais, tutoriais, wiki e fóruns
- Suporte técnico: disponibilidade de suporte 24×7. Considerando custo, meio (apenas via web e e-mail ou por telefone também), idioma (em português ou inglês) e tempo de resposta.
- Aderência à especificação: aderência à especificação Java EE 5, incluindo a velocidade em que são lançadas novas versões da ferramenta quando saem novas versões da especificação.
- Custo da migração: custo associado à migração do ambiente atual para o servidor de aplicação escolhido. Atualmente temos aplicações em produção tanto no Jboss quanto no Glassfish
- Custo do software: custo de aquisição de ferramentas necessárias para administração ou desenvolvimento no servidor de aplicação.
- Cases de sucesso: existência de casos de sucesso de sistemas em produção usando o servidor de aplicação.
Estes dois servidores possuem um grande comunidade de usuários, então, caros colegas e recém chegados leitores, sintam-se a vontade e estimulados a deixar algum comentário caso tenham alguma opinião ou experiência relativos a qualquer um desses pontos do Glassfish ou Jboss + JON.
Tags: Glassfish, Java, Jboss, JON, Servidores de aplicação
Tags: Glassfish, Java, Jboss, JON, Servidores de aplicação
October 2nd, 2008 at 9:08 am
Grande Fabrício! Chegou o blog que faltava na comunidade! Já coloquei nos meus favoritos!! Grande abraço!
October 3rd, 2008 at 10:32 am
Parabéns pelo artigo Fabrício, ao mencionar sobre aderência da especificação e documentação técnica é sempre bom analisar também como a comunidade está atuando sobre tal tecnologia, pois é a partir dela que podemos ver tanto em aspecto quantitativo bem como no número participantes envolvidos no projeto de forma a garantir uma maior confiabilidade.
Parabéns pelo blog também!
October 3rd, 2008 at 4:40 pm
Obrigado Rafael. Com relação a especificação o Glassfish vai estar sempre a frente, até mesmo porque é a implementação de referência e o fato de somente agora a Jboss ter um servidor 100% aderente é bem desanimador. Mas como estamos caminhando para a utilização do Seam, é natural que esta plataforma tenha uma integração maior com o Jboss.
October 24th, 2008 at 11:57 am
Cara, independente do servidor escolhido, acredito que vocês conseguirão isentar a arquitetura para uma eventual mudança [mesmo sabendo que isso sempre é doloroso e complicado]
Aderência a especificação é sempre bom, mas no caso da JPA e EJB eu abro uma excessão, Spring + Hibernate ainda são imbatíveis em um nível básico até.
Não se enquadra nem naquele ponto de usar a implementação a partir de um ponto, pode até ser no EJB, mas a JPA ainda é tão incipiente que o Hibernate já será um “Framework lock-in” até que pelo menos saia a JPA 2.
October 26th, 2008 at 10:29 am
Oi Milfont,
A preocupação sobre uma eventual mudança de servidor não é nem tanto relativa a arquitetura das aplicações, mas sim da mudança da infra-estrutura. Configurar clusters, deploys automáticos, tunning, ferramentas de administração e monitoramento são tarefas de certa complexidade e que são impactadas por uma eventual mudança.
Sobre a especificação, concordo com você que é bom ter aderência porém nunca de um maneira cega. Nunca fui muito fã de Spring, por questões de simplicidade até (de programação e não de ambiente) prefiro EJB, mesmo não tendo toda a flexibilidade do Spring.
JPA realmente está bem atrás de Hibernate, e sempre vai estar. De qualquer forma, prefiro a abordagem de utilizar JPA dentro de suas capacidades e o Hibernate, obtendo o Session a partir do EntityManager, principalmente para consultas, já que gosto de Criteria. O mapeamento é quase todo igual nos dois, então melhor ainda.
October 29th, 2008 at 11:54 pm
Excelente post, mas gostaria de compartilhar uma informação: “O JON é uma versão suportada do Hyperic (http://www.hyperic.com) pela RedHat”. Ou seja, o JON é um empacotamento do Hyperic que é Open Source (http://www.hyperic.com/downloads/simple-oss-reg.html) feito pela RH. Quando o JBoss 5.0 entrar na sua versão GA, a dupla JB5+HYPERIC será uma ótima escolha. Você já testou o JB5? Espero ter contribuído…. Até a próxima!
October 30th, 2008 at 9:09 am
Oi Fábio,
Não chegamos a avaliar o Hyperic. Talvez fosse uma boa caso tenhamos problema em comprar o JON. Valeu pela dica.
A Jboss até lançou agora uma versão Open Source do JON que é o JOPR.
Ainda não testei o JB5. Legal ele ter passado no “exame” de compatibilidade com o JEE5, mas ainda está em CR. Estamos analisando somente as versões estáveis.
Aliás, por bem ou por mal acho até que já temos um veredito. Vou ver se escrevo outro post com as conclusões.