Zřizování a katalog nových tenantů pomocí modelu SaaS pro jednotlivé tenanty
Platí pro: Azure SQL Database
Tento článek se zabývá zřizováním a katalogováním nových tenantů pomocí samostatné aplikace na model SaaS tenanta. Tento článek má dvě hlavní části:
- Koncepční diskuze o zřizování a katalogování nových tenantů
- Kurz, který zvýrazňuje ukázkový kód PowerShellu, který provádí zřizování a kataloging
- Tento kurz používá ukázkovou aplikaci SaaS Wingtip Tickets přizpůsobenou samostatné aplikaci pro jednotlivé tenanty.
Model samostatné aplikace na tenanta
Samostatná aplikace pro jednotlivé tenanty je jedním z několika vzorů pro aplikace SaaS s více tenanty. V tomto modelu se pro každého tenanta zřizuje samostatná aplikace. Aplikace se skládá ze součástí na úrovni aplikace a azure SQL Database. Každou aplikaci tenanta je možné nasadit v předplatném dodavatele. Azure také nabízí program spravovaných aplikací, ve kterém může být aplikace nasazená v předplatném tenanta a spravovaná dodavatelem jménem tenanta.
Při nasazování aplikace pro tenanta se aplikace a databáze zřídí v nové skupině prostředků vytvořené pro tenanta. Použití samostatných skupin prostředků izoluje prostředky aplikace jednotlivých tenantů a umožňuje je spravovat nezávisle. V rámci každé skupiny prostředků je každá instance aplikace nakonfigurovaná tak, aby přistupovala k příslušné databázi přímo. Tento model připojení kontrastuje s jinými vzory, které používají katalog ke zprostředkování připojení mezi aplikací a databází. Vzhledem k tomu, že neexistuje žádné sdílení prostředků, musí být každá databáze tenanta zřízena s dostatečnými prostředky, aby zvládla zatížení ve špičce. Tento model se obvykle používá pro aplikace SaaS s menším počtem tenantů, kde je silná důraz na izolaci tenantů a menší důraz na náklady na prostředky.
Použití katalogu tenantů s aplikací na model tenanta
I když jsou aplikace a databáze jednotlivých tenantů plně izolované, můžou různé scénáře správy a analýzy fungovat napříč tenanty. Například použití změny schématu pro novou verzi aplikace vyžaduje změny schématu každé databáze tenanta. Scénáře vytváření sestav a analýz můžou také vyžadovat přístup ke všem databázím tenantů bez ohledu na to, kde jsou nasazené.
Katalog tenantů obsahuje mapování mezi identifikátorem tenanta a databází tenanta, což umožňuje překlad identifikátoru na server a název databáze. V aplikaci Wingtip SaaS se identifikátor tenanta vypočítá jako hodnota hash názvu tenanta, i když je možné použít jiná schémata. I když samostatné aplikace nepotřebují ke správě připojení katalog, katalog se dá použít k určení rozsahu dalších akcí na sadu databází tenantů. Elastic Query může například použít katalog k určení sady databází, ve kterých se dotazy distribuují pro generování sestav mezi tenanty.
Klientská knihovna Elastic Database
V ukázkové aplikaci Wingtip je katalog implementován funkcemi správy horizontálních oddílů klientské knihovny elastické databáze (EDCL). Knihovna umožňuje aplikaci vytvářet, spravovat a používat mapu horizontálních oddílů uloženou v databázi. V ukázce Wingtip Tickets se katalog uloží do databáze katalogu tenantů . Horizontální oddíl mapuje klíč tenanta na horizontální oddíl (databázi), ve které jsou uložená data daného tenanta. Funkce EDCL spravují globální mapu horizontálních oddílů uloženou v tabulkách v databázi katalogu tenantů a mapu místních horizontálních oddílů uloženou v jednotlivých horizontálních oddílech.
Funkce EDCL je možné volat z aplikací nebo skriptů PowerShellu pro vytvoření a správu položek v mapě horizontálních oddílů. Další funkce EDCL je možné použít k načtení sady horizontálních oddílů nebo připojení ke správné databázi pro daný klíč tenanta.
Důležité
Neupravujte data v databázi katalogu ani mapování místních horizontálních oddílů přímo v databázích tenanta. Přímé aktualizace nejsou podporovány kvůli vysokému riziku poškození dat. Místo toho upravte data mapování pouze pomocí rozhraní API EDCL.
Zřizování tenantů
Každý tenant vyžaduje novou skupinu prostředků Azure, kterou je potřeba vytvořit, aby bylo možné prostředky zřídit v rámci tohoto tenanta. Jakmile skupina prostředků existuje, můžete použít šablonu azure Resource Management k nasazení komponent aplikace a databáze a pak nakonfigurovat připojení k databázi. Pokud chcete inicializovat schéma databáze, může šablona importovat soubor bacpac. Případně můžete databázi vytvořit jako kopii databáze šablony. Databáze se pak dále aktualizuje s počátečními daty místa konání a zaregistrována v katalogu.
Kurz
V tomto kurzu se naučíte:
- Zřízení katalogu
- Registrace ukázkových databází tenantů, které jste nasadili dříve v katalogu
- Zřízení dalšího tenanta a jeho registrace v katalogu
Šablona Azure Resource Manageru se používá k nasazení a konfiguraci aplikace, vytvoření databáze tenanta a následnému importu souboru bacpac, který ho inicializuje. Před provedením akce může být žádost o import zařazena do fronty několik minut.
Na konci tohoto kurzu máte sadu samostatných klientských aplikací s každou databází zaregistrovanou v katalogu.
Požadavky
Předpokladem dokončení tohoto kurzu je splnění následujících požadavků:
- Prostředí Azure PowerShell je nainstalované. Podrobnosti najdete v článku Začínáme s prostředím Azure PowerShell.
- Nasadí se tři ukázkové aplikace tenanta. Pokud chcete tyto aplikace nasadit za méně než pět minut, přečtěte si téma Nasazení a prozkoumání modelu SaaSAlone Application Tickets Wingtip.
Zřízení katalogu
V této úloze se dozvíte, jak zřídit katalog použitý k registraci všech databází tenantů. V této lekci:
- Zřiďte databázi katalogu pomocí šablony správy prostředků Azure. Databáze se inicializuje importem souboru bacpac.
- Zaregistrujte ukázkové aplikace tenanta, které jste nasadili dříve. Každý tenant je zaregistrovaný pomocí klíče vytvořeného z hodnoty hash názvu tenanta. Název tenanta je také uložen v tabulce rozšíření v katalogu.
V prostředí PowerShell ISE otevřete ...\Learning Modules\UserConfig.psm a aktualizujte <hodnotu uživatele> na hodnotu, kterou jste použili při nasazování tří ukázkových aplikací. Uložte soubor.
V prostředí PowerShell ISE otevřete ...\Learning Modules\ProvisionTenants\Demo-ProvisionAndCatalog.ps1 a nastavte $Scenario = 1. Nasaďte katalog tenantů a zaregistrujte předem definované tenanty.
Přidejte zarážku tak, že umístíte kurzor kamkoli na řádek, který říká,
& $PSScriptRoot\New-Catalog.ps1
a stiskněte klávesu F9.Spusťte skript stisknutím klávesy F5.
Po zastavení spuštění skriptu na zarážce stiskněte klávesu F11 a přejděte do skriptu New-Catalog.ps1.
Trasování spuštění skriptu pomocí možností nabídky Ladění F10 a F11 pro krokování nebo volání funkcí.
- Další informace o ladění skriptů PowerShellu najdete v tématu Tipy pro práci se skripty PowerShellu a ladění.
Po dokončení skriptu bude katalog existovat a všechny ukázkové tenanty se zaregistrují.
Teď se podívejte na prostředky, které jste vytvořili.
Otevřete Azure Portal a projděte skupiny prostředků. Otevřete skupinu prostředků wingtip-sa-catalog-user<> a poznamenejte si server a databázi katalogu.
Otevřete databázi na portálu a v nabídce vlevo vyberte Průzkumník dat. Klikněte na příkaz Přihlásit a zadejte heslo = P@ssword1.
Prozkoumejte schéma databáze tenantcatalog .
- Všechny objekty ve schématu
__ShardManagement
poskytuje klientská knihovna elastické databáze. - Tabulka
Tenants
aTenantsExtended
zobrazení jsou rozšíření přidaná v ukázce, která ukazují, jak můžete katalog rozšířit o další hodnotu.
- Všechny objekty ve schématu
Spusťte dotaz
SELECT * FROM dbo.TenantsExtended
.Jako alternativu k použití Průzkumníka dat se můžete připojit k databázi z aplikace SQL Server Management Studio. Chcete-li to provést, připojte se k serveru wingtip-
Mějte na paměti, že data byste neměli upravovat přímo v katalogu – vždy používejte rozhraní API pro správu horizontálních oddílů.
Zřízení nové aplikace tenanta
V této úloze se dozvíte, jak zřídit jednu aplikaci tenanta. V této lekci:
- Vytvořte pro tenanta novou skupinu prostředků.
- Pomocí šablony správy prostředků Azure zřiďte aplikaci a databázi do nové skupiny prostředků. Tato akce zahrnuje inicializaci databáze s běžným schématem a referenčními daty importem souboru bacpac.
- Inicializace databáze se základními informacemi o tenantovi Tato akce zahrnuje zadání typu místa konání, který určuje fotografii použitou jako pozadí na svém webu událostí.
- Zaregistrujte databázi v databázi katalogu.
V prostředí PowerShell ISE otevřete ...\Learning Modules\ProvisionTenants\Demo-ProvisionAndCatalog.ps1 a nastavte $Scenario = 2. Nasazení katalogu tenantů a registrace předdefinovaných tenantů
Do skriptu přidáte zarážku tak, že umístíte kurzor kamkoli na řádek 49 a
& $PSScriptRoot\New-TenantApp.ps1
stisknete klávesu F9.Spusťte skript stisknutím klávesy F5.
Po zastavení spuštění skriptu na zarážce stiskněte klávesu F11 a přejděte do skriptu New-Catalog.ps1.
Trasování spuštění skriptu pomocí možností nabídky Ladění F10 a F11 pro krokování nebo volání funkcí.
Po zřízení tenanta se otevře web událostí nového tenanta.
Pak můžete zkontrolovat nové prostředky vytvořené na webu Azure Portal.
Pokud chcete zastavit fakturaci, odstraňte skupiny prostředků.
Až ukázku prozkoumáte, odstraňte všechny skupiny prostředků, které jste vytvořili, a zastavíte tak přidruženou fakturaci.
Další materiály
- Další informace o databázových aplikacích SaaS s více tenanty najdete v tématu Vzory návrhu pro víceklientské aplikace SaaS.
Další kroky
V tomto kurzu jste se dozvěděli:
- Jak nasadit samostatnou aplikaci SaaS Tickets Wingtip.
- Informace o serverech a databázích, které tvoří aplikaci.
- Odstranění ukázkových prostředků za účelem zastavení související fakturace
Pomocí verze databáze pro jednotlivé tenanty aplikace Wingtip Tickets SaaS můžete prozkoumat, jak se katalog používá k podpoře různých scénářů napříč tenanty.