O aplicativo SaaS Wingtip Tickets

Aplica-se a:Banco de Dados SQL do Azure

O mesmo aplicativo SaaS Wingtip Tickets é implementado em cada uma das três amostras. O aplicativo é um simples aplicativo SaaS de listagem de eventos e ingressos direcionado a pequenos locais - teatros, clubes, etc. Cada local é um inquilino do aplicativo e tem seus próprios dados: detalhes do local, listas de eventos, clientes, pedidos de ingressos, etc. O aplicativo, juntamente com os scripts de gerenciamento e tutoriais, mostra um cenário SaaS de ponta a ponta. Isso inclui provisionamento de locatários, monitoramento e gerenciamento de desempenho, gerenciamento de esquema e relatórios e análises entre locatários.

Três padrões de aplicação e arrendamento SaaS

Três versões do aplicativo estão disponíveis; cada um explora um padrão de locação de banco de dados diferente no Banco de Dados SQL do Azure. O primeiro usa um aplicativo autônomo por locatário com seu próprio banco de dados. O segundo usa um aplicativo multilocatário com um banco de dados por locatário. O terceiro exemplo usa um aplicativo multilocatário com bancos de dados multilocatários fragmentados.

Three tenancy patterns

Cada exemplo inclui o código do aplicativo, além de scripts de gerenciamento e tutoriais que exploram uma variedade de padrões de design e gerenciamento. Cada amostra é implantada em menos de cinco minutos. Todos os três podem ser implantados lado a lado para que você possa comparar as diferenças no design e no gerenciamento.

Aplicativo autônomo por padrão de locatário

O padrão de aplicativo autônomo por locatário usa um único aplicativo de locatário com um banco de dados para cada locatário. O aplicativo de cada locatário, incluindo seu banco de dados, é implantado em um grupo de recursos do Azure separado. O grupo de recursos pode ser implantado na assinatura do provedor de serviços ou na assinatura do locatário e gerenciado pelo provedor em nome do locatário. O padrão de aplicativo autônomo por locatário fornece o maior isolamento de locatário, mas geralmente é o mais caro, pois não há oportunidade de compartilhar recursos entre vários locatários. Esse padrão é adequado para aplicativos que podem ser mais complexos e que são implantados para um número menor de locatários. Com implantações autônomas, o aplicativo pode ser personalizado para cada locatário mais facilmente do que em outros padrões.

Confira os tutoriais e o código no GitHub .../Microsoft/WingtipTicketsSaaS-StandaloneApp.

Banco de dados por padrão de locatário

O padrão de banco de dados por locatário é eficaz para provedores de serviços preocupados com o isolamento de locatários e que desejam executar um serviço centralizado que permita o uso econômico de recursos compartilhados. Um banco de dados é criado para cada local, ou locatário, e todos os bancos de dados são gerenciados centralmente. Os bancos de dados podem ser hospedados em pools elásticos para fornecer gerenciamento de desempenho fácil e econômico, o que aproveita os padrões de carga de trabalho imprevisíveis dos locatários. Um banco de dados de catálogo contém o mapeamento entre locatários e seus bancos de dados. Esse mapeamento é gerenciado usando os recursos de gerenciamento de mapa de estilhaços da Biblioteca de Cliente do Banco de Dados Elástico, que fornece gerenciamento de conexão eficiente para o aplicativo.

Confira os tutoriais e o código no GitHub .../Microsoft/WingtipTicketsSaaS-DbPerTenant.

Padrão de banco de dados multilocatário fragmentado

Os bancos de dados multilocatários são eficazes para provedores de serviços que procuram um custo mais baixo por locatário e aceitam um isolamento reduzido do locatário. Esse padrão permite empacotar um grande número de locatários em um banco de dados individual, reduzindo o custo por locatário. A escala quase infinita é possível fragmentando os locatários em vários bancos de dados. Um banco de dados de catálogo mapeia locatários para bancos de dados.

Esse padrão também permite um modelo híbrido no qual você pode otimizar o custo com vários locatários em um banco de dados ou otimizar o isolamento com um único locatário em seu próprio banco de dados. A escolha pode ser feita de inquilino por inquilino, quando o inquilino é provisionado ou posteriormente, sem impacto na aplicação. Este modelo pode ser utilizado eficazmente quando os grupos de inquilinos necessitam de ser tratados de forma diferente. Por exemplo, locatários de baixo custo podem ser atribuídos a bancos de dados compartilhados, enquanto locatários premium podem ser atribuídos a seus próprios bancos de dados.

Confira os tutoriais e o código no GitHub .../Microsoft/WingtipTicketsSaaS-MultiTenantDb.

Próximos passos

Descrições conceptuais

Tutoriais e código