SAAS e BD por cliente

6 respostas
j0nny

Olá pessoal,
Estou num processo de migração de um sistema que irá se tornar SAAS, ou seja, uma instância e um BD para N clientes.
Porém há clientes, que por motivos de ‘protocolo’ da empresa, exigem que os dados permaneçam em um servidor próprio.
Como proceder nesse caso? Qual seria a melhor alternativa sem fazer gambiarras?

PS: Vou usar Rails.

6 Respostas

T

putz, assunto chato, mas tive um request parecido há algum tempo atrás e analisei 2 maneiras, uma é baseada em RoundingDataSource, uma espécie de connjunto de datasources para cada cliente, e outra baseada no login do cliente, que o Spring intercepta e direciona à database correta.

ajudou? rs

R

Tecnoage,

Você chegou a avaliar o Hibernate4 com o suporte nativo a multi-tenancy?

T

não, na época eu não tinha hibernate 4… mas achei interessante

jv.nicocelli

Estávamos discutindo isso dias atrás nesse tópico http://www.guj.com.br/java/281339-resolvidoautenticacao-de-usuarios-em-ambiente-saas#1484873

Também estou com dúvidas em relação a esse ambiente.

Rubem_Azenha

j0nny,

Tenho um problema parecido na minha app Rails.
Eu resolvi fazendo um rack middleware que antes de chegar na app rails o middleware conecta em um schema diferente baseado no subdominio da request. No meu caso, ele só troca o schema usando “use database xpto”. Mas deve ser possível conectar em outra instância.

O problema é a app web acessar banco remoto, vai performance vai sofrer bastante. Se o banco tem que ficar dentro do ambiente do cliente, não seria melhor colocar a app no ambiente do cliente também?

j0nny

Rubem Azenha:
j0nny,

Tenho um problema parecido na minha app Rails.
Eu resolvi fazendo um rack middleware que antes de chegar na app rails o middleware conecta em um schema diferente baseado no subdominio da request. No meu caso, ele só troca o schema usando “use database xpto”. Mas deve ser possível conectar em outra instância.

O problema é a app web acessar banco remoto, vai performance vai sofrer bastante. Se o banco tem que ficar dentro do ambiente do cliente, não seria melhor colocar a app no ambiente do cliente também?

Foi uma solução pensada também, porém teria o problema do deploy, que a princípio, o Capistrano nos ajuda muito nisso. Mas ficaria dependente da infra do cliente.

Criado 20 de abril de 2012
Ultima resposta 16 de set. de 2012
Respostas 6
Participantes 5