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 lista de eventos simple y la aplicación SaaS de venta de entradas dirigida a pequeños lugares: teatros, clubes, etc. Cada lugar es un inquilino de la aplicación y tiene sus propios datos, como detalles de la ubicación, listas de eventos, clientes, pedidos de entradas, etc. La aplicación, junto con los scripts de administración y los tutoriales, muestra un escenario de SaaS de un extremo a otro. 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. El segundo usa una aplicación multiinquilino con una base de datos por inquilino. En el tercer ejemplo se usa una aplicación multiinquilino con bases de datos multiinquilino particionadas.
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 ser administrado por el proveedor 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 de rendimiento rentable y fácil, que administra los patrones de carga de trabajo impredecibles 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 multiusuario son eficaces para los proveedores de servicios que buscan un menor costo por usuario y a quienes no les importa un aislamiento de usuario reducido. Este patrón permite empaquetar grandes cantidades de inquilinos en una base de datos individual, con lo que disminuye el costo por inquilino. Puede tener una escala casi infinita particionando 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 de Wingtips y código de WingtipTicketsSaaS-MultiTenantDB en GitHub](https://github.com/Microsoft/WingtipTicketsSaaS-MultiTenantDb).
Contenido relacionado
- Patrones de inquilinato de base de datos SaaS multiinquilino
- Implementación y exploración de una aplicación independiente de un solo inquilino que usa Azure SQL Database
- Código para la aplicación independiente, en GitHub
- Introducción a una aplicación SaaS multiinquilino que usa el patrón de base de datos por inquilino con Azure SQL Database
- Código para base de datos por inquilino en GitHub
- Implementación y exploración de una aplicación multiinquilino con particiones
- Código para multiinquilino con particiones en GitHub