Freigeben über


Die Wingtip Tickets SaaS-Anwendung

Gilt für:Azure SQL-Datenbank

In jedem der drei Beispiele wird die gleiche SaaS-Anwendung Wingtip Tickets implementiert. Die App ist eine einfache Veranstaltungskalender- und Ticketing-SaaS-App, die sich an kleine Veranstaltungsorte wie Theater, Clubs und ähnliche richtet. Jeder Veranstaltungsort ist ein Mandant der App und verfügt über eigene Daten, z. B. Veranstaltungsortdetails, Veranstaltungslisten, Kunden, Ticketbestellungen usw. Die App zeigt zusammen mit den Verwaltungsskripts und Lernprogrammen ein End-to-End-SaaS-Szenario. Hierzu gehört Folgendes: Bereitstellung von Mandanten, Überwachung und Verwaltung der Leistung, Schemaverwaltung sowie mandantenübergreifende Berichterstellung und Analyse.

Drei Muster für SaaS-Anwendung und Mandanten

Es stehen drei Versionen der App zur Verfügung. Jede dieser Versionen steht für ein anderes Datenbankmandantenmuster in Azure SQL-Datenbank. Die erste Version verwendet eine eigenständige Anwendung pro Mandant mit eigener Datenbank. Das zweite verwendet eine mehrinstanzenfähige App mit einer Datenbank pro Mandant. Im dritten Beispiel wird eine Mehrinstanzen-App mit fragmentierten Mehrinstanzen-Datenbanken verwendet.

Diagramm der drei Mietmuster.

Jedes Beispiel enthält den Anwendungscode sowie Verwaltungsskripts und Tutorials mit verschiedenen Entwurfs- und Verwaltungsmustern. Jedes Beispiel lässt sich innerhalb von fünf Minuten bereitstellen. Alle drei Beispiele können nebeneinander bereitgestellt werden, sodass Sie die Unterschiede hinsichtlich Entwurf und Verwaltung miteinander vergleichen können.

Muster mit einer eigenständigen Anwendung pro Mandant

Das Muster mit einer eigenständigen Anwendung pro Mandant besteht aus einer einzelnen Mandantenanwendung und einer Datenbank für jeden Mandanten. Die Anwendung jedes Mandanten wird mit der zugehörigen Datenbank in einer separaten Azure-Ressourcengruppe bereitgestellt. Die Ressourcengruppe kann im Abonnement des Dienstanbieters oder im Abonnement des Mandanten bereitgestellt und vom Anbieter im Auftrag des Mandanten verwaltet werden. Das Muster mit einer eigenständigen Anwendung pro Mandant bietet das höchste Maß an Isolierung für die Mandanten, ist aber in der Regel die teuerste Lösung, da Ressourcen nicht von mehreren Mandanten gemeinsam genutzt werden können. Dieses Muster eignet sich gut für Anwendungen, die möglicherweise komplexer sind und für eine kleinere Anzahl von Mandanten bereitgestellt werden. Bei eigenständigen Bereitstellungen kann die Anwendung für den einzelnen Mandanten einfacher als in anderen Mustern angepasst werden.

Weitere Informationen finden Sie in den Tutorials und den Code auf GitHub: .../Microsoft/WingtipTicketsSaaS-StandaloneApp.

Muster mit einer Datenbank pro Mandant

Das Muster mit einer Datenbank pro Mandant ist eine effektive Version für Dienstanbieter, die sowohl ihre Mandanten isolieren müssen als auch einen zentralisierten Dienst ausführen möchten, der eine kosteneffiziente Verwendung gemeinsam genutzter Ressourcen ermöglicht. Für jeden Veranstaltungsort (also jeden Mandanten) wird eine Datenbank erstellt, und alle Datenbanken werden zentral verwaltet. Datenbanken können in elastischen Pools gehostet werden, um ein kostengünstiges und einfaches Leistungsmanagement bereitzustellen, das die unvorhersehbaren Arbeitsauslastungsmuster der Mandanten verwaltet. Eine Katalogdatenbank enthält die Zuordnung zwischen Mandanten und ihren Datenbanken. Diese Zuordnung wird mithilfe der Verwaltungsfeatures der Clientbibliothek für elastische Datenbanken für die Shardzuordnung verwaltet, die eine effiziente Verbindungsverwaltung für die Anwendung ermöglicht.

Weitere Informationen finden Sie in den Tutorials und den Code auf GitHub: .../Microsoft/WingtipTicketsSaaS-DbPerTenant.

Muster für mehrinstanzenfähige Sharddatenbanken

Multitenant-Datenbanken sind effektiv für Dienstanbieter, die niedrigere Kosten pro Mandant anstreben und mit einer geringeren Isolation zwischen den Mandanten einverstanden sind. Mit diesem Muster lässt sich eine große Anzahl von Mandanten mit einer einzelnen Datenbank verwalten, wodurch die Kosten pro Mandant sinken. Durch Sharding der Mandanten in mehreren Datenbanken ist eine nahezu unbegrenzte Skalierung möglich. Die Mandanten werden über eine Katalogdatenbank den Datenbanken zugeordnet.

Dieses Muster ermöglicht auch ein hybrides Modell, bei dem Sie in einer Datenbank für mehrere Mandanten die Kosten optimieren oder mit einem einzelnen Mandanten in seiner eigenen Datenbank für eine optimale Isolierung sorgen können. Diese Entscheidung kann für jeden Mandanten einzeln getroffen werden, entweder während der Bereitstellung des Mandanten oder später – ohne Auswirkungen auf die Anwendung. Dieses Modell lässt sich effektiv einsetzen, wenn Gruppen von Mandanten unterschiedlich behandelt werden müssen. Beispielsweise können kostengünstige Mandanten freigegebenen Datenbanken zugewiesen werden, während Premium-Mandanten eigene Datenbanken erhalten.

Weitere Informationen finden Sie in den Wingtips-Tutorials und dem WingtipTicketsSaaS-MultiTenantDB-Code in GitHub](https://github.com/Microsoft/WingtipTicketsSaaS-MultiTenantDb).