Aplicações Multitenant

Preview:

DESCRIPTION

Esta apresentação aborda possíveis arquiteturas de aplicações que tem a nuvem como ambiente de execução. Para cada estratégia exibe prós e contras a serem levados em consideração.

Citation preview

Aplicações MultitenantEstratégias arquiteturais para execução de aplicações na

nuvem

Aplicações multi o quê?

Aplicações Multitenant

Uma única aplicação serve múltiplos clientes/organizações (tenants)

Sua aplicação nas nuvens

Estratégias de Migração p/ Cloud

Aplicação e Banco de dados para todos os tenantsAplicação e Banco de dados por clienteAplicação e esquema separado por clienteAplicação e Banco de dados para todos com migração de clientes com maior demanda

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?

Questionamentos

Qual o custo de licenças?Qual o custo de gerenciamento do software?

Premissas

Todas as estratégias requerem automatização

Tendo isso em mente...

Aplicação e Banco de dados compartilhados

Aplicação DB

Aplicação e Banco de dados compartilhados

Aplicação

Cliente 1

DB

Aplicação e Banco de dados compartilhados

Aplicação

Cliente 1

Cliente 2

DB

Aplicação e Banco de dados compartilhados

Aplicação

Cliente 1

Cliente 2

Cliente 3

DB

Aplicação e Banco de dados compartilhados

Aplicação

Cliente 1

Cliente 2

Cliente 3

Cliente 4 DB

Aplicação e Banco de dados compartilhados

Aplicação

Cliente 1

Cliente 2

Cliente 3

Cliente 4...

Cliente N

DB

Aplicação e Banco de dados para todos

Aplicação e Banco de dados para todos

Atualização dos clientes

Aplicação e Banco de dados para todos

Atualização dos clientes

Aproveitamento de recursos por máquina

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

Aplicação e Banco de dados para todos

Aplicação e Banco de dados para todos

Relação clientes por servidor

Aplicação e Banco de dados para todos

Relação clientes por servidor

Menor custo de licenciamento

Aplicação e Banco de dados para todos

Relação clientes por servidor

Menor custo de licenciamento

Adição de novos clientes

Aplicação e Banco de dados para todos

Aplicação e Banco de dados para todos

Separação de dados feito pela aplicação

Aplicação e Banco de dados para todos

Separação de dados feito pela aplicação

Maior custo de desenvolvimento

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

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 outrosDifícil medir quem está consumindo mais recursos

Aplicação e Banco de dados por cliente

Cliente Aplicação DBServidor

Aplicação e Banco de dados por cliente

Cliente Aplicação DBServidor

Cliente AplicaçãoDBServidor

Aplicação e Banco de dados por cliente

Cliente Aplicação DBServidor

Cliente Aplicação DBServidor

Cliente AplicaçãoDBServidor

Aplicação e Banco de dados por cliente

Cliente Aplicação DBServidor

Cliente Aplicação DBServidor

Cliente AplicaçãoDBServidor

Cliente AplicaçãoDBServidor

Aplicação e Banco de dados por cliente

Cliente Aplicação DBServidor

Cliente Aplicação DBServidor

Cliente Aplicação DBServidor

Cliente AplicaçãoDBServidor

Cliente AplicaçãoDBServidor

Aplicação e Banco de dados por cliente

Cliente Aplicação DBServidor

Cliente Aplicação DBServidor

Cliente Aplicação DBServidor

Cliente AplicaçãoDBServidor

Cliente AplicaçãoDBServidor

Cliente AplicaçãoDBServidor

Aplicação e Banco de dados por cliente

Aplicação e Banco de dados por cliente

Separação dos dados by design

Aplicação e Banco de dados por cliente

Separação dos dados by design

Medição do consumo de recursos

Aplicação e Banco de dados por cliente

Separação dos dados by design

Medição do consumo de recursos

Desempenho independente de cliente

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

Aplicação e Banco de dados por cliente

Aplicação e Banco de dados por cliente

Gerenciamento dos clientes

Aplicação e Banco de dados por cliente

Gerenciamento dos clientes

Adição de novos clientes

Aplicação e Banco de dados por cliente

Gerenciamento dos clientes

Adição de novos clientesRequer mais automatização da infraestrutura

Aplicação e Banco de dados por cliente

Gerenciamento dos clientes

Adição de novos clientesRequer mais automatização da infraestruturaOciosidade

Aplicação e Esquema de Banco de dados por cliente

DB

Servidor BD

Aplicação e Esquema de Banco de dados por cliente

DB

Servidor BD

Aplicação e Esquema de Banco de dados por cliente

Servidor de Aplicação

DB

Servidor BD

Aplicação e Esquema de Banco de dados por cliente

Servidor de Aplicação

Cliente Aplicação E

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

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

DB

Servidor BD

Aplicação e Esquema de Banco de dados por cliente

Servidor de Aplicação

Cliente AplicaçãoE

Cliente Aplicação E

Cliente Aplicação E

Cliente Aplicação E

DB

Servidor BD

Aplicação e Esquema de Banco de dados por cliente

Servidor de Aplicação

Cliente AplicaçãoE

Cliente AplicaçãoE

Cliente Aplicação E

Cliente Aplicação E

Cliente Aplicação E

DB

Servidor BD

Aplicação e Esquema de Banco de dados por cliente

Servidor de Aplicação

Cliente AplicaçãoE

Cliente AplicaçãoE

Cliente AplicaçãoECliente Aplicação E

Cliente Aplicação E

Cliente Aplicação E

Aplicação e Esquema de Banco de dados por cliente

Separação dos dados via esquema de banco

Aplicação e Esquema de Banco de dados por cliente

Separação dos dados via esquema de banco

Aplicação e Esquema de Banco de dados por cliente

Melhor aproveitamento de recursos

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

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

Aplicação e Esquema de Banco de dados por cliente

Aplicação e Esquema de Banco de dados por cliente

Facilidade de migração entre instâncias

Aplicação e Esquema de Banco de dados por cliente

Facilidade de migração entre instâncias

Fácil escalabilidade

Aplicação e Esquema de Banco de dados por cliente

Facilidade de migração entre instâncias

Fácil escalabilidade

Separação por contexto

Aplicação e Esquema de Banco de dados por cliente

Aplicação e Esquema de Banco de dados por cliente

Desempenho compartilhado

Aplicação e Esquema de Banco de dados por cliente

Desempenho compartilhado

Gerenciamento dos clientes

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

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ânciaRequer maior automatização da infraestrutura

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4 DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4 DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4 DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4 DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4 DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4 DBApp

DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4 DBApp

DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4 DBApp

DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4 DBApp

DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4DB

AppDB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2

C4DB

AppDB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2C4

DBApp

DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2C4

DBApp

DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2C4

DBApp

DB

Aplicação e Banco de dados compartilhados

C3

CN

...

App

C1

C2C4

DBApp

DB

Aplicação e Banco de dados para todos

Aplicação e Banco de dados para todos

Atualização dos clientes

Aplicação e Banco de dados para todos

Atualização dos clientes

Aproveitamento de recursos por máquina

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

Aplicação e Banco de dados para todos

Aplicação e Banco de dados para todos

Relação clientes por servidor

Aplicação e Banco de dados para todos

Relação clientes por servidor

Menor custo de licenciamento

Aplicação e Banco de dados para todos

Relação clientes por servidor

Menor custo de licenciamento

Adição de novos clientes

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

Aplicação e Banco de dados para todos

Aplicação e Banco de dados para todos

Separação de dados feito pela aplicação

Aplicação e Banco de dados para todos

Separação de dados feito pela aplicação

Maior custo de desenvolvimento

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

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 outrosDifícil medir quem está consumindo mais recursos

Dúvidas?