Galera, to com um grande problema em um projeto que to desenvolvendo.
Eu tenho vária aplicações iguais de diferente conexões com bancos de dados externos, onde todos estão sendo executados no mesmo servidor de aplicação ( GlassFish ). Porém a manutenção me toma um grande tempo em fazer os DEPLOYs e configuração do banco para cada aplicação.
Uma solução mais inteligente seria unir todas essas aplicações, já que são iguais, em um único .WAR e os dados para conexão externa de cada cliente será armazenada num banco de dados local (Postgre). Mas tenho receio de que fique mais lento e não suporte uma quantidade elevada de conexões, tendo em vista que tenho em média 30 clientes atualmente, podendo aumentar esse número.
Se puderem me ajudar com uma solução agradeço desde já.
[quote=pedroso.asti]Galera, to com um grande problema em um projeto que to desenvolvendo.
Eu tenho vária aplicações iguais de diferente conexões com bancos de dados externos, onde todos estão sendo executados no mesmo servidor de aplicação ( GlassFish ). Porém a manutenção me toma um grande tempo em fazer os DEPLOYs e configuração do banco para cada aplicação.
Uma solução mais inteligente seria unir todas essas aplicações, já que são iguais, em um único .WAR e os dados para conexão externa de cada cliente será armazenada num banco de dados local (Postgre). Mas tenho receio de que fique mais lento e não suporte uma quantidade elevada de conexões, tendo em vista que tenho em média 30 clientes atualmente, podendo aumentar esse número.
Se puderem me ajudar com uma solução agradeço desde já.
[/quote]
Você está fazendo 30x o deploy da aplicação X no glassfish só modificando a configuração do banco?
Não sei como você está configurando a conexão com o banco. Provavelmente deve ter um persistence.xml (ou algo equivalente) definindo os parâmetros de acesso ao banco para cada aplicação…
Para automatizar você pode utilizar uma ferramenta de automação de build (Maven ou Gradle) que vai decidir durante o build de acodo com um parâmetro pré-definido, qual persistence.xml ele vai colocar dentro do seu WAR, além disso vais precisar de um servidor de integração contínua (Jenkins/Hudson, TeamCity, etc) para realizar esse build periodicamente e realizar deploy no servidor, além disso podes precisar de uma ferramenta estilo Flyway ou Liquibase para fazer os scripts de migração do banco.
Seria interessante você passar mais detalhes da sua infra o ler um pouco sobre mutlitenancy.