O documento discute estratégias arquiteturais para aplicações multitenant na nuvem, incluindo ter uma aplicação e banco de dados compartilhados por todos os clientes, ter bancos de dados e aplicações separados por cliente, e ter esquemas de banco de dados separados por cliente dentro de uma única instância do banco de dados.
5. Estratégias de Migração p/ Cloud
Aplicação e Banco de dados para todos os
tenants
Aplicação e Banco de dados por cliente
Aplicação e esquema separado por cliente
Aplicação e Banco de dados para todos
com migração de clientes com maior
demanda
6. Questionamentos
Qual o custo de adição de um novo
cliente?
Qual o custo de manter a aplicação
atualizada?
Qual a estratégia de alocação de
máquinas?
18. Aplicação e Banco de dados para todos
Atualização dos clientes
Aproveitamento de recursos por máquina
19. Aplicação e Banco de dados para todos
Atualização dos clientes
Aproveitamento de recursos por máquina
Escalabilidade através de replicação e
balanceamento de carga
25. Aplicação e Banco de dados para todos
Separação de dados feito pela aplicação
26. Aplicação e Banco de dados para todos
Separação de dados feito pela aplicação
Maior custo de desenvolvimento
27. Aplicação e Banco de dados para todos
Separação de dados feito pela aplicação
Maior custo de desenvolvimento
Desempenho de um cliente impacta os
outros
28. Aplicação e Banco de dados para todos
Separação de dados feito pela aplicação
Maior custo de desenvolvimento
Desempenho de um cliente impacta os
outros
Difícil medir quem está consumindo
mais recursos
29. Aplicação e Banco de dados por cliente
Cliente Aplicação DB
Servidor
30. Aplicação e Banco de dados por cliente
Cliente Aplicação DB
Servidor
ClienteAplicaçãoDB
Servidor
31. Aplicação e Banco de dados por cliente
Cliente Aplicação DB
Servidor
Cliente Aplicação DB
Servidor
ClienteAplicaçãoDB
Servidor
32. Aplicação e Banco de dados por cliente
Cliente Aplicação DB
Servidor
Cliente Aplicação DB
Servidor
ClienteAplicaçãoDB
Servidor
ClienteAplicaçãoDB
Servidor
33. Aplicação e Banco de dados por cliente
Cliente Aplicação DB
Servidor
Cliente Aplicação DB
Servidor
Cliente Aplicação DB
Servidor
ClienteAplicaçãoDB
Servidor
ClienteAplicaçãoDB
Servidor
34. Aplicação e Banco de dados por cliente
Cliente Aplicação DB
Servidor
Cliente Aplicação DB
Servidor
Cliente Aplicação DB
Servidor
ClienteAplicaçãoDB
Servidor
ClienteAplicaçãoDB
Servidor
ClienteAplicaçãoDB
Servidor
36. Aplicação e Banco de dados por cliente
Separação dos dados by design
37. Aplicação e Banco de dados por cliente
Separação dos dados by design
Medição do consumo de recursos
38. Aplicação e Banco de dados por cliente
Separação dos dados by design
Medição do consumo de recursos
Desempenho independente de cliente
39. Aplicação e Banco de dados por cliente
Separação dos dados by design
Medição do consumo de recursos
Desempenho independente de cliente
Poder usar separação física como argumento
de venda
48. DB
Servidor BD
Aplicação e Esquema de Banco de dados por
cliente
Servidor de Aplicação
Cliente Aplicação E
49. DB
Servidor BD
Aplicação e Esquema de Banco de dados por
cliente
Servidor de Aplicação
Cliente Aplicação E
Cliente Aplicação E
50. DB
Servidor BD
Aplicação e Esquema de Banco de dados por
cliente
Servidor de Aplicação
Cliente Aplicação E
Cliente Aplicação E
Cliente Aplicação E
51. DB
Servidor BD
Aplicação e Esquema de Banco de dados por
cliente
Servidor de Aplicação
ClienteAplicaçãoE
Cliente Aplicação E
Cliente Aplicação E
Cliente Aplicação E
52. DB
Servidor BD
Aplicação e Esquema de Banco de dados por
cliente
Servidor de Aplicação
ClienteAplicaçãoE
ClienteAplicaçãoE
Cliente Aplicação E
Cliente Aplicação E
Cliente Aplicação E
53. DB
Servidor BD
Aplicação e Esquema de Banco de dados por
cliente
Servidor de Aplicação
ClienteAplicaçãoE
ClienteAplicaçãoE
ClienteAplicaçãoECliente Aplicação E
Cliente Aplicação E
Cliente Aplicação E
55. Separação dos dados via esquema de banco
Aplicação e Esquema de Banco de dados por
cliente
56. Separação dos dados via esquema de banco
Aplicação e Esquema de Banco de dados por
cliente
Melhor aproveitamento de recursos
57. Separação dos dados via esquema de banco
Aplicação e Esquema de Banco de dados por
cliente
Melhor aproveitamento de recursos
Pouca alteração de código
58. Separação dos dados via esquema de banco
Aplicação e Esquema de Banco de dados por
cliente
Melhor aproveitamento de recursos
Pouca alteração de código
Custo de licenças
65. Aplicação e Esquema de Banco de dados por
cliente
Desempenho compartilhado
Gerenciamento dos clientes
66. Aplicação e Esquema de Banco de dados por
cliente
Desempenho compartilhado
Gerenciamento dos clientes
Falhas no banco afeta todos os clientes
alocados naquela instância
67. Aplicação e Esquema de Banco de dados por
cliente
Desempenho compartilhado
Gerenciamento dos clientes
Falhas no banco afeta todos os clientes
alocados naquela instância
Requer maior automatização da
infraestrutura
68. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4 DB
69. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4 DB
70. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4 DB
71. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4 DB
72. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4 DB
73. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4 DB
App
DB
74. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4 DB
App
DB
75. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4 DB
App
DB
76. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4 DB
App
DB
77. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4
DB
App
DB
78. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4
DB
App
DB
79. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4
DB
App
DB
80. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4
DB
App
DB
81. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4
DB
App
DB
82. Aplicação e Banco de dados compartilhados
C3
CN
.
.
.
App
C1
C2
C4
DB
App
DB
85. Aplicação e Banco de dados para todos
Atualização dos clientes
Aproveitamento de recursos por máquina
86. Aplicação e Banco de dados para todos
Atualização dos clientes
Aproveitamento de recursos por máquina
Escalabilidade através de replicação e
balanceamento de carga
89. Aplicação e Banco de dados para todos
Relação clientes por servidor
Menor custo de licenciamento
90. Aplicação e Banco de dados para todos
Relação clientes por servidor
Menor custo de licenciamento
Adição de novos clientes
91. Aplicação e Banco de dados para todos
Relação clientes por servidor
Menor custo de licenciamento
Adição de novos clientes
Clientes “comportados” permanecem
juntos
93. Aplicação e Banco de dados para todos
Separação de dados feito pela aplicação
94. Aplicação e Banco de dados para todos
Separação de dados feito pela aplicação
Maior custo de desenvolvimento
95. Aplicação e Banco de dados para todos
Separação de dados feito pela aplicação
Maior custo de desenvolvimento
Desempenho de um cliente impacta os
outros
96. Aplicação e Banco de dados para todos
Separação de dados feito pela aplicação
Maior custo de desenvolvimento
Desempenho de um cliente impacta os
outros
Difícil medir quem está consumindo
mais recursos