Compartilhar via


O aplicativo Wingtip Tickets SaaS

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 aplicativo SaaS de listagem de eventos simples e com ingressos direcionados a pequenos locais: teatros, clubes e assim por diante. Cada local é um locatário do aplicativo e tem seus próprios dados, como detalhes do local, listas de eventos, clientes, pedidos de tíquetes e assim por diante. O aplicativo, juntamente com os scripts e tutoriais de gerenciamento, mostra um cenário de 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 locatários e aplicativos SaaS

Há três versões do aplicativo disponíveis. Cada uma explora um padrão diferente de locação de banco de dados 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ário fragmentados.

Diagrama dos três padrões de locação.

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

Padrão de aplicativo por locatário autônomo

O padrão de aplicativo por locatário autônomo usa um aplicativo de locatário único com um banco de dados para cada locatário. Cada aplicativo de 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 por locatário autônomo fornece o maior isolamento de locatários, mas é geralmente mais caro, pois não há nenhuma oportunidade de compartilhar recursos entre vários locatários. Esse padrão é adequado para aplicativos que podem ser mais complexa e são implantados para um número menor de locatários. Em 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.

Padrão de banco de dados por locatário

O padrão de banco de dados por locatário é eficaz para provedores de serviço que se preocupam com isolamento de locatários e desejam executar um serviço centralizado que permite o uso econômico dos 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, que gerenciam os padrões imprevisíveis de carga de trabalho dos locatários. O 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 fragmento da Biblioteca de Cliente de Banco de Dados Elástico, que fornece um 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

Bancos de dados multilocatários são eficazes para provedores de serviços que buscam menor custo por inquilino e aceitam o isolamento reduzido entre inquilinos. Esse padrão permite empacotar grandes números de locatários em um banco de dados individual, reduzindo o custo por locatário. Você pode ter uma escala quase infinita fragmentando os locatários em vários bancos de dados. Um banco de dados do catálogo mapeia os locatários para os bancos de dados.

Esse padrão também permite um modelo híbrido, no qual você pode otimizar o custo com vários inquilinos em um banco de dados, ou otimizar para isolamento com um único locatário em seu próprio banco de dados. A escolha pode ser feita com base em locatário por locatário, seja quando o locatário for provisionado ou mais tarde, sem nenhum efeito sobre o aplicativo. Esse modelo pode ser usado com eficiência quando grupos de locatários precisam ser tratados de modo 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 do Wingtips e o código WingtipTicketsSaaS-MultiTenantDB no GitHub](https://github.com/Microsoft/WingtipTicketsSaaS-MultiTenantDb).