Pergunta

Quais são as melhores práticas na construção de aplicações que suportam vários inquilinos, como Software as a Service?

Os links para documentos técnicos que se expandem sobre este tema são muito apreciados.

Foi útil?

Solução

Você pode encontrar alguns conselhos valiosos em uma série de posts por Oren Eini.

Este é um dos últimos lugares na série, com links para posts anteriores: http://ayende.com/Blog/archive/2008/08/16/Multi-Tenancy--Approaches-and-Applicability.aspx

Outras dicas

Para o banco de dados:

A. Coloque tudo no mesmo banco de dados, colocar uma coluna tenant_id em suas tabelas

Prós: Fácil de fazer

Contras: muito propenso a erros: é fácil de vazamento de dados de um inquilino para outro.

B. Coloque tudo no mesmo banco de dados, mas colocar cada inquilino em seu próprio namespace (chamadas PostgreSQL los esquemas)

Prós: Oferece proteção melhores dados de vazamento do que a opção A

Contras: Não é suportado por todos os bancos de dados. AFAIK PostgreSQL e Oracle oferece suporte a ele.

C. banco de dados de uma configuração por inquilino

Pros: Absolutamente nenhuma chance de dados vazamento de um inquilino para outro

Contras: Criação de novos inquilinos é mais complicada. conexões de banco de dados são caros.

Eu aprendi apenas as idéias acima de Guy Naor. Aqui está um link para sua apresentação: http : //aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top