Zjistěte, jak zřídit nové tenanty a zaregistrovat je v katalogu.

Platí pro:Azure SQL Database

V tomto kurzu se naučíte zřizovat a katalogovat vzory SaaS. Dozvíte se také, jak se implementují v aplikaci SaaS typu databáze Wingtip Tickets pro jednotlivé tenanty. Vytvoříte a inicializujete nové databáze tenantů a zaregistrujete je v katalogu tenantů aplikace. Katalog je databáze, která udržuje mapování mezi mnoha tenanty aplikace SaaS a jejich daty. Katalog hraje důležitou roli při směrování požadavků aplikace a správy na správnou databázi.

V tomto kurzu se naučíte:

  • Zřízení jednoho nového tenanta
  • Zřiďte dávku dalších tenantů.

Předpokladem dokončení tohoto kurzu je splnění následujících požadavků:

  • Nasadí se aplikace Wingtip Tickets SaaS pro jednotlivé tenanty. Pokud ho chcete nasadit za méně než pět minut, přečtěte si téma Nasazení a prozkoumání aplikace SaaS v databázi Wingtip Tickets SaaS pro jednotlivé tenanty.
  • Prostředí Azure PowerShell je nainstalované. Další informace najdete v tématu Začínáme s Azure PowerShellem.

Úvod do modelu katalogu SaaS

Ve víceklientské aplikaci SaaS založené na databázi je důležité vědět, kde se ukládají informace pro každého tenanta. V modelu katalogu SaaS se databáze katalogu používá k uložení mapování mezi každým tenantem a databází, ve které jsou uložena jejich data. Tento model platí vždy, když se data tenanta distribuují napříč více databázemi.

Každý tenant je identifikován klíčem v katalogu, který je mapován na umístění své databáze. V aplikaci Wingtip Tickets se klíč vytvoří z hodnoty hash názvu tenanta. Toto schéma umožňuje aplikaci sestavit klíč z názvu tenanta, který je součástí adresy URL aplikace. Můžete použít jiná schémata klíče tenanta.

Katalog umožňuje změnit název nebo umístění databáze s minimálním dopadem na aplikaci. V modelu víceklientských databází tato funkce také umožňuje přesun tenanta mezi databázemi. Katalog lze také použít k označení, jestli je tenant nebo databáze offline kvůli údržbě nebo jiným akcím. Tato funkce se zkoumá v kurzu Obnovení jednoho tenanta.

Katalog může také ukládat další metadata tenanta nebo databáze, jako je verze schématu, plán služby nebo smlouvy SLA nabízené tenantům. Katalog může ukládat další informace, které umožňují správu aplikací, zákaznickou podporu nebo DevOps.

Kromě aplikace SaaS může katalog povolit databázové nástroje. V ukázce databáze SaaS Wingtip Tickets pro jednotlivé tenanty se katalog používá k povolení dotazu napříč tenanty, který se zkoumá v kurzu ad hoc generování sestav. Správa úloh napříč databázemi se zkoumá v kurzech správa schémat a analýzy tenantů.

V ukázkách SaaS lístků Wingtip se katalog implementuje pomocí funkcí správy horizontálních oddílů klientské knihovny elastické databáze (EDCL). Seznam EDCL je k dispozici v Javě a rozhraní .NET Framework. Seznam EDCL umožňuje aplikaci vytvářet, spravovat a používat mapu horizontálních oddílů založené na databázi.

Mapa horizontálních oddílů obsahuje seznam horizontálních oddílů (databází) a mapování mezi klíči (tenanty) a horizontálními oddíly. Funkce EDCL se používají při zřizování tenanta k vytvoření položek v mapě horizontálních oddílů. Aplikace je používají za běhu k připojení ke správné databázi. EDCL ukládá informace o připojení do mezipaměti, aby se minimalizoval provoz do databáze katalogu a urychlil aplikaci.

Důležité

Data mapování jsou přístupná v databázi katalogu, ale neupravujte je. Upravte mapování dat pouze pomocí rozhraní API klientské knihovny elastické databáze. Přímá manipulace s mapováním dat riskuje poškození katalogu a nepodporuje se.

Úvod do modelu zřizování SaaS

Když do aplikace SaaS přidáte nového tenanta, který používá model databáze s jedním tenantem, musíte zřídit novou databázi tenanta. Databáze musí být vytvořena v příslušném umístění a úrovni služby. Musí být také inicializován s příslušnými schématy a referenčními daty. A musí být zaregistrovaný v katalogu v příslušném klíči tenanta.

Je možné použít různé přístupy ke zřizování databáze. Můžete spouštět skripty SQL, nasazovat soubor bacpac nebo kopírovat databázi šablony.

Zřizování databází musí být součástí vaší strategie správy schématu. Ujistěte se, že jsou nové databáze zřízené pomocí nejnovějšího schématu. Tento požadavek se zkoumá v kurzu správa schématu.

Aplikace Wingtip Tickets pro jednotlivé tenanty zřizuje nové tenanty zkopírováním databáze šablony s názvem basetenantdb, která je nasazená na serveru katalogu. Zřizování je možné integrovat do aplikace jako součást prostředí registrace. Dá se také podporovat offline pomocí skriptů. Tento kurz zkoumá zřizování pomocí PowerShellu.

Skripty zřizování zkopírují databázi basetenantdb a vytvoří novou databázi tenanta v elastickém fondu. Databáze tenanta se vytvoří na serveru tenanta namapovaného na alias DNS nového tenanta . Tento alias udržuje odkaz na server použitý ke zřizování nových tenantů a aktualizuje se tak, aby odkazovat na server tenanta zotavení po havárii v kurzech zotavení po havárii (zotavení po havárii pomocí georestore, zotavení po havárii pomocí georeplicace). Skripty pak inicializují databázi s informacemi specifickými pro tenanta a zaregistrují je v mapě horizontálních oddílů katalogu. Databáze tenantů mají názvy založené na názvu tenanta. Toto schéma pojmenování není důležitou součástí modelu. Katalog mapuje klíč tenanta na název databáze, takže je možné použít jakoukoli konvenci pojmenování.

Získání skriptů aplikace SaaS typu Wingtip Tickets pro jednotlivé tenanty

Skripty SaaS Wingtip Tickets a zdrojový kód aplikace jsou k dispozici v úložišti WingtipTicketsSaaSaS-DbPerTenant na GitHubu. V obecných doprovodných materiálech najdete pokyny ke stažení a odblokování skriptů SaaS pro Wingtip Tickets.

Podrobný postup zřizování a přidání tenantů do katalogu

Abyste pochopili, jak aplikace Wingtip Tickets implementuje nové zřizování tenantů, přidejte zarážku a postupujte podle pracovního postupu při zřizování tenanta.

  1. V prostředí PowerShell ISE otevřete ...\Learning Modules\ProvisionAndCatalog\Demo-ProvisionAndCatalog.ps1 a nastavte následující parametry:

    • $TenantName = název nového místa (například Bushwillow Blues).
    • $VenueType = jeden z předdefinovaných typů míst: blues, classicmusic, dance, jazz, judo, motor racing, multipurpose, opera, rockmusic, fotbal.
    • = $DemoScenario 1, zřiďte jednoho tenanta.
  2. Pokud chcete přidat zarážku, umístěte kurzor kamkoli na řádek s textem New-Tenant (Nový tenant). Pak stiskněte klávesu F9.

    Screenshot shows a script with New-Tenant highlighted for adding a breakpoint.

  3. Skript spustíte stisknutím klávesy F5.

  4. Jakmile se spuštění skriptu zastaví na zarážce, stiskněte klávesu F11 a přejděte do kódu.

    Debugging

Trasování spuštění skriptu pomocí možností nabídky Ladění . Stisknutím klávesY F10 a F11 přejdete nebo přejdete na volané funkce. Další informace o ladění skriptů PowerShellu najdete v tématu Tipy pro práci se skripty PowerShellu a ladění.

Tento pracovní postup nemusíte explicitně sledovat. Vysvětluje, jak ladit skript.

  • Importujte modul CatalogAndDatabaseManagement.psm1. Poskytuje abstrakci na úrovni katalogu a tenanta pro funkce správy horizontálních oddílů. Tento modul zapouzdřuje většinu vzoru katalogu a stojí za to prozkoumat.

  • Importujte modul SubscriptionManagement.psm1. Obsahuje funkce pro přihlášení k Azure a výběr předplatného Azure, se kterým chcete pracovat.

  • Získejte podrobnosti o konfiguraci. Přejděte k příkazu Get-Configuration pomocí klávesy F11 a podívejte se, jak je zadaná konfigurace aplikace. Názvy prostředků a další hodnoty specifické pro aplikace jsou zde definovány. Tyto hodnoty neměňte, dokud nebudete obeznámeni se skripty.

  • Získejte katalog objektů. Přejděte do modulu Get-Catalog, který se skládá a vrací objekt katalogu, který se používá ve skriptu vyšší úrovně. Tato funkce používá funkce správy horizontálních oddílů, které se importují z AzureShardManagement.psm1. Objekt katalogu se skládá z následujících prvků:

    • $catalogServerFullyQualifiedName se konstruuje pomocí standardního kmene a uživatelského jména: catalog-user.database.windows<> .net.
    • $catalogDatabaseName se načte z této konfigurace: tenantcatalog.
    • Objekt $shardMapManager se inicializuje z databáze katalogu.
    • Objekt $shardMap se inicializuje z mapy horizontálního dělení tenantcatalog v databázi katalogu. Objekt katalogu se skládá a vrací. Používá se ve skriptu vyšší úrovně.
  • Vypočítejte klíč nového tenanta. K vytvoření klíče tenanta z jeho jména se používá funkce hash.

  • Zkontrolujte, jestli klíč tenanta ještě neexistuje. Katalog je zaškrtnutý a zkontroluje, jestli je klíč dostupný.

  • Ke zřízení databáze tenanta se použije New-TenantDatabase. Pomocí F11 můžete přejít k postupu zřizování databáze pomocí šablony Azure Resource Manageru.

    Název databáze je sestavený z názvu tenanta, aby bylo jasné, jakému tenantovi příslušný horizontální oddíl patří. Můžete také použít jiné zásady vytváření názvů databází. Šablona Resource Manageru vytvoří databázi tenanta zkopírováním databáze šablony (baseTenantDB) na serveru katalogu. Jako alternativu můžete vytvořit databázi a inicializovat ji importem souboru bacpac. Nebo můžete spustit inicializační skript z dobře známého umístění.

    Šablona Resource Manageru je ve složce ...\Learning Modules\Common\: tenantdatabasecopytemplate.json

  • Databáze tenanta se dále inicializuje. Přidá se název místa konání (tenant) a typ místa konání. Tady můžete také provést další inicializaci.

  • Databáze tenanta je zaregistrovaná v katalogu. Je zaregistrovaný v add-TenantDatabaseToCatalog pomocí klíče tenanta. Ke vstupu do podrobností použijte funkční klávesu F11.

    • Databáze katalogu se přidá do mapy horizontálního dělení (tj. do seznamu známých databází).
    • Vytvoří se mapování, které propojí hodnotu klíče s horizontálním oddílem.
    • Další metadata o tenantovi (název místa) se přidají do tabulky Tenants v katalogu. Tabulka Tenants není součástí schématu správy horizontálních oddílů a není nainstalovaná seznamem EDCL. Tato tabulka ukazuje, jak lze databázi katalogu rozšířit tak, aby podporovala další data specifická pro aplikaci.

Po dokončení zřizování se provádění vrátí do původního skriptu Demo-ProvisionAndCatalog . Otevře se stránka Události pro nového tenanta v prohlížeči.

Events page

Zřízení dávky tenantů

Toto cvičení zřídí dávku 17 tenantů. Doporučujeme zřídit tuto dávku tenantů před zahájením dalších kurzů k databázi SaaS Wingtip Tickets Pro jednotlivé tenanty. Existuje více než jen několik databází, se kterými můžete pracovat.

  1. V prostředí PowerShell ISE otevřete ...\Learning Modules\ProvisionAndCatalog\Demo-ProvisionAndCatalog.ps1. Změňte parametr $DemoScenario na 3:

    • = $DemoScenario 3, zřiďte dávku tenantů.
  2. Skript spustíte stisknutím klávesy F5.

Skript nasadí dávku dalších tenantů. Používá šablonu Azure Resource Manageru, která řídí dávku a deleguje zřizování každé databáze na propojenou šablonu. Tento způsob použití šablon umožňuje Azure Resource Manageru zprostředkovat skriptu proces zřizování. Šablony zřizují databáze paralelně a v případě potřeby zpracovávají opakované pokusy. Skript je idempotentní, takže pokud se z nějakého důvodu nezdaří nebo zastaví, spusťte ho znovu.

Ověření dávky tenantů, kteří úspěšně nasadili

  • Na webu Azure Portal přejděte na seznam serverů a otevřete server tenants1 . Vyberte databáze SQL a ověřte, jestli je v seznamu dávka 17 dalších databází.

    Database list

Další způsoby zřizování

Další vzory zřizování, které nejsou součástí tohoto kurzu:

Předběžné zřizování databází: Vzor předběžného zřizování využívá skutečnost, že databáze v elastickém fondu nepřidá další náklady. Fakturace je pro elastický fond, ne databáze. Nečinné databáze spotřebovávají žádné prostředky. Předběžným zřizováním databází ve fondu a jejich přidělením v případě potřeby můžete zkrátit dobu přidávání tenantů. Počet předem zřízených databází je možné podle potřeby upravit, aby byla vyrovnávací paměť vhodná pro očekávanou míru zřizování.

Automatické zřizování: V modelu automatického zřizování zřídí služba zřizování servery, fondy a databáze automaticky podle potřeby. Pokud chcete, můžete do elastických fondů zahrnout předem zřízené databáze. Pokud se databáze vyřadí z provozu a odstraní, může služba zřizování vyplnit mezery v elastických fondech. Taková služba může být jednoduchá nebo složitá, například zpracování zřizování v různých geografických oblastech a nastavení geografické replikace pro zotavení po havárii.

Pomocí vzoru automatického zřizování klientská aplikace nebo skript odešle žádost o zřízení do fronty, kterou bude služba zřizování zpracovávat. Pak se služba dotazuje, aby určila dokončení. Pokud se použije předběžné zřizování, požadavky se zpracovávají rychle. Služba zřizuje náhradní databázi na pozadí.

Další kroky

V tomto kurzu jste se naučili:

  • Zřízení jednoho nového tenanta
  • Zřiďte dávku dalších tenantů.
  • Podrobné informace o zřizování tenantů a jejich registraci do katalogu

Vyzkoušejte kurz monitorování výkonu.

Další prostředky