Dowiedz się, jak aprowizować nowe dzierżawy i rejestrować je w wykazie

Dotyczy:Azure SQL Database

Z tego samouczka dowiesz się, jak aprowizować i katalogować wzorce SaaS. Dowiesz się również, jak są one implementowane w aplikacji Wingtip Tickets SaaS database-per-tenant. Tworzysz i inicjujesz nowe bazy danych dzierżaw i rejestrujesz je w katalogu dzierżaw aplikacji. Wykaz to baza danych, która utrzymuje mapowanie między wieloma dzierżawami aplikacji SaaS i ich danymi. Wykaz odgrywa ważną rolę w kierowaniu żądań aplikacji i zarządzania do właściwej bazy danych.

Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Aprowizuj jedną nową dzierżawę.
  • Aprowizuj partię dodatkowych dzierżaw.

Do wykonania kroków tego samouczka niezbędne jest spełnienie następujących wymagań wstępnych:

Wprowadzenie do wzorca wykazu SaaS

W wielodostępnej aplikacji SaaS opartej na bazie danych ważne jest, aby wiedzieć, gdzie są przechowywane informacje dla każdej dzierżawy. We wzorcu wykazu SaaS baza danych wykazu jest używana do przechowywania mapowania między każdą dzierżawą a bazą danych, w której są przechowywane ich dane. Ten wzorzec ma zastosowanie za każdym razem, gdy dane dzierżawy są dystrybuowane między wieloma bazami danych.

Każda dzierżawa jest identyfikowana przez klucz w wykazie, który jest mapowany na lokalizację bazy danych. W aplikacji Wingtip Tickets klucz jest tworzony na podstawie skrótu nazwy dzierżawy. Ten schemat umożliwia aplikacji konstruowanie klucza z nazwy dzierżawy uwzględnionej w adresie URL aplikacji. Można użyć innych schematów kluczy dzierżawy.

Katalog umożliwia zmianę nazwy lub lokalizacji bazy danych przy minimalnym wpływie na aplikację. W modelu wielodostępnej bazy danych ta funkcja umożliwia również przenoszenie dzierżawy między bazami danych. Wykaz może również służyć do wskazania, czy dzierżawa lub baza danych jest w trybie offline na potrzeby konserwacji, czy innych akcji. Ta funkcja jest eksplorowana w samouczku Przywracanie pojedynczej dzierżawy.

Wykaz może również przechowywać dodatkowe metadane dzierżawy lub bazy danych, takie jak wersja schematu, plan usługi lub umowy SLA oferowane dzierżawcom. Wykaz może przechowywać inne informacje, które umożliwiają zarządzanie aplikacjami, obsługę klienta lub metodyę DevOps.

Poza aplikacją SaaS wykaz może włączyć narzędzia bazy danych. W przykładzie Wingtip Tickets SaaS database-per-tenant katalog jest używany do włączania zapytań między dzierżawami, które jest eksplorowane w samouczku raportowania ad hoc. Zarządzanie zadaniami między bazami danych jest eksplorowane w samouczkach zarządzania schematami i analizy dzierżaw.

W przykładach Wingtip Tickets SaaS wykaz jest implementowany przy użyciu funkcji zarządzania fragmentami biblioteki klienta elastic database (EDCL). Lista EDCL jest dostępna w języku Java i programie .NET Framework. Lista EDCL umożliwia aplikacji tworzenie, zarządzanie i używanie mapy fragmentów opartej na bazie danych.

Mapa fragmentów zawiera listę fragmentów (baz danych) i mapowanie między kluczami (dzierżawami) i fragmentami. Funkcje EDCL są używane podczas aprowizacji dzierżawy w celu utworzenia wpisów na mapie fragmentów. Są one używane w czasie wykonywania przez aplikacje w celu nawiązania połączenia z poprawną bazą danych. Lista EDCL buforuje informacje o połączeniu, aby zminimalizować ruch do bazy danych katalogu i przyspieszyć działanie aplikacji.

Ważne

Dane mapowania są dostępne w bazie danych wykazu, ale nie są edytowane. Edytowanie danych mapowania przy użyciu tylko interfejsów API biblioteki klienta elastycznej bazy danych. Bezpośrednie manipulowanie danymi mapowania powoduje uszkodzenie wykazu i nie jest obsługiwane.

Wprowadzenie do wzorca aprowizacji SaaS

Po dodaniu nowej dzierżawy w aplikacji SaaS korzystającej z modelu bazy danych z jedną dzierżawą należy aprowizować nową bazę danych dzierżawy. Baza danych musi zostać utworzona w odpowiedniej lokalizacji i warstwie usługi. Należy go również zainicjować przy użyciu odpowiednich danych schematu i odwołań. Należy go zarejestrować w wykazie w ramach odpowiedniego klucza dzierżawy.

Można użyć różnych metod aprowizacji baz danych. Możesz wykonywać skrypty SQL, wdrażać plik bacpac lub kopiować bazę danych szablonu.

Aprowizacja bazy danych musi być częścią strategii zarządzania schematem. Należy upewnić się, że nowe bazy danych są aprowidowane przy użyciu najnowszego schematu. To wymaganie jest eksplorowane w samouczku dotyczącym zarządzania schematami.

Aplikacja Wingtip Tickets dla poszczególnych dzierżaw aprowizowania nowych dzierżaw przez skopiowanie bazy danych szablonu o nazwie basetenantdb, która jest wdrożona na serwerze wykazu. Aprowizowanie można zintegrować z aplikacją w ramach środowiska rejestracji. Można go również obsługiwać w trybie offline za pomocą skryptów. W tym samouczku omówiono aprowizowanie przy użyciu programu PowerShell.

Skrypty aprowizacji kopiują bazę danych basetenantdb , aby utworzyć nową bazę danych dzierżawy w elastycznej puli. Baza danych dzierżawy jest tworzona na serwerze dzierżawy zamapowanym na nowy alias DNS. Ten alias utrzymuje odwołanie do serwera używanego do aprowizacji nowych dzierżaw i jest aktualizowany w celu wskazania serwera dzierżawy odzyskiwania w samouczkach odzyskiwania po awarii (odzyskiwanie po awarii przy użyciu magazynu geograficznego, odzyskiwanie po awarii przy użyciu georeplikacji przy użyciu georeplikacji). Następnie skrypty inicjują bazę danych przy użyciu informacji specyficznych dla dzierżawy i rejestrują ją na mapie fragmentów wykazu. Bazy danych dzierżawy otrzymują nazwy na podstawie nazwy dzierżawy. Ten schemat nazewnictwa nie jest krytyczną częścią wzorca. Katalog mapuje klucz dzierżawy na nazwę bazy danych, więc można użyć dowolnej konwencji nazewnictwa.

Pobieranie skryptów aplikacji Wingtip Tickets SaaS dla poszczególnych dzierżaw

Skrypty SaaS i kod źródłowy aplikacji Wingtip Tickets są dostępne w repozytorium GitHub WingtipTicketsSaaS-DbPerTenant . Zapoznaj się z ogólnymi wskazówkami dotyczącymi kroków pobierania i odblokowywania skryptów SaaS Wingtip Tickets.

Szczegółowy przewodnik po aprowizacji i wykazie

Aby dowiedzieć się, jak aplikacja Wingtip Tickets implementuje nową aprowizację dzierżawy, dodaj punkt przerwania i postępuj zgodnie z przepływem pracy podczas aprowizowania dzierżawy.

  1. W programie PowerShell ISE otwórz plik ...\Learning Modules\ProvisionAndCatalog\Demo-ProvisionAndCatalog.ps1 i ustaw następujące parametry:

    • $TenantName = nazwa nowego miejsca (na przykład Bushwillow Blues).
    • $VenueType = jeden ze wstępnie zdefiniowanych typów miejsc: blues, classicmusic, dance, jazz, judo, motor racing, multipurpose, opera, rockmusic, soccer.
    • = $DemoScenario 1 aprowizuj jedną dzierżawę.
  2. Aby dodać punkt przerwania, umieść kursor w dowolnym miejscu w wierszu z napisem New-Tenant '. Następnie naciśnij klawisz F9.

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

  3. Aby uruchomić skrypt, naciśnij klawisz F5.

  4. Po zatrzymaniu wykonywania skryptu w punkcie przerwania naciśnij klawisz F11, aby przejść do kodu.

    Debugging

Śledzenie wykonywania skryptu przy użyciu opcji menu Debugowanie . Naciśnij klawisz F10 i F11, aby przejść do wywoływanych funkcji lub przejść do tych funkcji. Aby uzyskać więcej informacji na temat debugowania skryptów programu PowerShell, zobacz Porady dotyczące pracy ze skryptami programu PowerShell i debugowania ich.

Nie musisz jawnie obserwować tego przepływu pracy. Wyjaśniono w nim, jak debugować skrypt.

  • Zaimportuj moduł CatalogAndDatabaseManagement.psm1. Zapewnia ona abstrakcję na poziomie dzierżawy i wykaz funkcji zarządzania fragmentami . Ten moduł hermetyzuje znaczną część wzorca wykazu i warto go eksplorować.

  • Zaimportuj moduł SubscriptionManagement.psm1. Zawiera ona funkcje logowania do platformy Azure i wybierania subskrypcji platformy Azure, z którą chcesz pracować.

  • Uzyskaj szczegółowe informacje o konfiguracji. Przejdź do sekcji Get-Configuration przy użyciu klawisza F11 i zobacz, jak określono konfigurację aplikacji. Nazwy zasobów i inne wartości specyficzne dla aplikacji są zdefiniowane tutaj. Nie zmieniaj tych wartości, dopóki nie znasz skryptów.

  • Pobierz obiekt wykazu. Przejdź do pliku Get-Catalog, który komponuje i zwraca obiekt wykazu używany w skryfcie wyższego poziomu. Ta funkcja używa funkcji Shard Management importowanych z usługi AzureShardManagement.psm1. Obiekt wykazu składa się z następujących elementów:

    • $catalogServerFullyQualifiedName jest konstruowany przy użyciu standardowego elementu macierzystego oraz nazwy użytkownika: catalog-user.database.windows<> .net.
    • Obiekt $catalogDatabaseName jest pobierany z konfiguracji: tenantcatalog.
    • Obiekt $shardMapManager jest inicjowany z bazy danych wykazu.
    • Obiekt $shardMap jest inicjowany z mapy fragmentów tenantcatalog w bazie danych wykazu. Obiekt wykazu jest komponowany i zwracany. Jest on używany w skrygcie wyższego poziomu.
  • Oblicz nowy klucz dzierżawy. Funkcja skrótu służy do tworzenia klucza dzierżawy na podstawie nazwy dzierżawy.

  • Sprawdź, czy klucz dzierżawy już istnieje. Wykaz jest sprawdzany, aby upewnić się, że klucz jest dostępny.

  • Aprowizacja bazy danych jest wykonywana przy użyciu obiektu New-TenantDatabase. Użyj klawisza F11, aby dowiedzieć się, jak baza danych jest aprowizowana przy użyciu szablonu usługi Azure Resource Manager.

    Nazwa bazy danych jest tworzona na podstawie nazwy dzierżawy, aby było jasne, który fragment należy do której dzierżawy. Można również użyć innych konwencji nazewnictwa baz danych. Szablon usługi Resource Manager tworzy bazę danych dzierżawy, kopiując bazę danych szablonu (baseTenantDB) na serwerze wykazu. Alternatywnie możesz utworzyć bazę danych i zainicjować ją, importując plik bacpac. Możesz też wykonać skrypt inicjowania z dobrze znanej lokalizacji.

    Szablon usługi Resource Manager znajduje się w folderze ...\Learning Modules\Common\: tenantdatabasecopytemplate.json

  • Baza danych dzierżawy jest dalej inicjowana. Dodawana jest nazwa miejsca (dzierżawa) i typ miejsca. Możesz również wykonać inicjację tutaj.

  • Baza danych dzierżawy jest zarejestrowana w wykazie. Jest on zarejestrowany w poleceniu Add-TenantDatabaseToCatalog przy użyciu klucza dzierżawy. Użyj klawisza F11, aby wejść do funkcji:

    • Baza danych wykazu jest dodawana do mapy fragmentów (listy znanych baz danych).
    • Tworzone jest mapowanie łączące wartość klucza z fragmentem.
    • Dodatkowe metadane dotyczące dzierżawy (nazwy miejsca) są dodawane do tabeli Dzierżawy w wykazie. Tabela Dzierżawy nie jest częścią schematu zarządzania fragmentami i nie jest zainstalowana przez listę EDCL. W tej tabeli pokazano, jak można rozszerzyć bazę danych wykazu w celu obsługi dodatkowych danych specyficznych dla aplikacji.

Po zakończeniu aprowizacji wykonanie powraca do oryginalnego skryptu Demo-ProvisionAndCatalog . Zostanie otwarta strona Zdarzenia dla nowej dzierżawy w przeglądarce.

Events page

Aprowizuj partię dzierżaw

To ćwiczenie aprowizuje partię 17 dzierżaw. Zalecamy aprowizowanie tej partii dzierżaw przed rozpoczęciem innych samouczków dotyczących bazy danych SaaS biletów Wingtip Na dzierżawę. Istnieje więcej niż tylko kilka baz danych, z których można pracować.

  1. W programie PowerShell ISE otwórz plik ...\Learning Modules\ProvisionAndCatalog\Demo-ProvisionAndCatalog.ps1. Zmień parametr $DemoScenario na 3:

    • = $DemoScenario 3. Aprowizuj partię dzierżaw.
  2. Aby uruchomić skrypt, naciśnij klawisz F5.

Skrypt wdroży partię dodatkowych dzierżaw. Używa szablonu usługi Azure Resource Manager, który kontroluje partię i deleguje aprowizowanie każdej bazy danych do połączonego szablonu. Ten sposób użycia szablonów umożliwia aplikacji Azure Resource Manager pełnienie roli brokera w procesie aprowizacji przy użyciu skryptu. W razie potrzeby szablony aprowizować bazy danych i obsługiwać ponawianie prób. Skrypt jest idempotentny, więc jeśli ulegnie awarii lub zatrzyma się z jakiegokolwiek powodu, uruchom go ponownie.

Weryfikowanie partii dzierżaw, które zostały pomyślnie wdrożone

  • W witrynie Azure Portal przejdź do listy serwerów i otwórz serwer tenants1 . Wybierz pozycję Bazy danych SQL i sprawdź, czy na liście znajduje się partia 17 dodatkowych baz danych.

    Database list

Inne wzorce aprowizacji

Inne wzorce aprowizacji nieuwzględniane w tym samouczku:

Wstępne aprowizowanie baz danych: wzorzec wstępnej aprowizacji wykorzystuje fakt, że bazy danych w elastycznej puli nie dodają dodatkowych kosztów. Rozliczenia dotyczy elastycznej puli, a nie baz danych. Bezczynne bazy danych nie zużywają żadnych zasobów. Wstępne aprowizowanie baz danych w puli i przydzielanie ich w razie potrzeby pozwala skrócić czas dodawania dzierżaw. Liczbę wstępnie zaaprowizowanych baz danych można dostosować zgodnie z potrzebami, aby zachować bufor odpowiedni dla przewidywanego współczynnika aprowizacji.

Automatyczne aprowizowanie: w przypadku wzorca automatycznej aprowizacji usługa aprowizacji automatycznie aprowizuje serwery, pule i bazy danych zgodnie z potrzebami. Jeśli chcesz, możesz uwzględnić wstępnie aprowizowanie baz danych w elastycznych pulach. Jeśli bazy danych zostaną zlikwidowane i usunięte, luki w elastycznych pulach mogą być wypełniane przez usługę aprowizacji. Taka usługa może być prosta lub złożona, na przykład obsługa aprowizacji w wielu lokalizacjach geograficznych i konfigurowanie replikacji geograficznej na potrzeby odzyskiwania po awarii.

W przypadku wzorca automatycznej aprowizacji aplikacja kliencka lub skrypt przesyła żądanie aprowizacji do kolejki do przetworzenia przez usługę aprowizacji. Następnie sonduje usługę w celu określenia ukończenia. Jeśli jest używana wstępna aprowizacja, żądania są obsługiwane szybko. Usługa aprowizuje zastępczą bazę danych w tle.

Następne kroki

W tym samouczku zawarto informacje na temat wykonywania następujących czynności:

  • Aprowizuj jedną nową dzierżawę.
  • Aprowizuj partię dodatkowych dzierżaw.
  • Szczegółowe informacje na temat aprowizacji dzierżaw i rejestrowania ich w wykazie.

Wypróbuj samouczek dotyczący monitorowania wydajności.

Dodatkowe zasoby