Rotina de implementação do arquivo WAR no Windows / Tomcat 6 sem tempo de inatividade?

1

Temos um aplicativo da web em execução no Tomcat 6 (no WS2K3) que é atualizado toda semana a partir de uma nova versão. Atualmente, temos um script em lote muito simples que toda noite verifica o conteúdo de uma pasta no servidor, se existir um arquivo war, ele fecha o serviço Tomcat, remove o diretório antigo do aplicativo e o arquivo war, e colocamos um novo arquivo war lá e trazer o serviço on-line novamente.

Embora isso funcione bem e tenhamos menos de cinco minutos de inatividade de cada uma dessas implantações, as crescentes necessidades de negócios nos levam a procurar outra solução.

A melhor solução que posso imaginar seria colocar um balanceador de carga / proxy na frente do servidor web, adicionar outro servidor Web para o escalonamento e balanceamento de carga e, durante as implantações, desabilitar um desses hosts na configuração do balanceador de carga, implantar, em seguida, redirecione todo o tráfego para o servidor da web com a nova versão e assim por diante.

Problema: eu não tenho experiência com esses tipos de soluções e muito pouco em torno desses tópicos, se alguém poderia me apontar na direção certa em termos de soluções (isso é uma boa maneira de alcançar tempo de inatividade próximo de 0? implantações?) ou nomes de software (livres são os melhores, mas proprietários também são bons) que seriam muito apreciados.

    
por dadver 20.09.2010 / 16:17

1 resposta

2

Por um lado, você pode usar o aplicativo padrão do gerenciador Tomcat para reimplantar um aplicativo de um WAR sem ter que parar o próprio Tomcat. O tempo de inatividade é apenas o necessário para implantar esse aplicativo único.

Mas, para quase 0 tempo de inatividade, você realmente deseja um balanceador de carga e vários servidores Tomcat. Servidor HTTP Apache com mod_proxy / mod_proxy_balancer ou mod_jk é uma boa solução gratuita para isso. No entanto, você pode escolher como lidar com as sessões - você pode perdê-las quando alternar de um servidor para outro ou replicá-las entre os servidores (o que é bastante fácil de configurar). A maior parte da complexidade do clustering e do balanceamento de carga gira em torno do tratamento de sessões.

    
por 14.10.2010 / 16:23