Wingtip Tickets SaaS-programmet

Gäller för:Azure SQL Database

Samma Wingtip Tickets SaaS-program implementeras i vart och ett av tre exempel. Appen är en enkel händelselista och biljettförsäljning SaaS-app som riktar sig till små arenor - teatrar, klubbar osv. Varje plats är en klientorganisation för appen och har egna data: platsinformation, listor över evenemang, kunder, biljettbeställningar osv. Appen visar tillsammans med hanteringsskript och självstudier ett SaaS-scenario från slutpunkt till slutpunkt. Detta omfattar etablering av klientorganisationer, övervakning och hantering av prestanda, schemahantering och rapportering och analys mellan klientorganisationer.

Tre SaaS-program och innehavarmönster

Det finns tre versioner av appen. var och en utforskar ett annat mönster för databasinnehavare i Azure SQL Database. Den första använder ett fristående program per klientorganisation med en egen databas. Den andra använder en app för flera klientorganisationer med en databas per klientorganisation. Det tredje exemplet använder en app för flera klientorganisationer med shardade databaser med flera klientorganisationer.

Three tenancy patterns

Varje exempel innehåller programkoden, plus hanteringsskript och självstudier som utforskar en rad olika design- och hanteringsmönster. Varje exempel distribueras på mindre än fem minuter. Alla tre kan distribueras sida vid sida så att du kan jämföra skillnaderna i design och hantering.

Fristående program per klientorganisationsmönster

Den fristående appen per klientorganisation använder ett enda klientprogram med en databas för varje klientorganisation. Varje klients app, inklusive dess databas, distribueras till en separat Azure-resursgrupp. Resursgruppen kan distribueras i tjänstleverantörens prenumeration eller klientorganisationens prenumeration och hanteras av providern för klientorganisationens räkning. Det fristående appmönstret per klientorganisation ger den största klientisoleringen, men är vanligtvis den dyraste eftersom det inte finns någon möjlighet att dela resurser mellan flera klienter. Det här mönstret passar bra för program som kan vara mer komplexa och som distribueras till mindre antal klienter. Med fristående distributioner kan appen anpassas för varje klientorganisation enklare än i andra mönster.

Kolla in självstudierna och koden på GitHub .../Microsoft/WingtipTicketsSaaS-StandaloneApp.

Mönster för databas per klientorganisation

Mönstret för databasen per klientorganisation är effektivt för tjänstleverantörer som arbetar med klientisolering och som vill köra en centraliserad tjänst som möjliggör kostnadseffektiv användning av delade resurser. En databas skapas för varje plats eller klientorganisation och alla databaser hanteras centralt. Databaser kan finnas i elastiska pooler för att tillhandahålla kostnadseffektiv och enkel prestandahantering, vilket utnyttjar klienternas oförutsägbara arbetsbelastningsmönster. En katalogdatabas innehåller mappningen mellan klientorganisationer och deras databaser. Den här mappningen hanteras med hjälp av funktionerna för hantering av shardkartor i Elastic Database-klientbiblioteket, vilket ger effektiv anslutningshantering till programmet.

Kolla in självstudierna och koden på GitHub .../Microsoft/WingtipTicketsSaaS-DbPerTenant.

Mönster för shardad databas för flera klientorganisationer

Databaser med flera klientorganisationer är effektiva för tjänstleverantörer som vill ha lägre kostnad per klientorganisation och okej med minskad klientisolering. Det här mönstret gör det möjligt att packa ett stort antal klienter i en enskild databas, vilket gör att kostnaden per klientorganisation minskar. Det går att skala nästan oändligt genom att partitionera klientorganisationer i flera databaser. En katalogdatabas mappar klienter till databaser.

Det här mönstret tillåter också en hybridmodell där du kan optimera för kostnader med flera klienter i en databas eller optimera för isolering med en enda klientorganisation i sin egen databas. Valet kan göras utifrån klientorganisation, antingen när klientorganisationen etableras eller senare, utan att programmet påverkas. Den här modellen kan användas effektivt när grupper av klienter behöver behandlas annorlunda. Till exempel kan billiga klientorganisationer tilldelas till delade databaser, medan premiumklienter kan tilldelas till sina egna databaser.

Kolla in självstudierna och koden på GitHub .../Microsoft/WingtipTicketsSaaS-MultiTenantDb.

Nästa steg

Konceptuella beskrivningar

Självstudier och kod