Olá galera, estou com uma dúvida:
Se eu tenho um software e quero disponibiliza-lo como serviço na web, onde o cliente entra em contato e eu libero um sistema pra ele acessar da web.
Gostaria de saber se tenho que implantar um sistema para cada cliente ou apenas um sistema centralizado mudando apenas o banco de dados, ou se é de alguma outra forma.
Agradeço desde já.
Você tem vários modelos: um sistema para cada cliente, o mesmo sistema para todos… não existe receita de bolo pra isso.
[]'s
hmm, e qual seria o método mais usual? O mais recomendado?
Depende muito da sua aplicacao.
Se forsse uma plaicacao para banco, acho que eles nao ficariam contentes em saber que seus dados estao sendo salvos na mesma base q o concorrente.
[quote=feltraco]Depende muito da sua aplicacao.
Se forsse uma plaicacao para banco, acho que eles nao ficariam contentes em saber que seus dados estao sendo salvos na mesma base q o concorrente.[/quote]
Faço das suas palavras as minhas. E acrescento: depende da criticidade da aplicação. Tende a crescer muito? O BD suportaria os registros de todo mundo ao mesmo tempo? E se fosse tudo separado, teria algum dado que seria comum a todos, e que poderia, portanto, representar um gargalo? Esse dado comum a todos corre o risco de ser comprometido (corrompido, alterado de maneira inconsistente) se for acessado por vários clientes ao mesmo tempo? Quais são as chances da aplicação precisar de DNS’s diferentes? É possível que, sob a carga intensa de um usuário, acabe derrubando todos os usuários? Há dinheiro suficiente para implementar parques de máquinas separadas para cada cliente (incluindo equipamento de rede e equipe de administração) ? É possível realizar distribuição geográfica das máquinas se elas estiverem todas em um único equipamento?
E por aí vai… essas são só algumas das perguntas que você deve se fazer na hora de tomar tal decisão. Por isso eu disse, não há receita de bolo.
[]'s
Só complementando. Pesquise por multi-tenant para obter maiores informações sobre essas abordagens diferentes.
Tem uma ótima discussão no tectura.com.br e um artigo da Microsoft.
A dica do @RafaelViana eh boa.
Pesquisei qando estava comecnado o desenvolvimento do sistema aki da empresa. Nao adotei pela complexidade e tal, mas eh uma opcao.
Definimos que vamos ter um contexto e uma base para cada cliente.
Virtualizacao tb eh uma possibilidade.
[]`s