Aplicación SaaS Wingtip Tickets

Se aplica a: Azure SQL Database

La misma aplicación SaaS Wingtip Tickets se implementa en cada uno de los tres ejemplos. La aplicación es una simple aplicación SaaS de lista de eventos y venta de entradas centrada en pequeños locales: teatros, clubes, etc. Cada local es un inquilino de la aplicación y tiene sus propios datos: detalles del local, listas de los eventos, clientes, pedidos de entradas, etc. La aplicación, junto con los scripts de administración y los tutoriales, muestra un escenario completo de SaaS. Esto incluye aprovisionar los inquilinos, supervisar y administrar el rendimiento, la administración de esquemas y los informes y análisis entre inquilinos.

Tres patrones de inquilinato y aplicación SaaS

Hay tres versiones disponibles de la aplicación, donde cada una explora un patrón de inquilinato de base de datos distinto en Azure SQL Database. La primera usa una aplicación independiente por inquilino con su propia base de datos. La segunda usa una aplicación multiinquilino con una base de datos por inquilino. El tercer ejemplo usa una aplicación multiinquilino con bases de datos multiinquilino con particiones.

Tres patrones de inquilino

Cada ejemplo incluye el código de la aplicación, además de los scripts de administración y los tutoriales que exploran una variedad de patrones de diseño y administración. Cada ejemplo se implementa en menos de cinco minutos. Las tres opciones se pueden implementar en paralelo para poder comparar las diferencias de diseño y administración.

Patrón de aplicación independiente por inquilino

El patrón de aplicación independiente por inquilino usa una aplicación de inquilino único con una base de datos para cada inquilino. La aplicación de cada inquilino, incluida su base de datos, se implementa en un grupo de recursos de Azure independiente. El grupo de recursos se puede implementar en la suscripción del proveedor de servicios o en la suscripción del inquilino, y el proveedor la administra en nombre del inquilino. Este patrón de aplicación independiente por inquilino proporciona el mayor nivel de aislamiento del inquilino, pero suele ser la opción más costosa porque no se pueden compartir los recursos entre varios inquilinos. Este patrón se adapta perfectamente a las aplicaciones que pueden resultar más complejas y que se implementan en cantidades menores de inquilinos. Con las aplicaciones independientes, la aplicación se puede personalizar para cada inquilino de manera más simple que en otros patrones.

Consulte los tutoriales y el código en GitHub .../Microsoft/WingtipTicketsSaaS-StandaloneApp.

Patrón de base de datos por inquilino

El patrón de base de datos por inquilino es eficaz para los proveedores de servicios preocupados por el aislamiento del inquilino y que desean ejecutar un servicio centralizado que permita un uso rentable de los recursos compartidos. Se crea una base de datos para cada local, o inquilino, y todas las bases de datos se administran de manera central. Las bases de datos se pueden hospedar en grupos elásticos para proporcionar una administración del rendimiento sencilla y rentable, que aprovecha los patrones de cargas de trabajo imprevisibles de los inquilinos. Una base de datos de catálogo contiene la asignación entre los inquilinos y sus bases de datos. Esta asignación se administra mediante las características de administración de mapas de particiones de la biblioteca cliente de Base de datos elástica, que proporciona una administración eficaz de las conexiones a la aplicación.

Consulte los tutoriales y el código en GitHub .../Microsoft/WingtipTicketsSaaS-DbPerTenant.

Patrón de base de datos multiinquilino con particiones

Las bases de datos multiinquilino son eficaces para los proveedores de servicios que buscan un menor costo por inquilino y están de acuerdo con un aislamiento de inquilino reducido. Este patrón permite empaquetar grandes cantidades de inquilinos en una base de datos individual, con lo que disminuye el costo por inquilino. Es posible lograr una escala casi infinita mediante la creación de particiones de los inquilinos en varias bases de datos. Una base de datos de catálogo asigna inquilinos a las bases de datos.

Este patrón también permite un modelo híbrido en el que puede optimizar el costo con varios inquilinos en una base de datos, o bien optimizar el aislamiento con un solo inquilino en su propia base de datos. Puede elegir la opción según cada inquilino, ya sea cuando se aprovisiona el inquilino o después, sin afectar la aplicación de ninguna manera. Este modelo se puede usar de manera eficaz cuando sea necesario tratar de distinta manera los grupos de inquilinos. Por ejemplo, los inquilinos de bajo costo se pueden asignar a bases de datos compartidas, mientras que los inquilinos premium se pueden asignar a sus propias bases de datos.

Consulte los tutoriales y el código en GitHub .../Microsoft/WingtipTicketsSaaS-MultiTenantDb.

Pasos siguientes

Descripciones de conceptos

Tutoriales y código