Quais são os desafios típicos que surgem ao converter um aplicativo de locatário único em um aplicativo de vários locatários? Segurança e isolamento de dados me parecem os mais significativos. Quais são alguns outros?
Sou um dos arquitetos de um esforço de automação bastante significativo e, historicamente, é apenas a nossa empresa que o utiliza. Queremos tornar possível que outras pessoas o usem também. Toda vez que falamos em "tornar o multitenant", a conversa gira em torno de manter os usuários com um inquilino longe dos dados de outro inquilino e garantir que os usuários com um inquilino não possam (intencionalmente ou inadvertidamente) criar impactos em outro ambientes do inquilino. O que me pergunto é se o isolamento de segurança / dados é realmente a única grande preocupação aqui ou se existem outras preocupações importantes em que não estamos pensando.
fonte
Respostas:
Além do silenciamento de dados, você pode ter problemas com
Alguns deles assumem que você está executando todos os inquilinos no mesmo espaço de endereço (máquina ou cluster). Se cada inquilino estiver executando seu software em seu hardware, você pode discutir algumas das opções acima e adicionar:
fonte
O maior problema na multilocação na minha opinião é a personalização. Isso acontece rotineiramente se você estiver vendendo um aplicativo de negócios para empresas. Pode variar de algo tão simples quanto todo cliente que deseja sua própria aparência à capacidade de configurar campos, regras, formulários e relatórios adicionais. O nível de personalização que você precisa suportar desempenha um papel crítico na arquitetura.
fonte
A resposta de Mike é muito boa, e muitos dos pontos por lá quase subestimam sua complexidade devido à sua falta, então leve isso a sério.
Um ponto que eu acrescentaria é que você deve ter boas ferramentas de gerenciamento para criar (e mais tarde gerenciar) novos inquilinos. Dependendo da arquitetura física que você utiliza, isso pode estar longe de ser trivial e é algo que geralmente é esquecido. Os benefícios de um software como produto de serviço realmente só entram em jogo quando há um grande número de inquilinos; portanto, uma quantidade razoável de esforço deve ser utilizada para atender a isso.
Estender a resposta de Sriram; a personalização por inquilino é praticamente proibida, tudo o que um inquilino queira alterar deve ser configurável . Por exemplo, se sua solução não atender à adição dinâmica de campos de dados em pelo menos algumas áreas importantes, você provavelmente será inundado de solicitações de personalização. É um dos poucos casos em que um pouco adiantado complexidade adicional que realmente pagam off (digamos que ele vai contra YAGNI, ou, pelo menos, este nível de configuração é quase um requisito fundamental, para que você está vai precisar dele).
fonte