SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
APLICAÇÕES NA NUVEM E SAAS
O QUE É MULTITENANCY E COMO SEPARAR OS
DADOS DE SEUS USUÁRIOS
Mário Amaral
@mario_fts
QUE MÁRIO?
• Desenvolvedor Java desde
2004
• Instrutor e desenvolvedor
na Caelum
• Open Source
• Stella
• Vraptor
O QUE É SAAS?
MULTITENANT
• Todos os usuários compartilham a mesma
infraestrutura e base de código.
• Um usuário não enxerga os dados do outro.
• É como se cada usuário tivesse sua própria
“instalação” do software.
COMO ISOLAR OS DADOS
DOS USUÁRIOS ?
+ Isolado
+ Compartilhado
+ Compartilhado
+ Isolado
Banco Schema Coluna
SEPARANDO OS CLIENTES
POR BANCO
SEPARAÇÃO POR BANCO DE
DADOS
SEPARAÇÃO POR BANCO DE
DADOS
• Fácil restaurar backup
• Isolamento total
• Fácil de implementar
• Custo maior de hardware
(infraestrutura)
• Backup mais complexo
• Duplicação de dados
comuns
Vantagens Desvantagens
SEPARANDO OS CLIENTES
POR SCHEMA
SEPARAÇÃO POR SCHEMA
Tenant 1
Tenant 2
Tenant 3
SEPARAÇÃO POR SCHEMA
• Fácil fazer backup
• Isolamento quase total
• Relativamente fácil de
implementar
• Custo menor de hardware
(infraestrutura)
• Restore mais complexo
• Duplicação de dados
comuns
Vantagens Desvantagens
SEPARAÇÃO POR COLUNA
TenantID ProductID Name
1271
1342
1234
6578
TenantID CustomerID FullName
1271 2234 John Doe
1317
3456
8790
TenantID Shipment Date
1271 112627 2014-01-03
1317 224454 2015-03-01
3456 837647 2014-12-25
1271 243454 2015-03-15
SEPARAÇÃO POR COLUNAS
• Custo baixo de hardware
(infraestrutura)
• Fácil extrair relatórios
envolvendo dados de
múltiplos clientes
• Backup é fácil
• Implementação mais
complexa
• Isolamento fraco
• Restore é muito complexo
Vantagens Desvantagens
COMO ESCOLHER QUAL
USAR?
Comparação entre
dados isolados x dados compartilhados
https://msdn.microsoft.com/en-us/library/aa479086.aspx
ISOLADO X
COMPARTILHADO
Isolado Compartilhado
Quantidade de
tenants
Baixa Alta
Volume de dados por
tenant
Alto Baixo
Necessidade de
customização
Alta Baixa
MAS E A PARTETÉCNICA?
FALANDO EM JAVA…
• JPA - Sem suporte ainda.
• Hibernate - Suporte parcial (Banco e Schema)
• EclipseLink - Suporte total (Banco, Schema e
Coluna)
HIBERNATE
• Implementar 2 interfaces
• MultiTenantConnectionProvider
• Cria as conexões para cada tentant (banco ou
schema)
• CurrentTenantIdentifierResolver
• Descobre qual o tenant atual
ECLIPSE LINK
• Anotar as classes com @Multitenant e escolher o formato
• @Multitenant(SINGLE_TABLE)
• Separação por coluna
• @Multitenant(TABLE_PER_TENANT)
• Separação por Schema
• @Multitenant(VPD)
• Delega para o banco de dados o filtro dos dados do tenant
OBRIGADO!
github.com/mariofts
@mario_fts
mario.amaral@caelum.com.br

Mais conteúdo relacionado

Mais procurados

Windows Server 2012 - Todas aplicações em qualquer nuvem
Windows Server 2012 - Todas aplicações em qualquer nuvemWindows Server 2012 - Todas aplicações em qualquer nuvem
Windows Server 2012 - Todas aplicações em qualquer nuvem
Fabio Hara
 
Windows Server 2012 - Alem da virtualização
Windows Server 2012 - Alem da virtualizaçãoWindows Server 2012 - Alem da virtualização
Windows Server 2012 - Alem da virtualização
Fabio Hara
 
Windows Server 2012 - estilo de trabalho moderno
Windows Server 2012 - estilo de trabalho modernoWindows Server 2012 - estilo de trabalho moderno
Windows Server 2012 - estilo de trabalho moderno
Fabio Hara
 
Seus Dados estão em toda a parte . Seu Backup também não deveria estar?
Seus Dados estão em toda a parte . Seu Backup também não deveria estar? Seus Dados estão em toda a parte . Seu Backup também não deveria estar?
Seus Dados estão em toda a parte . Seu Backup também não deveria estar?
Bravo Tecnologia
 
INT302 - VDI com Linux
INT302 - VDI com LinuxINT302 - VDI com Linux
INT302 - VDI com Linux
mestresemhd
 
Lançamento KES e Security Center
Lançamento KES e Security CenterLançamento KES e Security Center
Lançamento KES e Security Center
Central Info
 

Mais procurados (20)

Windows Server 2012 - Todas aplicações em qualquer nuvem
Windows Server 2012 - Todas aplicações em qualquer nuvemWindows Server 2012 - Todas aplicações em qualquer nuvem
Windows Server 2012 - Todas aplicações em qualquer nuvem
 
Conteineres no Microsoft Azure
Conteineres no Microsoft AzureConteineres no Microsoft Azure
Conteineres no Microsoft Azure
 
Ws2012r2 hyper v
Ws2012r2 hyper vWs2012r2 hyper v
Ws2012r2 hyper v
 
Windows Server 2012 - Alem da virtualização
Windows Server 2012 - Alem da virtualizaçãoWindows Server 2012 - Alem da virtualização
Windows Server 2012 - Alem da virtualização
 
Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...
Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...
Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...
 
Windows Server 2012 - estilo de trabalho moderno
Windows Server 2012 - estilo de trabalho modernoWindows Server 2012 - estilo de trabalho moderno
Windows Server 2012 - estilo de trabalho moderno
 
Seus Dados estão em toda a parte . Seu Backup também não deveria estar?
Seus Dados estão em toda a parte . Seu Backup também não deveria estar? Seus Dados estão em toda a parte . Seu Backup também não deveria estar?
Seus Dados estão em toda a parte . Seu Backup também não deveria estar?
 
planejamento pre-instalacao win server 2012
 planejamento pre-instalacao win server 2012 planejamento pre-instalacao win server 2012
planejamento pre-instalacao win server 2012
 
Deployment fundamentals: Conceitos e Ferramentas
Deployment fundamentals: Conceitos e FerramentasDeployment fundamentals: Conceitos e Ferramentas
Deployment fundamentals: Conceitos e Ferramentas
 
INT302 - VDI com Linux
INT302 - VDI com LinuxINT302 - VDI com Linux
INT302 - VDI com Linux
 
Windows server 2012
Windows server 2012Windows server 2012
Windows server 2012
 
Inter Dev Ops Conf 2016 - IaaS behind the scenes
Inter Dev Ops Conf 2016 - IaaS behind the scenesInter Dev Ops Conf 2016 - IaaS behind the scenes
Inter Dev Ops Conf 2016 - IaaS behind the scenes
 
SQL Server over SMB3
SQL Server over SMB3SQL Server over SMB3
SQL Server over SMB3
 
Windows Azure na Prática
Windows Azure na PráticaWindows Azure na Prática
Windows Azure na Prática
 
MySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI Tecnologia
 
Plataforma Tecnológica do clicRBS
Plataforma Tecnológica do clicRBSPlataforma Tecnológica do clicRBS
Plataforma Tecnológica do clicRBS
 
Apresentação Windows Server 2012 R2
Apresentação Windows Server 2012 R2Apresentação Windows Server 2012 R2
Apresentação Windows Server 2012 R2
 
Usando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL ServerUsando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL Server
 
Lançamento KES e Security Center
Lançamento KES e Security CenterLançamento KES e Security Center
Lançamento KES e Security Center
 
Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016
 

Semelhante a Multitenancy em aplicações na nuvem

Evento CA ArcServe D2D on Demand
Evento CA ArcServe D2D on DemandEvento CA ArcServe D2D on Demand
Evento CA ArcServe D2D on Demand
Allen Informática
 
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
MySQL Brasil
 

Semelhante a Multitenancy em aplicações na nuvem (20)

SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
 
Backup+e+archiving+na+nuvem+aws+ +ricardo+geh
Backup+e+archiving+na+nuvem+aws+ +ricardo+gehBackup+e+archiving+na+nuvem+aws+ +ricardo+geh
Backup+e+archiving+na+nuvem+aws+ +ricardo+geh
 
Banco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdBanco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bd
 
ArcServe - UDP
ArcServe - UDPArcServe - UDP
ArcServe - UDP
 
Evento CA ArcServe D2D on Demand
Evento CA ArcServe D2D on DemandEvento CA ArcServe D2D on Demand
Evento CA ArcServe D2D on Demand
 
Apostila oracle
Apostila oracleApostila oracle
Apostila oracle
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
MySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLMySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQL
 
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
 
Redes e Servidores
Redes e ServidoresRedes e Servidores
Redes e Servidores
 
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
 
Apresentação HyperCloud GT8
Apresentação HyperCloud GT8Apresentação HyperCloud GT8
Apresentação HyperCloud GT8
 
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
 
Persistência
PersistênciaPersistência
Persistência
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
Internet sem drama
Internet sem dramaInternet sem drama
Internet sem drama
 
Resumido zdlra v2.0
Resumido zdlra v2.0Resumido zdlra v2.0
Resumido zdlra v2.0
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
 

Multitenancy em aplicações na nuvem