Application SaaS Wingtip Tickets
S’applique à : Azure SQL Database
La même application Wingtip Tickets SaaS est implémentée dans chacun des trois exemples. L’application est une simple liste d’événements et de tickets pour l’application SaaS destinée petites salles comme les cinémas, les clubs, etc. Chaque salle est un client de l’application et possède ses propres données : détails du lieu, listes d’événements, clients, commandes de tickets, etc. L’application avec les scripts de gestion et les tutoriels présente un scénario SaaS de bout en bout. Celui-ci inclut le provisionnement des locataires, le monitoring et la gestion des performances, la gestion des schémas et les rapports et analytiques entre locataires.
3 modèles d’application SaaS et de clients
Trois versions de l’application sont disponibles, chacune explorant un modèle différent d’architecture multilocataire de base de données sur Azure SQL Database. Le premier utilise une application autonome par client avec sa propre base de données. La deuxième utilise une application multi-locataire avec une base de données par locataire. La troisième utilise une application multi-locataire avec des bases de données multi-locataires partitionnées.
Chaque exemple inclut le code de l’application, et des scripts et didacticiels qui explorent plusieurs modèles de conception et de gestion. Chaque exemple se déploie en moins de cinq minutes. Les trois exemples peuvent être déployés côte à côte. Vous pouvez alors comparer les différences de conception et de gestion.
Modèle d’application autonome par client
Le modèle d’application autonome par client utilise une application à locataire unique avec une base de données pour chaque locataire. Chaque application du locataire, notamment sa base de données, est déployée dans un groupe de ressources Azure distinct. Le groupe de ressources peut être déployé dans l’abonnement du fournisseur de services ou dans celui du locataire et managé par le fournisseur pour le compte du locataire. Le modèle d’application autonome par client fournit l’isolation des locataires la plus grande, mais il est généralement le plus onéreux, car il n’existe aucune possibilité de partager des ressources entre plusieurs locataires. Ce modèle convient parfaitement aux applications qui peuvent être plus complexes et qui sont déployées sur de plus petits nombres de clients. Avec les déploiements autonomes, l’application peut être personnalisée pour chaque client plus facilement que dans d’autres modèles.
Consultez les tutoriels et le code sur GitHub .../Microsoft/WingtipTicketsSaaS-StandaloneApp.
Modèle avec une base de données par locataire
Le modèle de base de données par locataire est efficace pour les fournisseurs de services qui sont concernés par l’isolation des locataires et souhaitent exécuter un service centralisé qui permet une utilisation rentable de ressources partagées. Une base de données est créée pour chaque locataire ou lieu, et toutes les bases de données sont gérées centralement. Les bases de données peuvent être hébergées dans des pools élastiques pour fournir une gestion des performances rentable et facile, qui tire parti des modèles de charge de travail imprévisibles des locataires. Une base de données de catalogue contient le mappage entre les locataires et leurs bases de données. Ce mappage est géré à l’aide des fonctionnalités de gestion de carte de partitions de la bibliothèque cliente de base de données élastique, ce qui garantit une gestion efficace des connexions à l’application.
Consultez les tutoriels et le code sur GitHub .../Microsoft/WingtipTicketsSaaS-DbPerTenant.
Modèle de base de données multi-locataire partitionnée
Les bases de données multi-locataires sont efficaces pour les fournisseurs de services qui veulent un coût inférieur par locataire et n’ont besoin d’une forte isolation des locataires. Ce modèle permet la compression de gros volumes de locataires dans une base de données individuelle, réduisant ainsi le coût par locataire. Une échelle presque infinie est possible en partitionnant les locataires entre plusieurs bases de données. Une base de données de catalogue mappe à nouveau les locataires aux bases de données.
Ce modèle autorise également un modèle hybride dans lequel vous pouvez optimiser les coûts avec plusieurs locataires dans une base de données, ou optimiser l’isolation avec un seul locataire dans sa propre base de données. Le choix peut être effectué locataire par locataire, soit lorsque le locataire est provisionné, soit ultérieurement, sans aucun impact sur l’application. Ce modèle peut être utilisé efficacement lorsque des groupes de clients doivent être traités différemment. Par exemple, les clients à bas coût peuvent avoir des bases de données partagées, tandis que les clients premium peuvent être affectés à leurs propres bases de données.
Consultez les tutoriels et le code sur GitHub .../Microsoft/WingtipTicketsSaaS-MultiTenantDb.
Étapes suivantes
Descriptions conceptuelles
- Une explication plus détaillée des modèles d’architecture mutualisée d’application est disponible à l’adresse Modèles de location de base de données SaaS multi-locataire
Didacticiels et code
Application autonome par client :
Base de données par locataire :
Multi-locataire partitionné :