Udostępnij przez


Podejścia architektury do wdrażania i konfigurowania rozwiązań wielodostępnych

Niezależnie od architektury i składników używanych do jej implementacji należy wdrożyć i skonfigurować składniki rozwiązania. W środowisku wielodostępnym należy wziąć pod uwagę sposób wdrażania zasobów platformy Azure, szczególnie w przypadku wdrażania dedykowanych zasobów dla każdej dzierżawy lub dynamicznego ponownego konfigurowania zasobów na podstawie liczby dzierżaw w systemie. Ten artykuł zawiera architektów rozwiązań z wskazówkami dotyczącymi wdrażania rozwiązań wielodostępnych. Przedstawia ona podejścia do rozważenia podczas planowania strategii wdrażania.

Kluczowe zagadnienia i wymagania

Jasno zdefiniuj wymagania przed zaplanowanie strategii wdrażania. Rozważmy następujący czynniki:

  • Oczekiwana skala: Ustal, czy oczekujesz obsługi tylko kilku dzierżaw, takich jak pięć lub mniej, lub zwiększ się do dużej liczby dzierżaw. Wraz ze wzrostem liczby dzierżaw automatyzacja staje się coraz ważniejsza.

  • Automatyczne lub obsługiwane dołączanie: Określ, czy dzierżawcy powinni ukończyć dołączanie za pomocą zautomatyzowanej procedury, czy zainicjować żądanie wymagające ręcznego dołączania. Zdefiniuj wszelkie kroki ręcznego zatwierdzania od zespołu, takie jak zapobieganie niewłaściwemu używaniu usługi.

  • Czas aprowizacji: Ustal, jak szybko należy ukończyć proces dołączania. Jeśli nie masz jasnej odpowiedzi, określ, czy ten krok powinien być mierzony w sekundach, minutach, godzinach lub dniach.

  • Azure Marketplace: Upewnij się, że planujesz zainicjować wdrażanie przy użyciu witryny Azure Marketplace. Jeśli to zrobisz, spełnij wymagania niezbędne do dodania nowych dzierżaw.

Należy również rozważyć kroki dołączania i aprowizacji, automatyzacji i zarządzania zasobami.

Kroki dołączania i aprowizacji

Zdefiniuj i udokumentuj każde zadanie wymagane do dołączenia dzierżawy, nawet jeśli proces jest ręczny. Przepływ pracy dołączania zwykle obejmuje następujące kroki:

  1. Zaakceptuj umowy handlowe.
  2. Wykonaj ręczne kroki zatwierdzania, na przykład, aby zapobiec oszustwom lub niewłaściwemu używaniu usługi.
  3. Aprowizuj zasoby na platformie Azure.
  4. Tworzenie lub konfigurowanie nazw domen.
  5. Wykonaj zadania konfiguracji po wdrożeniu, takie jak utworzenie pierwszego konta użytkownika dla dzierżawy i bezpieczne przesyłanie poświadczeń do dzierżawy.
  6. Zastosuj zmiany konfiguracji ręcznej, takie jak zmiany rekordów systemu nazw domen (DNS).

Jasno udokumentować przepływ pracy wymagany do dołączenia nowej dzierżawy.

Rozważ konkretne zasoby platformy Azure, które należy aprowizować dla dzierżawy. Nawet jeśli nie aprowizujesz dedykowanych zasobów dla każdej dzierżawy, zastanów się, czy czasami trzeba wdrażać zasoby podczas dołączania nowej dzierżawy. Ten scenariusz może wystąpić, gdy dzierżawa wymaga przechowywania danych w określonym regionie. Może się to również zdarzyć, gdy używasz podejścia do pakowania pojemnika. W przypadku pakowania pojemnika, gdy zbliżasz się do limitów sygnatury lub składnika w rozwiązaniu, tworzysz kolejne wystąpienie dla następnej partii dzierżaw.

Zastanów się, czy proces dołączania może zakłócić inne dzierżawy, zwłaszcza dzierżawy, które korzystają z tej samej infrastruktury. Jeśli na przykład musisz zmodyfikować udostępnione bazy danych, ustal, czy ten proces może spowodować wpływ na wydajność, który mogą zauważyć inne dzierżawy. Zastanów się, czy można uniknąć tych skutków, czy ograniczyć je, wykonując proces dołączania poza normalnymi godzinami pracy.

Automation

W przypadku rozwiązań hostowanych w chmurze należy używać wdrożeń automatycznych. W przypadku rozwiązań wielodostępnych automatyzacja staje się jeszcze ważniejsza z następujących powodów:

  • Skala: Wraz ze wzrostem populacji dzierżawy procesy wdrażania ręcznego stają się coraz bardziej złożone i czasochłonne. Zautomatyzowane podejście do wdrażania jest łatwiejsze do skalowania w miarę wzrostu liczby dzierżaw.

  • Powtarzalne: W środowisku wielodostępnym użyj spójnego procesu wdrażania we wszystkich dzierżawach. Procesy ręczne powodują prawdopodobieństwo wystąpienia błędu lub niespójnych kroków w dzierżawach. Środowisko może być następnie pozostawione w stanie niespójnym, co utrudnia zespołowi zarządzanie rozwiązaniem.

  • Wpływ awarii: Wdrożenia ręczne są bardziej ryzykowne i podatne na awarie niż wdrożenia automatyczne. W środowisku wielodostępnym błąd wdrożenia może spowodować awarię całego systemu, która wpływa na każdą dzierżawę, co zwiększa ogólny wpływ.

Podczas wdrażania w środowisku wielodostępnym wykonaj następujące rozwiązania:

  • Użyj potoków wdrażania, aby wdrożyć typowe zasoby.

  • Użyj technologii infrastruktury jako kodu (IaC), takich jak szablony Bicep, JSON usługi Azure Resource Manager (szablony usługi ARM) lub Terraform.

  • W razie potrzeby użyj kodu, aby wywołać zestawy SDK platformy Azure.

Jeśli planujesz oferować rozwiązanie za pośrednictwem witryny Azure Marketplace, należy zapewnić w pełni zautomatyzowany proces dołączania dla nowych dzierżaw.

Maksymalna pojemność zasobu

Podczas programowego wdrażania zasobów dzierżawy na zasobach udostępnionych należy wziąć pod uwagę limit pojemności dla każdego zasobu. W przypadku zbliżania się do tego limitu może być konieczne utworzenie innego wystąpienia zasobu w celu obsługi dalszej skali. Należy wziąć pod uwagę limity poszczególnych wdrażanych zasobów oraz warunki wyzwalające wdrożenie innego wystąpienia.

Załóżmy na przykład, że rozwiązanie zawiera serwer logiczny usługi Azure SQL i aprowizuje dedykowaną bazę danych na tym serwerze dla każdej dzierżawy. Pojedynczy serwer logiczny ma limity, które obejmują maksymalną liczbę baz danych, które obsługuje. W miarę zbliżania się do tych limitów może być konieczne aprowizowania nowych serwerów, aby móc nadal dołączać dzierżawy. Zastanów się, czy zautomatyzować ten proces, czy ręcznie monitorować wzrost.

Odpowiedzialność za zarządzanie zasobami

W niektórych rozwiązaniach wielodostępnych wdróż zasoby przy użyciu jednego z kilku modeli. Wdróż dedykowane zasoby platformy Azure dla każdej dzierżawy, takie jak baza danych dla każdej dzierżawy. Możesz też zdefiniować zestaw dzierżaw do domu w jednym wystąpieniu zasobu, aby liczba dzierżaw, które zostały wdrożone na platformie Azure. W innych rozwiązaniach należy wdrożyć pojedynczy zestaw zasobów udostępnionych i ponownie skonfigurować je podczas dołączania nowych dzierżaw.

Każdy z tych modeli wymaga wdrożenia zasobów i zarządzania nimi na różne sposoby. Należy rozważyć sposób wdrażania i zarządzania cyklem życia aprowizowania zasobów. Rozważ dwie typowe podejścia:

  • Traktuj dzierżawy jako konfigurację wdrożonych zasobów i używaj potoków wdrażania do wdrażania i konfigurowania tych zasobów.

  • Traktuj dzierżawy jako dane i mają aprowizację płaszczyzny sterowania i konfigurowanie infrastruktury dla dzierżaw.

W poniższych sekcjach opisano te podejścia.

Testowanie

Dokładnie przetestuj rozwiązanie podczas i po każdym wdrożeniu. Możesz użyć zautomatyzowanego testowania, aby zweryfikować funkcjonalne i niefunkcjonalne zachowanie rozwiązania. Upewnij się, że testujesz model izolacji dzierżawy. Rozważ użycie narzędzi takich jak Azure Chaos Studio , aby celowo wprowadzać błędy, które symulują awarie w świecie rzeczywistym i sprawdzają, czy rozwiązanie działa nawet wtedy, gdy składnik stanie się niedostępny lub awarii.

Podejścia i wzorce do rozważenia

Kilka wzorców projektowych z Centrum architektury platformy Azure i szersza społeczność obsługuje wdrażanie i konfigurację rozwiązań wielodostępnych.

Wzorzec stempli wdrożeniowych

Użyj wzorca sygnatur wdrażania , aby wdrożyć dedykowaną infrastrukturę dla dzierżawy lub grupy dzierżaw. Pojedyncza sygnatura może zawierać wiele dzierżaw lub może być przeznaczona dla jednej dzierżawy. Można wdrożyć pojedynczą sygnaturę lub koordynować wdrożenie na wielu sygnaturach. W przypadku wdrażania dedykowanych sygnatur dla każdej dzierżawy rozważ programowe wdrażanie całych sygnatur.

Pierścienie wdrażania

Użyj pierścieni wdrażania , aby wdrażać aktualizacje w różnych grupach infrastruktury w różnym czasie. Takie podejście często uzupełnia wzorzec sygnatur wdrażania. Przypisz grupy sygnatur do odrębnych pierścieni na podstawie preferencji dzierżawy, typów obciążeń i innych zagadnień. Aby uzyskać więcej informacji, zobacz Pierścienie wdrażania.

Flagi funkcjonalności

Użyj flag funkcji , aby stopniowo uwidocznić nowe funkcje lub wersje rozwiązania dla różnych dzierżaw lub użytkowników bez ponownego wdrażania kodu. Rozważ użycie usługi Azure App Configuration do zarządzania flagami funkcji. Aby uzyskać więcej informacji, zobacz Flagi funkcji.

Czasami należy selektywnie włączyć określone funkcje dla określonych klientów. Na przykład możesz mieć różne warstwy cenowe , które umożliwiają dostęp do określonych możliwości. Flagi funkcji nie są zwykle właściwym wyborem dla tych scenariuszy. Zamiast tego rozważ utworzenie procesu śledzenia i wymuszania uprawnień licencji , które ma każdy klient.

Antywzorce, których należy unikać

Podczas wdrażania i konfigurowania rozwiązań wielodostępnych unikaj sytuacji, które hamują możliwość skalowania. W poniższych przykładach wyróżniono typowe antywzorzecy:

  • Ręczne wdrażanie i testowanie: Ręczne procesy wdrażania dodają ryzyko i spowalniają wdrażanie. Rozważ użycie potoków dla wdrożeń automatycznych, programowe tworzenie zasobów na podstawie kodu rozwiązania lub kombinację obu tych rozwiązań.

  • Wyspecjalizowane dostosowania dla dzierżaw: Unikaj wdrażania funkcji lub konfiguracji, która ma zastosowanie tylko do jednej dzierżawy. Takie podejście zwiększa złożoność wdrożeń i procesów testowania. Zamiast tego użyj tych samych typów zasobów i bazy kodu dla każdej dzierżawy. Używaj strategii, takich jak flagi funkcji , w przypadku tymczasowych zmian lub funkcji, które są wdrażane stopniowo. Możesz też użyć różnych warstw cenowych z uprawnieniami licencji, aby selektywnie włączyć funkcje dla dzierżaw, które ich wymagają. Używaj spójnego i zautomatyzowanego procesu wdrażania, nawet w przypadku dzierżaw, które mają izolowane lub dedykowane zasoby.

Listy dzierżaw jako konfiguracja lub dane

Podczas wdrażania zasobów w rozwiązaniu wielodostępnym należy wziąć pod uwagę następujące podejścia:

  • Użyj zautomatyzowanego potoku wdrażania, aby wdrożyć każdy zasób. Po dodaniu nowych dzierżaw skonfiguruj ponownie potok, aby aprowizować zasoby dla każdej dzierżawy.

  • Użyj potoku wdrażania zautomatyzowanego, aby wdrożyć udostępnione zasoby, które nie zależą od liczby dzierżaw. Utwórz zasoby specyficzne dla dzierżawy w aplikacji.

Jeśli wziąć pod uwagę te dwa podejścia, należy rozróżnić traktowanie listy dzierżaw jako konfiguracji lub jako danych. To rozróżnienie wpływa również na sposób tworzenia płaszczyzny sterowania dla systemu.

Lista dzierżaw jako konfiguracja

W przypadku traktowania listy dzierżaw jako konfiguracji wszystkie zasoby są wdrażane z scentralizowanego potoku wdrażania. Po dołączeniu nowych dzierżaw należy ponownie skonfigurować potok lub jego parametry. Zazwyczaj ponowna konfiguracja odbywa się poprzez ręczne zmiany, jak pokazano na poniższym diagramie.

Diagram przedstawiający proces dołączania dzierżawy, gdy lista dzierżaw jest utrzymywana jako konfiguracja potoku.

Proces dołączania dla nowej dzierżawy zwykle obejmuje następujące kroki:

  1. Zaktualizuj listę dzierżaw ręcznie, konfigurując potok lub modyfikując plik parametrów uwzględniony w konfiguracji potoku.

  2. Wyzwól potok do uruchomienia.

  3. Potok ponownie wdraża kompletny zestaw zasobów platformy Azure, w tym wszelkie nowe zasoby specyficzne dla dzierżawy.

Takie podejście działa dobrze w przypadku niewielkiej liczby dzierżaw i architektur, w których wszystkie zasoby są współużytkowane. Pojedynczy proces wdraża i konfiguruje wszystkie zasoby platformy Azure, co upraszcza ogólne podejście.

Jednak wraz ze wzrostem liczby dzierżaw, często około 10 lub więcej, ponowne skonfigurowanie potoku w miarę dodawania dzierżaw staje się kłopotliwe. Czas potrzebny na uruchomienie potoku wdrażania często wzrasta. Takie podejście nie jest również łatwe do obsługi samoobsługowego tworzenia dzierżawy, a czas realizacji przed dołączeniem dzierżawy może być dłuższy, ponieważ należy wyzwolić potok do uruchomienia.

Lista dzierżaw jako dane

W przypadku traktowania listy dzierżaw jako danych nadal wdrażasz składniki udostępnione przy użyciu potoku. Jednak w przypadku zasobów i ustawień konfiguracji, które należy wdrożyć dla każdej dzierżawy, musisz wdrożyć lub skonfigurować zasoby. Na przykład płaszczyzna sterowania może używać zestawów SDK platformy Azure do utworzenia określonego zasobu lub zainicjować wdrożenie sparametryzowanego szablonu.

Diagram przedstawiający proces dołączania dzierżawy, gdy lista dzierżaw jest przechowywana jako dane.

Proces dołączania zwykle obejmuje następujące kroki asynchroniczne:

  1. Żądanie dołączenia dzierżawy, na przykład inicjowanie żądania interfejsu API do płaszczyzny sterowania systemu.

  2. Składnik przepływu pracy odbiera żądanie utworzenia i organizuje pozostałe kroki.

  3. Przepływ pracy inicjuje wdrażanie zasobów specyficznych dla dzierżawy na platformie Azure. Możesz użyć modelu programowania imperatywnego, takiego jak zestawy SDK platformy Azure, lub w sposób imperatywny wyzwolić wdrożenie pliku Bicep lub szablonu narzędzia Terraform.

  4. Po zakończeniu wdrażania przepływ pracy zapisuje szczegóły nowej dzierżawy w centralnym wykazie dzierżawy. Dane przechowywane dla każdej dzierżawy mogą zawierać identyfikator dzierżawy i identyfikatory zasobów dla wszystkich zasobów specyficznych dla dzierżawy utworzonych przez przepływ pracy.

Takie podejście umożliwia aprowizowanie zasobów dla nowych dzierżaw bez ponownego wdrażania całego rozwiązania. Czas aprowizacji jest zwykle krótszy, ponieważ wdrażane są tylko zasoby specyficzne dla dzierżawy.

Jednak takie podejście jest często znacznie bardziej czasochłonne do skompilowania. Nakład pracy musi być uzasadniony liczbą dzierżaw lub przedziałami czasu aprowizacji, które należy spełnić.

Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące wielodostępnych płaszczyzn sterowania.

Uwaga / Notatka

Wykonywanie operacji wdrażania i konfiguracji platformy Azure często trwa długo. Upewnij się, że używasz odpowiedniego procesu do inicjowania i monitorowania tych długotrwałych operacji. Możesz na przykład rozważyć użycie wzorca asynchronicznego Request-Reply. Używaj technologii zaprojektowanych do obsługi długotrwałych operacji, takich jak azure Logic Apps i trwałe funkcje.

Przykład

Firma Contoso uruchamia wielodostępne rozwiązanie dla swoich klientów. Mają sześć dzierżaw i spodziewają się, że w ciągu najbliższych 18 miesięcy wzrosną do 300 dzierżaw. Firma Contoso jest zgodna z wielodostępną aplikacją z dedykowanymi bazami danych dla każdego podejścia dzierżawy . Wdrażają jeden zestaw zasobów usługi Azure App Service i serwer logiczny usługi Azure SQL współużytkujący wszystkie dzierżawy. Wdrażają również dedykowaną bazę danych Azure SQL Database dla każdej dzierżawy, jak pokazano na poniższym diagramie. Firma Contoso wdraża swoje zasoby platformy Azure przy użyciu platformy Bicep.

Diagram architektury przedstawiający udostępnione zasoby i dedykowane zasoby dla każdej dzierżawy.

Opcja 1. Używanie potoków wdrażania dla wszystkich elementów

Firma Contoso może wdrożyć wszystkie swoje zasoby przy użyciu potoku wdrażania. Potok wdraża plik Bicep zawierający wszystkie zasoby platformy Azure, w tym bazy danych Azure SQL Database dla każdej dzierżawy. Plik parametrów definiuje listę dzierżaw. Plik Bicep używa pętli zasobów do wdrożenia bazy danych dla każdej z wymienionych dzierżaw, jak pokazano na poniższym diagramie.

Diagram przedstawiający potok wdrażający zasoby współużytkowane i specyficzne dla dzierżawy.

Jeśli firma Contoso jest zgodna z tym modelem, musi wykonać następujące czynności:

  1. Zaktualizuj plik parametrów w ramach dołączania nowej dzierżawy.

  2. Uruchom ponownie potok.

  3. Ręczne śledzenie limitów zasobów, takich jak wzrost w nieoczekiwanie wysokim tempie i podejście do maksymalnej liczby baz danych obsługiwanych na jednym serwerze logicznym Usługi Azure SQL.

Opcja 2. Użycie kombinacji potoków wdrażania i tworzenia zasobów imperatywnych

Alternatywnie firma Contoso może oddzielić odpowiedzialność za wdrożenia platformy Azure.

Firma Contoso używa pliku Bicep definiującego zasoby udostępnione do wdrożenia. Udostępnione zasoby obsługują wszystkie dzierżawy i zawierają bazę danych wykazu dzierżaw, znaną również jako baza danych listy dzierżaw, jak pokazano na poniższym diagramie.

Diagram przedstawiający przepływ pracy umożliwiający wdrożenie udostępnionych zasobów przy użyciu potoku.

Zespół firmy Contoso tworzy płaszczyznę sterowania obejmującą interfejs API dołączania dzierżawy. Gdy ich zespół sprzedaży zakończy sprzedaż dla nowego klienta, usługa Microsoft Dynamics wyzwoli interfejs API, aby rozpocząć proces dołączania. Firma Contoso udostępnia również samoobsługowy interfejs internetowy, którego klienci używają do wyzwalania tego samego interfejsu API.

Asynchronicznie interfejs API uruchamia przepływ pracy, który dołącza nowe dzierżawy. Przepływ pracy inicjuje wdrożenie nowej bazy danych Azure SQL Database, która może używać jednej z następujących metod:

  • Użyj zestawu Azure SDK, aby zainicjować wdrożenie drugiego pliku Bicep definiującego bazę danych Azure SQL Database.

  • Użyj zestawu Azure SDK, aby w sposób imperatywny utworzyć bazę danych Azure SQL Database przy użyciu biblioteki zarządzania.

Po wdrożeniu bazy danych przepływ pracy dodaje dzierżawę do bazy danych listy dzierżaw, jak pokazano na poniższym diagramie. Warstwa aplikacji inicjuje bieżące aktualizacje schematu bazy danych.

Diagram przedstawiający przepływ pracy do wdrożenia bazy danych dla nowej dzierżawy.

Współautorzy

Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.

Główny autor:

  • John Downs | Główny inżynier oprogramowania, wzorce i praktyki platformy Azure

Inni współautorzy:

  • Bohdan Cherchyk | Starszy inżynier ds. klientów, FastTrack dla Azure
  • Arsen Vladimirskiy | Główny inżynier ds. klientów, FastTrack dla Azure

Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.