Ismerje meg, hogyan építhet ki új bérlőket, és regisztrálhatja őket a katalógusban

A következőre vonatkozik: Azure SQL Database

Ebben az oktatóanyagban megtudhatja, hogyan építhet ki és katalogizálhat SaaS-mintákat. Azt is megtudhatja, hogyan implementálhatók a Wingtip Tickets SaaS-adatbázis bérlőnkénti alkalmazásban. Új bérlői adatbázisokat hozhat létre és inicializálhat, és regisztrálhatja őket az alkalmazás bérlőkatalógusában. A katalógus egy adatbázis, amely fenntartja az SaaS-alkalmazás számos bérlője és adatai közötti leképezést. A katalógus fontos szerepet játszik abban, hogy az alkalmazás- és felügyeleti kérelmeket a megfelelő adatbázishoz irányítsa.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Egyetlen új bérlő kiépítése.
  • További bérlők kötegének kiépítése.

Az oktatóanyag teljesítéséhez a következő előfeltételeknek kell teljesülnie:

Az SaaS-katalógus mintájának bemutatása

Egy adatbázis-alapú több-bérlős SaaS-alkalmazásban fontos tudni, hogy az egyes bérlők adatai hol vannak tárolva. Az SaaS-katalógus mintájában a rendszer egy katalógusadatbázist használ az egyes bérlők és az adatok tárolására szolgáló adatbázis közötti leképezés tárolására. Ez a minta akkor érvényes, ha a bérlői adatok több adatbázis között oszlanak meg.

Minden bérlőt a katalógusban található kulcs azonosít, amely az adatbázis helyéhez van leképezve. A Wingtip Tickets alkalmazásban a kulcs a bérlő nevének kivonatából jön létre. Ez a séma lehetővé teszi, hogy az alkalmazás az alkalmazás URL-címében szereplő bérlőnévből hozza létre a kulcsot. Más bérlőkulcs-sémák is használhatók.

A katalógus lehetővé teszi az adatbázis nevének vagy helyének módosítását minimális hatással az alkalmazásra. A több-bérlős adatbázismodellekben ez a képesség a bérlő adatbázisok közötti áthelyezését is lehetővé teszi. A katalógus arra is használható, hogy jelezze, hogy egy bérlő vagy adatbázis offline állapotban van-e karbantartáshoz vagy egyéb műveletekhez. Ezt a funkciót az önálló bérlői oktatóanyagban ismerheti meg.

A katalógus további bérlői vagy adatbázis-metaadatokat is tárolhat, például a sémaverziót, a szolgáltatáscsomagot vagy a bérlőknek kínált SLA-kat. A katalógus más információkat is tárolhat, amelyek lehetővé teszik az alkalmazáskezelést, az ügyfélszolgálatot vagy a DevOpsot.

Az SaaS-alkalmazáson kívül a katalógus engedélyezheti az adatbázis-eszközöket. A Wingtip Tickets SaaS-adatbázis bérlőnkénti mintájában a katalógus a bérlők közötti lekérdezés engedélyezésére szolgál, amelyet az ad hoc jelentéskészítési oktatóanyagban ismerhet meg. Az adatbázisközi feladatkezelést a sémakezelési és bérlőelemzési oktatóanyagok ismertetik.

A Wingtip Tickets SaaS-mintákban a katalógus az Elastic Database ügyfélkódtár (EDCL) Shard Management funkcióival implementálható. Az EDCL elérhető a Javában és a .NET-keretrendszerben. Az EDCL lehetővé teszi, hogy egy alkalmazás adatbázis-alapú szegmenstérképet hozzon létre, kezeljen és használjon.

A szegmenstérképek a szegmensek (adatbázisok) listáját, valamint a kulcsok (bérlők) és a szegmensek közötti leképezést tartalmazzák. Az EDCL-függvények a bérlői kiépítés során a szegmenstérkép bejegyzéseinek létrehozásához használatosak. Az alkalmazások futásidőben használják őket a megfelelő adatbázishoz való csatlakozáshoz. Az EDCL gyorsítótárazza a kapcsolati adatokat a katalógusadatbázis felé irányuló forgalom minimalizálása és az alkalmazás felgyorsítása érdekében.

Fontos

A leképezési adatok elérhetők a katalógusadatbázisban, de ne szerkesztik. Leképezési adatok szerkesztése csak rugalmas adatbázis ügyféloldali kódtár API-kkal. A leképezési adatok közvetlen módosítása azt kockáztatja, hogy a katalógus megsérül, és nem támogatott.

Az SaaS kiépítési mintájának bemutatása

Amikor új bérlőt ad hozzá egy egybérlős adatbázismodellt használó SaaS-alkalmazáshoz, ki kell építenie egy új bérlői adatbázist. Az adatbázist a megfelelő helyen és szolgáltatási szinten kell létrehozni. Inicializálni kell a megfelelő sémával és referenciaadatokkal is. A katalógusban pedig a megfelelő bérlőkulcs alatt kell regisztrálni.

Az adatbázisok kiépítésének különböző megközelítései használhatók. SQL-szkripteket futtathat, bacpac-fájlokat helyezhet üzembe, vagy sablonadatbázist másolhat.

Az adatbázis-létesítésnek a sémakezelési stratégia részét kell képeznie. Győződjön meg arról, hogy az új adatbázisok a legújabb sémával vannak kiépítve. Ezt a követelményt a sémakezelési oktatóanyag ismerteti.

A Wingtip Tickets-adatbázis-bérlőnkénti alkalmazás kiépíti az új bérlőket egy basetenantdb nevű sablonadatbázis másolásával, amely a katalóguskiszolgálón van üzembe helyezve. A kiépítés egy regisztrációs felület részeként integrálható az alkalmazásba. A szkriptek használatával offline is támogatható. Ez az oktatóanyag a Kiépítést mutatja be a PowerShell használatával.

A kiépítési szkriptek átmásolják a basetenantdb adatbázist egy új bérlői adatbázis rugalmas készletben való létrehozásához. A bérlői adatbázis az új DNS-aliashoz hozzárendelt bérlőkiszolgálón jön létre. Ez az alias hivatkozik az új bérlők kiépítéséhez használt kiszolgálóra, és a vészhelyreállítási oktatóanyagokban egy helyreállítási bérlőkiszolgálóra mutat (DR georestore használatával, DR georeplicációval). A szkriptek ezután inicializálják az adatbázist bérlőspecifikus információkkal, és regisztrálják azt a katalógus szegmenstérképén. A bérlői adatbázisok a bérlő neve alapján kapnak nevet. Ez az elnevezési séma nem kritikus része a mintának. A katalógus leképezi a bérlőkulcsot az adatbázis nevére, így bármilyen elnevezési konvenció használható.

A Wingtip Tickets SaaS-adatbázis bérlőnkénti alkalmazásszkriptjeinek lekérése

A Wingtip Tickets SaaS-szkriptek és az alkalmazás forráskódja a WingtipTicketsSaaS-DbPerTenant GitHub adattárban érhető el. Tekintse meg a Wingtip Tickets SaaS-szkriptek letöltésének és letiltásának feloldásához szükséges általános útmutatót .

Részletes útmutató a kiépítéshez és katalógusba vételhez

Annak megértéséhez, hogy a Wingtip Tickets alkalmazás hogyan valósítja meg az új bérlőkiépítést, adjon hozzá egy töréspontot, és kövesse a munkafolyamatot a bérlő kiépítésekor.

  1. A PowerShell ISE-ben nyissa meg a ...\Learning Modules\ProvisionAndCatalog\Demo-ProvisionAndCatalog.ps1 fájlt, és állítsa be a következő paramétereket:

    • $TenantName = az új helyszín neve (például Bushwillow Blues).
    • $VenueType = az előre meghatározott helyszíntípusok egyike: blues, klasszikus, tánc, jazz, judo, motorverseny, többcélú, opera, rockmusic, foci.
    • 1. = $DemoScenario egyetlen bérlő kiépítése.
  2. Töréspont hozzáadásához helyezze a kurzort a New-Tenant (Új bérlő) feliratú sor tetszőleges pontjára. Ezután nyomja le az F9 billentyűt.

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

  3. A szkript futtatásához nyomja le az F5 billentyűt.

  4. Miután a szkript végrehajtása leállt a töréspontnál, nyomja le az F11 billentyűt a kódba lépéshez.

    Debugging

Kövesse nyomon a szkript végrehajtását a Hibakeresés menü beállításaival. Az F10 és az F11 billentyűkombinációt lenyomva lépkedhet az úgynevezett függvények között. A PowerShell-szkriptek hibakereséséről további információt a PowerShell-szkriptek használatához és hibakereséséhez kapcsolódó tippekben talál.

Nem kell explicit módon követnie ezt a munkafolyamatot. Ez a cikk bemutatja, hogyan lehet hibakeresést végezni a szkriptben.

  • Importálja a CatalogAndDatabaseManagement.psm1 modult. Katalógust és bérlőszintű absztrakciót biztosít a szegmenskezelési függvények felett. Ez a modul a katalógusminta nagy részét foglalja magában, és érdemes megvizsgálni.

  • Importálja az SubscriptionManagement.psm1 modult. Függvényeket tartalmaz az Azure-ba való bejelentkezéshez és a használni kívánt Azure-előfizetés kiválasztásához.

  • Lekéri a konfigurációs részleteket. Lépjen a Get-Configurationba az F11 használatával, és nézze meg, hogyan van megadva az alkalmazáskonfiguráció. Itt definiáljuk az erőforrásneveket és más alkalmazásspecifikus értékeket. Ne módosítsa ezeket az értékeket, amíg nem ismeri a szkripteket.

  • Lekéri a katalógusobjektumot. Lépjen a Get-Catalogba, amely egy katalógusobjektumot állít össze és ad vissza, amelyet a magasabb szintű szkript használ. Ez a függvény az AzureShardManagement.psm1-ből importált Shard Management-függvényeket használja. A katalógusobjektum a következő elemekből áll:

    • $catalogServerFullyQualifiedName a standard szár és a felhasználónév használatával jön létre: catalog-user.database.windows<> .net.
    • $catalogDatabaseName – a tenantcatalog konfigurációból származik.
    • $shardMapManager – ez az objektum a katalógus-adatbázisból van inicializálva.
    • $shardMap – ez az objektum a katalógus-adatbázisban található tenantcatalog szilánkleképezésből van inicializálva. A katalógusobjektumok összeállítása és visszaadása. A magasabb szintű szkriptben használják.
  • Kiszámítja az új bérlőkulcsot. A bérlőkulcsot egy kivonatoló algoritmus hozza létre a bérlő nevéből.

  • Ellenőrzi, hogy a bérlőkulcs létezik-e már. A katalógus be van jelölve, hogy a kulcs elérhető-e.

  • A bérlői adatbázis kiépítése a New-TenantDatabase használatával történik. Az F11 használatával megtudhatja, hogyan építi ki az adatbázist egy Azure Resource Manager-sablonnal.

    Az adatbázis neve a bérlő nevéből jön létre, hogy egyértelmű legyen, melyik szilánk melyik bérlőhöz tartozik. Más adatbázis-elnevezési konvenciók is használhatók. Egy Resource Manager-sablon létrehoz egy bérlői adatbázist egy sablonadatbázis (baseTenantDB) másolásával a katalóguskiszolgálón. Másik lehetőségként létrehozhat egy adatbázist, és inicializálhatja azt egy bacpac importálásával. Vagy egy inicializálási szkriptet egy jól ismert helyről is végrehajthat.

    A Resource Manager-sablon a ...\Learning Modules\Common\ mappában található: tenantdatabasecopytemplate.json

  • A bérlői adatbázis inicializálása tovább történik. A rendszer hozzáadja a helyszín (bérlő) nevét és a helyszín típusát. Itt más inicializálást is végezhet.

  • A bérlői adatbázis regisztrálva van a katalógusban. Az Add-TenantDatabaseToCatalogban regisztrálva van a bérlőkulcs használatával. Nyomja le az F11 billentyűt a részletek megtekintéséhez:

    • A katalógus-adatbázis bekerül a szilánkleképezésbe (az ismert adatbázisok listájába).
    • Létrejön a kulcsérték és a szilánk társítása.
    • A bérlőre (a helyszín nevére) vonatkozó további metaadatok a katalógus Bérlők táblájában lesznek hozzáadva. A Bérlők tábla nem része a Shard Management sémának, és az EDCL nem telepíti. Ez a táblázat bemutatja, hogyan bővíthető a katalógusadatbázis további alkalmazásspecifikus adatok támogatásához.

A kiépítés befejezése után a végrehajtás visszatér az eredeti Demo-ProvisionAndCatalog szkripthez. Megnyílik az Események lap az új bérlő számára a böngészőben.

Events page

Bérlők kötegének kiépítése

Ez a gyakorlat egy 17 bérlőből álló köteget helyez üzembe. Javasoljuk, hogy ezt a bérlői köteget a többi Wingtip Tickets SaaS-adatbázis bérlőnkénti oktatóanyagának megkezdése előtt építse ki. Több adatbázissal is dolgozhat.

  1. A PowerShell ISE-ben nyissa meg a ...\Learning Modules\ProvisionAndCatalog\Demo-ProvisionAndCatalog.ps1 fájlt. Módosítsa a $DemoScenario paramétert 3-ra:

    • = $DemoScenario 3, bérlők kötegének kiépítése.
  2. A szkript futtatásához nyomja le az F5 billentyűt.

A szkript üzembe helyezi a további bérlők kötegét. Egy Azure Resource Manager-sablont használ, amely szabályozza az egyes adatbázisok kötegét, és delegálja az egyes adatbázisok csatolt sablonba történő kiépítését. A sablonok ily módon való alkalmazása lehetővé teszi, hogy az Azure Resource Manager közvetítse a szkriptnek a kiépítési folyamatot. A sablonok párhuzamosan építik ki az adatbázisokat, és szükség esetén kezelik az újrapróbálkozásokat. A szkript idempotens, ezért ha bármilyen okból meghiúsul vagy leáll, futtassa újra.

A sikeresen üzembe helyezett bérlők kötegének ellenőrzése

  • Az Azure Portalon keresse meg a kiszolgálók listáját, és nyissa meg a bérlők1 kiszolgálót. Válassza ki az SQL-adatbázisokat, és ellenőrizze, hogy 17 további adatbázis kötege szerepel-e a listában.

    Database list

Egyéb kiépítési minták

Az oktatóanyagban nem szereplő egyéb kiépítési minták:

Adatbázisok előzetes kiépítése: Az előzetes kiépítési minta kihasználja azt a tényt, hogy a rugalmas készletben lévő adatbázisok nem növelik a többletköltséget. A számlázás a rugalmas készlethez tartozik, nem az adatbázisokhoz. Az inaktív adatbázisok nem használnak erőforrásokat. Ha előre kiépíti az adatbázisokat egy készletben, és szükség esetén kiosztja őket, csökkentheti a bérlők hozzáadásának idejét. Az előre kiépített adatbázisok száma szükség szerint módosítható, hogy a puffer megfelelő legyen a várható kiépítési sebességhez.

Automatikus kiépítés: Az automatikus kiépítési mintában a kiépítési szolgáltatás szükség szerint automatikusan kiosztja a kiszolgálókat, készleteket és adatbázisokat. Ha szeretné, az előkiépítési adatbázisokat is belefoglalhatja a rugalmas készletekbe. Az adatbázisok leszerelése és törlése esetén a rugalmas készletekben lévő réseket a kiépítési szolgáltatás kitöltheti. Az ilyen szolgáltatások lehetnek egyszerűek vagy összetettek, például több földrajzi helyen történő üzembe helyezés kezelése és georeplikálás beállítása vészhelyreállításhoz.

Az automatikus kiépítési mintával egy ügyfélalkalmazás vagy szkript egy kiépítési kérelmet küld egy üzenetsorba, amelyet a kiépítési szolgáltatás feldolgoz. Ezután lekérdezi a szolgáltatást a befejezés meghatározásához. Ha előre kiépítést használ, a kérések kezelése gyorsan megtörténik. A szolgáltatás kiépít egy helyettesítő adatbázist a háttérben.

További lépések

Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:

  • Egyetlen új bérlő kiépítése.
  • További bérlők kötegének kiépítése.
  • Lépjen a bérlők kiépítésének részleteibe, és regisztrálja őket a katalógusba.

Próbálja ki a Teljesítményfigyelési oktatóanyagot.

További erőforrások