Sdílet prostřednictvím


Nasazení a prozkoumání víceklientské aplikace SaaS, která používá model databáze na tenanta se službou Azure SQL Database

Platí pro: Azure SQL Database

V tomto kurzu nasadíte a prozkoumáte aplikaci Wingtip Tickets SaaS pro jednotlivé tenanty (Wingtip). Aplikace používá vzor databáze na tenanta k ukládání dat více tenantů. Aplikace je navržená tak, aby představila funkce azure SQL Database, které zjednodušují povolení scénářů SaaS.

Pět minut po výběru možnosti Nasadit do Azure máte víceklientské aplikace SaaS. Aplikace obsahuje databázi, která běží ve službě Azure SQL Database. Aplikace se nasadí se třemi ukázkovými tenanty, z nichž každá má vlastní databázi. Všechny databáze se nasadí do elastického fondu SQL. Aplikace se nasadí do vašeho předplatného Azure. Máte úplný přístup k prozkoumání a práci s jednotlivými komponentami aplikace. Zdrojový kód aplikace C# a skripty pro správu jsou k dispozici v úložišti WingtipTicketsSaaSaS-DbPerTenant na GitHubu.

V tomto kurzu se dozvíte:

  • Postup nasazení aplikace Wingtip SaaS
  • Kde získat zdrojový kód aplikace a skripty pro správu
  • O serverech, fondech a databázích, které tvoří aplikaci.
  • Jak se tenanti mapují na svá data pomocí katalogu.
  • Jak zřídit nového tenanta
  • Jak monitorovat aktivitu tenanta v aplikaci

Řada souvisejících kurzů nabízí prozkoumání různých vzorů návrhu a správy SaaS. Kurzy se sestavují nad rámec tohoto počátečního nasazení. Při používání kurzů můžete prozkoumat poskytnuté skripty a podívat se, jak se implementují různé vzory SaaS. Skripty ukazují, jak funkce SQL Database zjednodušují vývoj aplikací SaaS.

Požadavky

K dokončení tohoto kurzu se ujistěte, že je nainstalovaný Azure PowerShell. Další informace najdete v tématu Začínáme s Azure PowerShellem.

Nasazení aplikace Wingtip Tickets SaaS

Plánování názvů

V krocích této části zadáte hodnotu uživatele, která se použije k zajištění globálního jedinečného názvu prostředků. Zadáte také název skupiny prostředků, která obsahuje všechny prostředky vytvořené nasazením aplikace. Pro fiktivní osobu jménem Ann Finley navrhujeme:

  • Uživatel: af1 se skládá z Ann Finleyových iniciály plus číslice. Pokud aplikaci nasadíte podruhé, použijte jinou hodnotu. Příkladem je af2.
  • Skupina prostředků: wingtip-dpt-af1 označuje, že se jedná o aplikaci databáze na tenanta. Připojte uživatelské jméno af1 ke korelaci názvu skupiny prostředků s názvy prostředků, které obsahuje.

Zvolte svoje jména a poznamenejte si je.

Kroky

  1. Pokud chcete na webu Azure Portal otevřít šablonu nasazení SaaS saaS wingtip Tickets pro jednotlivé tenanty, vyberte Nasadit do Azure.

    Obrázek znázorňující tlačítko s popiskem Nasadit do Azure

  2. Zadejte do šablony hodnoty požadovaných parametrů.

    Důležité

    Některé brány firewall ověřování a serveru jsou záměrně nezabezpečené pro demonstrační účely. Doporučujeme vytvořit novou skupinu prostředků. Nepoužívejte existující skupiny prostředků, servery ani fondy. Nepoužívejte tuto aplikaci, skripty ani žádné nasazené prostředky pro produkční prostředí. Až budete s aplikací hotovi, odstraňte tuto skupinu prostředků, aby se zastavila související fakturace.

    • Skupina prostředků: Vyberte Vytvořit nový a zadejte jedinečný název, který jste pro skupinu prostředků zvolili dříve.
    • Umístění: Vyberte umístění z rozevíracího seznamu.
    • Uživatel: Použijte hodnotu uživatelského jména, kterou jste zvolili dříve.
  3. Nasaďte aplikaci.

    a. Vyberte souhlas s podmínkami a ujednáními.

    b. Vyberte Koupit.

  4. Pokud chcete monitorovat stav nasazení, vyberte Oznámení (ikona zvonku napravo od vyhledávacího pole). Nasazení aplikace Wingtip Tickets SaaS trvá přibližně pět minut.

    Nasazení bylo úspěšné.

Stažení a odblokování skriptů pro správu lístků Wingtip

Zatímco se aplikace nasadí, stáhněte si zdrojový kód a skripty pro správu.

Důležité

Při stahování souborů .zip z externího zdroje a extrahování může systém Windows blokovat spustitelný obsah (skripty a knihovny DLL). Před extrahováním skriptů odblokujte soubor .zip podle pokynů. Odblokování zajistí, že skripty mohou běžet.

  1. Přejděte do úložiště WingtipTicketsSaaSaS-DbPerTenant na GitHubu.
  2. Vyberte Clone or download (Naklonovat nebo stáhnout).
  3. Vyberte Stáhnout ZIP a pak soubor uložte.
  4. Klikněte pravým tlačítkem myši na soubor WingtipTicketsSaaS-DbPerTenant-master.zip a pak vyberte Vlastnosti.
  5. Na kartě Obecné vyberte Odblokovat>použít.
  6. Vyberte OK a extrahujte soubory.

Skripty se nacházejí ve složce ...\WingtipTicketsSaaSaS-DbPerTenant-master\Learning Modules.

Aktualizace konfiguračního souboru uživatele pro toto nasazení

Před spuštěním skriptů aktualizujte hodnoty skupiny prostředků a uživatele v konfiguračním souboru uživatele. Nastavte tyto proměnné na hodnoty, které jste použili během nasazování.

  1. V prostředí PowerShell ISE otevřete ...\Learning Modules\UserConfig.psm1.
  2. Aktualizujte ResourceGroupName a Name konkrétními hodnotami pro vaše nasazení (pouze na řádcích 10 a 11).
  3. Uložte změny.

Na tyto hodnoty se odkazuje téměř ve všech skriptech.

Spuštění aplikace

Aplikace prezentuje místa konání, která hostují události. Mezi typy míst patří koncerty, jazzové kluby a sportovní kluby. V Wingtip Tickets jsou místa zaregistrovaná jako tenanti. Když se jedná o tenanta, získáte snadný způsob, jak vypsat události a prodávat lístky svým zákazníkům. Každý hotel získá individuální web, který vypíše své akce a prodá vstupenky.

Každý tenant v aplikaci interně získá databázi nasazenou do elastického fondu.

Centrální stránka centra událostí obsahuje seznam odkazů na tenanty ve vašem nasazení.

  1. Pomocí adresy URL otevřete centrum událostí ve webovém prohlížeči: http://events.wingtip-dpt.<user.trafficmanager.net>. Nahraďte <uživatele> hodnotou uživatele vašeho nasazení.

    Centrum událostí

  2. V centru událostí vyberte Fabrikam Jazz Club .

    Události

Azure Traffic Manager

Aplikace Wingtip používá Azure Traffic Manager k řízení distribuce příchozích požadavků. Adresa URL pro přístup ke stránce událostí pro konkrétního tenanta používá následující formát:

  • http://events.wingtip-dpt.<user.trafficmanager.net/fabrikamjazzclub>

    Části předchozího formátu jsou vysvětleny v následující tabulce.

    Část Adresa URL Popis
    events.wingtip-dpt Části aplikace Wingtip.

    -dpt rozlišuje implementaci wingtip tickets databáze pro jednotlivé tenanty od ostatních implementací. Příkladem jsou implementace jedné aplikace pro jednotlivé tenanty (-sa) nebo víceklientské databáze (-mt).
    .<uživatel> af1 v příkladu.
    .trafficmanager.net/ Traffic Manager, základní adresa URL.
    fabrikamjazzclub Identifikuje tenanta s názvem Fabrikam Jazz Club.
  • Název tenanta se parsuje z adresy URL aplikací událostí.

  • Název tenanta se používá k vytvoření klíče.

  • Klíč se používá pro přístup k katalogu k získání umístění databáze tenanta.

    • Katalog se implementuje pomocí správy mapování horizontálních oddílů.
  • Centrum událostí používá rozšířená metadata v katalogu k vytvoření adres URL stránek seznamu událostí pro každého tenanta.

V produkčním prostředí obvykle vytvoříte záznam DNS CNAME, který bude odkazovat na internetovou doménu společnosti na název DNS Traffic Manageru.

Poznámka:

Nemusí to být okamžitě zřejmé, co je použití traffic manageru v tomto kurzu. Cílem této série kurzů je prezentovat vzory, které dokážou zvládnout škálování komplexního produkčního prostředí. V takovém případě byste například měli více webových aplikací distribuovaných po celém světě společně s databázemi a k směrování mezi těmito instancemi byste potřebovali Traffic Manager. Další sada kurzů, které ilustrují použití Traffic Manageru, jsou sice geografické obnovení a kurzy geografické replikace . V těchto kurzech se Traffic Manager používá k přechodu na instanci obnovení aplikace SaaS v případě regionálního výpadku.

Spuštění generování zatížení databází tenantů

Když je teď aplikace nasazená, pojďme ji dát do práce.

Skript PowerShellu Demo-LoadGenerator spustí úlohu, která se spouští pro všechny databáze tenantů. Reálné zatížení mnoha aplikací SaaS je občasné a nepředvídatelné. Pro simulaci tohoto typu zatížení generátor vytváří zatížení s náhodnými špičkami nebo nárůsty aktivity v každém tenantovi. K nárůstům dochází v náhodných intervalech. Vynořování vzorce zatížení trvá několik minut. Nechte generátor běžet nejméně tři nebo čtyři minuty, než budete monitorovat zatížení.

  1. V prostředí PowerShell ISE otevřete skript ...\Learning Modules\Utilities\Demo-LoadGenerator.ps1 .
  2. Stisknutím klávesy F5 spusťte skript a spusťte generátor zatížení. Prozatím ponechte výchozí hodnoty parametrů.
  3. Přihlaste se ke svému účtu Azure a v případě potřeby vyberte předplatné, které chcete použít.

Skript generátoru zatížení spustí úlohu na pozadí pro každou databázi v katalogu a zastaví se. Pokud znovu spustíte skript generátoru zatížení, zastaví všechny úlohy na pozadí spuštěné před spuštěním nových úloh.

Monitorování úloh na pozadí

Pokud chcete řídit a monitorovat úlohy na pozadí, použijte následující rutiny:

  • Get-Job
  • Receive-Job
  • Stop-Job

Demo-LoadGenerator.ps1 actions

Demo-LoadGenerator.ps1 napodobuje aktivní úlohu zákaznických transakcí. Následující kroky popisují posloupnost akcí, které spouští Demo-LoadGenerator.ps1 :

  1. Demo-LoadGenerator.ps1 spustí LoadGenerator.ps1 v popředí.

    • Oba soubory .ps1 jsou uloženy ve složkách Learning Modules\Utilities\.
  2. LoadGenerator.ps1 prochází všechny databáze tenantů v katalogu.

  3. LoadGenerator.ps1 spustí úlohu PowerShellu na pozadí pro každou databázi tenanta:

    • Ve výchozím nastavení se úlohy na pozadí spouští po dobu 120 minut.
    • Každá úloha způsobí zatížení na základě procesoru v jedné databázi tenanta spuštěním sp_CpuLoadGenerator. Intenzita a doba trvání zatížení se liší v závislosti na $DemoScenario.
    • sp_CpuLoadGenerator smyčky kolem příkazu SQL SELECT, který způsobuje vysoké zatížení procesoru. Časový interval mezi problémy příkazu SELECT se liší podle hodnot parametrů, aby se vytvořilo řídicí zatížení procesoru. Úrovně zatížení a intervaly jsou randomizovány pro simulaci realističtějších zatížení.
    • Tento soubor .sql je uložen v části WingtipTenantDB\dbo\StoredProcedures\.
  4. Pokud $OneTime = $falsegenerátor zatížení spustí úlohy na pozadí a pak se bude dál spouštět. Každých 10 sekund monitoruje všechny nově zřízené tenanty. Pokud nastavíte $OneTime = $true, LoadGenerator spustí úlohy na pozadí a pak přestane běžet v popředí. Pro účely tohoto kurzu ponechte $OneTime = $false.

    Pokud chcete zastavit nebo restartovat generátor zatížení, použijte kombinaci kláves Ctrl-C nebo Zastavit operaci Ctrl-Break.

    Pokud necháte generátor zatížení spuštěný v popředí, použijte jinou instanci prostředí PowerShell ISE ke spuštění jiných skriptů PowerShellu.

 

Než budete pokračovat v další části, ponechte generátor zatížení spuštěný ve stavu vyvolání úlohy.

Zřízení nového tenanta

Počáteční nasazení vytvoří tři ukázkové tenanty. Teď vytvoříte dalšího tenanta, abyste viděli dopad na nasazenou aplikaci. V aplikaci Wingtip je pracovní postup pro zřízení nových tenantů vysvětlený v kurzu zřizování a katalogu. V této fázi vytvoříte nového tenanta, který trvá méně než jednu minutu.

  1. Otevřete novou architekturu integrovaného skriptového prostředí (ISE) PowerShellu.

  2. Otevřete soubor ...\Learning Modules\Provision and Catalog\Demo-ProvisionAndCatalog.ps1.

  3. Skript spustíte stisknutím klávesy F5. Prozatím ponechte výchozí hodnoty.

    Poznámka:

    Mnoho skriptů SaaS Wingtipu používá $PSScriptRoot k procházení složek pro volání funkcí v jiných skriptech. Tato proměnná se vyhodnotí pouze v případě, že se celý skript spustí stisknutím klávesy F5. Zvýraznění a spuštění výběru pomocí klávesy F8 může vést k chybám. Skripty spustíte stisknutím klávesy F5.

Nová databáze tenanta je:

  • Vytvořeno v elastickém fondu SQL
  • Inicializovaný.
  • Zaregistrováno v katalogu.

Po úspěšném zřízení se v prohlížeči zobrazí web Události nového tenanta.

Nový tenant

Aktualizujte centrum událostí, aby se nový tenant zobrazil v seznamu.

Zkoumání serverů, fondů a databází tenantů

Teď, když jste začali spouštět zatížení pro kolekci tenantů, se podíváme na některé prostředky, které byly nasazeny.

  1. Na webu Azure Portal přejděte na seznam sql serverů. Pak otevřete server catalog-dpt-USER><.

    • Server katalogu obsahuje dvě databáze, tenantcatalog a basetenantdb (databáze šablony, která se zkopíruje pro vytvoření nových tenantů).

    Snímek obrazovky se stránkou Přehled serveru katalogu se dvěma databázemi

  2. Vraťte se na seznam SQL serverů.

  3. Otevřete server tenants1-dpt-USER><, který obsahuje databáze tenantů.

  4. Podívejte se na následující položky:

    • Každá databáze tenanta je databáze Elastic Standard ve standardním fondu 50-eDTU.
    • Databáze Red Maple Racing je databáze tenanta, kterou jste zřídili dříve.

    Snímek obrazovky znázorňující čtyři databáze na serveru se zvýrazněnou červenou maple racing database

Monitorování fondu

Po spuštění LoadGenerator.ps1 několik minut by mělo být k dispozici dostatek dat, abyste mohli začít sledovat některé možnosti monitorování. Tyto funkce jsou integrované do fondů a databází.

Přejděte k tenantům serveru1-dpt-user <>a výběrem možnosti Pool1 zobrazte využití prostředků pro fond. V následujících grafech běžel generátor zatížení po dobu jedné hodiny.

Monitorování fondu

  • První graf s popiskem Využití prostředků zobrazuje využití eDTU fondu.
  • Druhý graf ukazuje využití eDTU pěti nejaktivnějších databází ve fondu.

Dva grafy znázorňují, že elastické fondy a SQL Database jsou vhodné pro nepředvídatelné úlohy aplikací SaaS. Grafy ukazují, že se čtyři databáze rozsáhly až na 40 eDTU, a přesto jsou všechny databáze pohodlně podporované fondem 50 eDTU. Fond 50-eDTU může podporovat ještě těžší úlohy. Pokud jsou databáze zřízené jako izolované databáze, musí být každý z nich S2 (50 DTU), aby podporoval nárůsty. Náklady na čtyři izolované databáze S2 jsou téměř třikrát vyšší než cena fondu. V reálných situacích zákazníci sql Database provozují až 500 databází ve fondech eDTU 200. Další informace najdete v kurzu monitorování výkonu.

Další materiály

Další kroky

V tomto kurzu jste se dozvěděli:

  • Postup nasazení aplikace Wingtip Tickets SaaS
  • O serverech, fondech a databázích, které tvoří aplikaci.
  • Jak se tenanti mapují na svá data pomocí katalogu.
  • Jak zřídit nové tenanty
  • Zobrazení využití fondu pro monitorování aktivity tenanta
  • Odstranění ukázkových prostředků za účelem zastavení související fakturace

Dále vyzkoušejte kurz zřizování a katalogu.