artesaos / content-request

Este reposiório visa facilitar a indexação de conteúdo gerado pela comunidade Laravel Brasil.
51 stars 3 forks source link

Aplicações multi-tenant (multi-cliente) e práticas de escalonamento #13

Closed 3runoDesign closed 8 years ago

3runoDesign commented 8 years ago

Aplicações multi-tenant (multi-cliente) e práticas de escalonamento

Se fala muito de aplicações "para um único cliente". Mas quando um projeto passa a ser um PRODUTO ( SaaS )? Onde cada cliente terá sua "Organização" e cada usuário terá suas atribuições e afins.

Tópicos como:

vinicius73 commented 8 years ago

Um tema muito bom e igualmente complexo. No final acho que não há muita "receita" será necessário elaborar os cenários mais comuns.

Single Database / Multi Tenant

Uma base de dados para todos os tenants

Multi Database / Single Tenant

Múltiplas bases de dados, uma para cada tenant.

Multi Database / Multi tenant

Múltiplas bases de dados, cada base com múltiplos tenants

A maior dificuldade são nas regras de monetização, distribuição e provisionamento do projeto.

3runoDesign commented 8 years ago

@vinicius73 realmente um tema complexo. O cenário "mais comum"... se posso dizer assim, seria o single db/multi tenant.

vs0uz4 commented 8 years ago

Concordo com o @3runoDesign, o cenário mais comum ao meu ver é o de _single db/multi tenant_

hernandev commented 8 years ago

Vamos falar sobre isso no hangout de hoje, que é sobre escalabilidade

solracnet commented 8 years ago

Em minhas pesquisas, encontrei este plugin: https://github.com/dlimars/laravel-tenant-subdomain

Não testei ainda, mas parece legal.

brenodouglas commented 8 years ago

Eu já testei (mas foi teste bem basico mesmo) o http://orchestraplatform.com/docs/latest/components/tenanti.

Mandei o link direto da documentação para facilitar um pouco.

3runoDesign commented 8 years ago

Um artigo que gostei e me deu uma luz https://www.getdonedone.com/building-the-optimal-user-database-model-for-your-application/

valmirphp commented 8 years ago

Seguindo o cenário "Single Database / Multi Tenant" onde tenho o webmaster/Gerente do local/Usuários.

Para criar APIs como vocês geralmente trabalham?

wemersonjanuario commented 7 years ago

Gostaria de um exemplo e discussão sobre multi-database/single-tenant principalmente usando o package de ACL Defender.

Atualmente tenho uma app com single-database/multi-tenant e já está muita pesada e talvez não segura, apenas identificando o dados do cliente/tenant com um coluna company_id em cada tabela(to enjoado e achando porco isso).

Quero individualizar os bancos de dados de cada empresa, e deixar em um banco master apenas informações globais mesmo, tais como cadastro de empresas/tenants, roles, users, já as outras tabelas de módulos (financeiro, comercia, fiscal, etc) em bancos tenants.

Esta modelagem até que já tenho, o que está me ferrando os neurônios na parte de acl, Pois quero algo já pronto como package(Defender) não sei se modifico/customizo o Defender pra suportar tenant, talvez adicionar uma coluna na role (tenant_id) identificando de qual tenant é a role e tals.

Alguém ai com experiencia parecida?

phmiranda commented 5 years ago

Estou precisando entender melhor esse cenário e esses conceitos, vocês teriam algum material no youtube para indicar ?