| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/08/2009 18:20:59
|
leonardo.carbone
HelloWorld
Membro desde: 13/08/2009 11:34:12
Mensagens: 11
Offline
|
Olá pessoal!
Estou desenvolvendo um projeto aqui na empresa onde a camada de visão será desenvolvida em Flex e as regras de negócio e persistencia em Java com JPA/Hibernate usando banco Postgre.
O pessoal aqui da empresa cogitou a idéia de colocarmos essa aplicação em nossa hospedagem e utilizarmos bases diferentes para cada cliente, ou seja, todos os nossos clientes usariam a mesma aplicação mas que acessaria a base de cada cliente. Os usuários por cliente podem variar, 10, 50........(espero que tenha sido claro rsrs)
Bom, atualmente nossa hospedagem tem a seguinte infraestrutura:
Sistema Operacional Linux RedHat Enterprise
Webserver Apache
Placa de rede PCI Intel 100 Mbits
Servidores 2 x Xeon Quad Core
256 mb de ram para JVM
Conforme for a demanda, passaremos para uma hospedagem dedicada, collocation etc....
Não tenho muita esperiência ainda, então gostaria da opinião de vocês sobre trabalhar dessa maneira.!
É uma boa opção fazer isso? ou seria melhor eu contratar uma hospedagem para cada cliente e trabalar individualmente? Nessa segunda opção eu teria que estar sempre controlando as atualização para cada cliente, teria que fazer um maior controle.....
O que vocês acham!?
Desde já agradeço!
Abraços a todos!
Leonardo.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2009 21:39:44
|
cristian_clever
JavaTeenager
![[Avatar]](/images/avatar/4b5355f08f0d25f1d2749af98089dae4.jpg)
Membro desde: 16/09/2009 14:43:45
Mensagens: 163
Offline
|
Perguntinha legal essa.... com certeza dá uma boa discussão ...
A questão é Todos irão compartilhar a mesma a aplicação, na mesma VM?
Não seria interessante cada cliente ter sua Instancia de aplicação? Todos compartilham as bibliotecas core da sua aplicação mas, se vc tiver 3 clientes, deverá ter 3 aplicações rodando...
Dessa forma acredito que possa até ser mais fácil vc ter estatisticas de consumo de memória (Afinal vc pode ter um cliente Glutão e como vc saberá quem é quem?) e até migrar clientes de máquina quando for o caso.
Outra grande questão... em relação a "divisão dos bancos de dados", vc terá de pré autenticar um usuario para a seguir saber qual o DB que ele irá utilizar, e não bastando outra questão que me surge na cabeça são os Pools de conexão vc deverá possuir vários pools, e sua aplicação deverá escolhelos em tempo de execução...
Aliás qual o servidor J2EE?
[]s
|
Cristian Clever
http://alemdocafe.wordpress.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2009 21:47:56
|
palmadias
JavaTeenager
Membro desde: 08/07/2008 07:41:08
Mensagens: 192
Localização: São Paulo/SP
Offline
|
Para tudo temos o bom e velho 'depende'... rsrrs
Pq vcs não fazem testes de carga. Criem uma POC... um cadastro basico, por exemplo.
Tudo pode ser muito relativo.
Mas de cara 256 mb para JVM na minha opinião é muito pouco. Mas isso não é regra, vai depender muito da sua aplicação.
|
http://palmadias.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2009 21:55:17
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Assim de olhômetro parece pouco. O planejamento de capacidade não dá para ser feito assim no chute sem saber dados mais precisos da aplicação.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/09/2009 10:25:52
|
leonardo.carbone
HelloWorld
Membro desde: 13/08/2009 11:34:12
Mensagens: 11
Offline
|
cristian_clever wrote:Perguntinha legal essa.... com certeza dá uma boa discussão ...
A questão é Todos irão compartilhar a mesma a aplicação, na mesma VM?
Não seria interessante cada cliente ter sua Instancia de aplicação? Todos compartilham as bibliotecas core da sua aplicação mas, se vc tiver 3 clientes, deverá ter 3 aplicações rodando...
Dessa forma acredito que possa até ser mais fácil vc ter estatisticas de consumo de memória (Afinal vc pode ter um cliente Glutão e como vc saberá quem é quem?) e até migrar clientes de máquina quando for o caso.
Outra grande questão... em relação a "divisão dos bancos de dados", vc terá de pré autenticar um usuario para a seguir saber qual o DB que ele irá utilizar, e não bastando outra questão que me surge na cabeça são os Pools de conexão vc deverá possuir vários pools, e sua aplicação deverá escolhelos em tempo de execução...
Aliás qual o servidor J2EE?
[]s
Olá Cristian!!
Então, eu vou ter um banco para cada cliente!!! No meu persistence.xml vou ter uma PU para cara cliente com o pool C3P0 configurado!! Não sei se seria esse a melhor maneira de fazer!! Ainda não sou um expert no assunto, rsrsr!!!
Em princípio usaremos TomCat, nesse caso como eu teria uma instância para cada aplicação?
Grato pela ajuda!!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/09/2009 09:21:07
|
cristian_clever
JavaTeenager
![[Avatar]](/images/avatar/4b5355f08f0d25f1d2749af98089dae4.jpg)
Membro desde: 16/09/2009 14:43:45
Mensagens: 163
Offline
|
Bom dia Leonardo, desculpe a demora!
Isso com certeza mereceria uma pesquisa... a principio a ideia de "pedreiro" seria rodar um script de deploy para cada cliente mantendo assim uma APLICAÇÂO para cada um dos seus clientes... dessa forma seria acredito que até mais simples futuras customizações/Alterações. Lembrnado que sua biblioteca Core iria conter toda sua aplicação de forma que todos iriao apontar para um mesmo .jar.
A ideia precisa ser melhorada!
|
Cristian Clever
http://alemdocafe.wordpress.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/09/2009 13:14:19
|
leonardo.carbone
HelloWorld
Membro desde: 13/08/2009 11:34:12
Mensagens: 11
Offline
|
Legal Cristian!!!
Obrigado pela ajuda, vou rever isso para chegar numa melhor solução!
Valew!
cristian_clever wrote:Bom dia Leonardo, desculpe a demora!
Isso com certeza mereceria uma pesquisa... a principio a ideia de "pedreiro" seria rodar um script de deploy para cada cliente mantendo assim uma APLICAÇÂO para cada um dos seus clientes... dessa forma seria acredito que até mais simples futuras customizações/Alterações. Lembrnado que sua biblioteca Core iria conter toda sua aplicação de forma que todos iriao apontar para um mesmo .jar.
A ideia precisa ser melhorada!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/09/2009 13:50:59
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
leonardo.carbone wrote:Olá pessoal!
Estou desenvolvendo um projeto aqui na empresa onde a camada de visão será desenvolvida em Flex e as regras de negócio e persistencia em Java com JPA/Hibernate usando banco Postgre.
O pessoal aqui da empresa cogitou a idéia de colocarmos essa aplicação em nossa hospedagem e utilizarmos bases diferentes para cada cliente, ou seja, todos os nossos clientes usariam a mesma aplicação mas que acessaria a base de cada cliente. Os usuários por cliente podem variar, 10, 50........(espero que tenha sido claro rsrs)
O que vocês acham!?
Eu acho má ideia. Quando vc precisam adicionar features ( e acredite que irá fazer isso) terá que as adiconar para todos os clientes já que a aplicação é apenas uma. Do ponto de vista da aquitetura isso viola o conceito de deploy e um pesadelo para segurança.
O unico jeito disso funcionar é se vc tem controlo total sobre as features da aplicação.Ou seja, é um produto que vc vende como serviço e não evolui ondemand (como o Google Docs , por exemplo). Caso contrário não é boa ideia.
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/09/2009 15:29:18
|
bandrade
GUJ Ranger
Membro desde: 20/01/2003 15:45:15
Mensagens: 782
Offline
|
Porque um banco de dados para cada cliente? isso parece loucura...
Imagina quando tiver que atualizar o banco... vai rodar o script em cada um deles?
Dá uma olhada nesse artigo:
http://msdn.microsoft.com/en-us/library/aa479069.aspx
Sim, é msdn, mas eles não propoe produtos, apenas discute o problema e propeo solucoes sem citar produtos...
Leia principalmente a 2a parte, Multi-Tenant Data Architecture
|
Will Code For Food |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/09/2009 16:12:22
|
leonardo.carbone
HelloWorld
Membro desde: 13/08/2009 11:34:12
Mensagens: 11
Offline
|
Pelo que entendi, eu teria que ter uma aplicação para cada cliente, ou seja, na pior das hipóteses, se eu não contratar um datacenter para colocar as aplicações teria que contratar uma hospedagem Java para cada cliente, estou correto!? OK, mas no meu projeto se eu precisar adicionar uma customização para um cliente eu faria um deploy para o cliente especifico! Se eu precisar fazer um deploy para outro cliente, essas alterações iriam junto,
Na verdade das duas maneiras eu vou ter que controlar isso !!
Eu acho má ideia. Quando vc precisam adicionar features ( e acredite que irá fazer isso) terá que as adiconar para todos os clientes já que a aplicação é apenas uma. Do ponto de vista da aquitetura isso viola o conceito de deploy e um pesadelo para segurança.
O unico jeito disso funcionar é se vc tem controlo total sobre as features da aplicação.Ou seja, é um produto que vc vende como serviço e não evolui ondemand (como o Google Docs , por exemplo). Caso contrário não é boa ideia.
|
|
|
 |
|
|