De Wingtip Tickets SaaS-toepassing
van toepassing op:Azure SQL Database-
Dezelfde Wingtip Tickets SaaS-toepassing wordt geïmplementeerd in elk van de drie voorbeelden. De app is een eenvoudige gebeurtenisvermelding en ticketing saaS-app die gericht is op kleine locaties: theaters, clubs, enzovoort. Elke locatie is een tenant van de app en heeft zijn eigen gegevens, zoals locatiedetails, lijsten met gebeurtenissen, klanten, ticketorders enzovoort. De app toont samen met de beheerscripts en zelfstudies een end-to-end SaaS-scenario. Dit omvat het inrichten van tenants, het bewaken en beheren van prestaties, schemabeheer en rapportage en analyses ten aanzien van meerdere tenants.
Drie SaaS-toepassings- en tenancypatronen
Er zijn drie versies van de app beschikbaar; elk verkent een ander patroon voor databasetenancy in Azure SQL Database. De eerste maakt gebruik van een zelfstandige toepassing per tenant met een eigen database. De tweede maakt gebruik van een multitenant-app met een database per tenant. Het derde voorbeeld maakt gebruik van een multitenanttoepassing met gesegmenteerde multitenant-databases.
Elk voorbeeld bevat de toepassingscode, plus beheerscripts en zelfstudies die een scala aan ontwerp- en beheerpatronen verkennen. Elk voorbeeld wordt in minder dan vijf minuten geïmplementeerd. Alle drie kunnen naast elkaar worden geïmplementeerd, zodat u de verschillen in ontwerp en beheer kunt vergelijken.
Patroon losstaande applicatie per tenant
De zelfstandige app per tenantpatroon maakt gebruik van één tenanttoepassing met een database voor elke tenant. De app van elke tenant, inclusief de database, wordt geïmplementeerd in een afzonderlijke Azure-resourcegroep. De resourcegroep kan worden geïmplementeerd in het abonnement van de serviceprovider of het abonnement van de tenant en beheerd door de provider namens de tenant. Het patroon van de zelfstandige app per tenant biedt de grootste tenantisolatie, maar is meestal het duurst omdat er geen mogelijkheid is om resources te delen tussen meerdere tenants. Dit patroon is geschikt voor toepassingen die mogelijk complexer zijn en die worden geïmplementeerd in kleinere aantallen tenants. Met zelfstandige implementaties kan de app eenvoudiger worden aangepast voor elke tenant dan in andere patronen.
Bekijk de zelfstudies en code op GitHub .../Microsoft/WingtipTicketsSaaS-StandaloneApp.
Database-patroon per tenant
Het databasepatroon per tenant is effectief voor serviceproviders die zich bezighouden met tenantisolatie en een gecentraliseerde service willen uitvoeren die kostenefficiënt gebruik van gedeelde resources mogelijk maakt. Er wordt een database gemaakt voor elke locatie of tenant en alle databases worden centraal beheerd. Databases kunnen worden gehost in elastische pools om kostenefficiënt en eenvoudig prestatiebeheer te bieden, waarmee de onvoorspelbare workloadpatronen van de tenants worden beheerd. Een catalogusdatabase bevat de koppelingen tussen huurders en hun databases. Deze toewijzing wordt beheerd met behulp van de shard-toewijzingsbeheerfuncties van de Elastic Database-clientbibliotheek, die efficiënt verbindingsbeheer voor de toepassing biedt.
Bekijk de zelfstudies en code op GitHub .../Microsoft/WingtipTicketsSaaS-DbPerTenant.
Patroon voor gesharde multitenant databases
Multitenant-databases zijn effectief voor serviceproviders die op zoek zijn naar lagere kosten per tenant en oké met verminderde tenantisolatie. Met dit patroon kunnen grote aantallen tenants in een afzonderlijke database worden verpakt, waardoor de kosten per tenant omlaag worden gebracht. U kunt bijna oneindig schalen door de tenants over meerdere databases te sharden. Een catalogusdatabase wijst tenants toe aan databases.
Met dit patroon kunt u ook een hybride model gebruiken, waarin u kunt optimaliseren voor kosten met meerdere tenants in één database of voor isolatie met een enkele tenant in hun eigen database. De keuze kan per huurder worden gemaakt, ofwel wanneer de huurder wordt ingericht of later, zonder gevolgen voor de applicatie. Dit model kan effectief worden gebruikt wanneer groepen tenants anders moeten worden behandeld. Goedkope tenants kunnen bijvoorbeeld worden toegewezen aan gedeelde databases, terwijl Premium-tenants aan hun eigen databases kunnen worden toegewezen.
Bekijk de Wingtips-tutorials en WingtipTicketsSaaS-MultiTenantDB code op GitHub (https://github.com/Microsoft/WingtipTicketsSaaS-MultiTenantDb).
Verwante inhoud
- Multi-tenant SaaS-database huurpatronen
- een zelfstandige toepassing met één tenant implementeren en verkennen die gebruikmaakt van Azure SQL Database
- Code voor zelfstandige app op GitHub
- Inleiding tot een SaaS-app met meerdere tenants die gebruikmaakt van het database-per-tenantpatroon met Azure SQL Database
- Code voor database per tenant, op GitHub
- een shard-multitenant-toepassing implementeren en verkennen
- Code voor geshard multitenant op GitHub