Udostępnij przez


Konfiguracja wielodostępności i aplikacja systemu Azure

Usługa Azure App Configuration ułatwia przechowywanie ustawień konfiguracji aplikacji. Korzystając z usługi App Configuration, można łatwiej zaimplementować wzorzec zewnętrznego magazynu konfiguracji. W tym artykule opisano niektóre funkcje usługi App Configuration, które są przydatne podczas pracy z systemami wielodostępnymi. Podane linki prowadzą do wskazówek i przykładów dotyczących korzystania z usługi App Configuration w rozwiązaniu wielodostępnym.

Modele izolacji

Magazyn odwołuje się do pojedynczego wystąpienia usługi App Configuration.

W rozwiązaniu wielodostępnym często istnieją dwa typy ustawień:

  • Ustawienia udostępnione: stosowane do wielu dzierżaw, takich jak ustawienia globalne lub ustawienia, które mają zastosowanie do wszystkich dzierżaw w znaczniku wdrożenia. Często najlepiej przechowywać ustawienia globalne w udostępnionym magazynie usługi App Configuration. Stosując to podejście, można zminimalizować liczbę miejsc, które należy zaktualizować, gdy wartość ustawienia ulegnie zmianie. Takie podejście minimalizuje również ryzyko, że ustawienia nie zostaną zsynchronizowane.

  • Ustawienia specyficzne dla najemcy: Podaj nazwę bazy danych każdego najemcy lub wewnętrzne identyfikatory. Możesz użyć tych ustawień, aby określić różne poziomy logów dla każdego najemcy. Możesz na przykład zdiagnozować problem zgłoszony przez określonego najemcę i zebrać dzienniki diagnostyczne wyłącznie z tego najemcy. Możesz wybrać, czy chcesz połączyć ustawienia specyficzne dla wielu dzierżaw w jedno repozytorium, czy wdrożyć repozytorium dla każdej dzierżawy. Na podstawie Twoich wymagań należy podjąć decyzję. Jeśli rozwiązanie korzysta z jednej współużytkowanej warstwy aplikacji dla wielu dzierżaw, korzyści z wykorzystania sklepów specyficznych dla dzierżawy prawdopodobnie będą minimalne. Jednak w przypadku wdrażania wystąpień aplikacji specyficznych dla dzierżawy możesz wybrać zastosowanie tego samego podejścia, wdrażając zasoby konfiguracji specyficzne dla dzierżawy.

W poniższej tabeli przedstawiono podsumowanie różnic między głównymi modelami izolacji dzierżawy dla usługi App Configuration.

Kwestie wymagające rozważenia Współdzielony sklep Przechowywanie na dzierżawę
Izolacja danych Niski. Użyj prefiksów kluczy lub etykiet do identyfikacji danych każdego najemcy. Wysoki
Izolacja wydajności Niski Wysoki
Złożoność wdrożenia Niski Średnio-wysoki
Złożoność operacyjna Niski Średnio-wysoki
Koszt zasobu Niski Średnio-wysoki
Przykładowy scenariusz Duże rozwiązanie wielodostępne z współdzieloną warstwą aplikacyjną Najemcy w warstwie Premium z w pełni izolowanymi wdrożeniami

Magazyny dzielone

Możesz wdrożyć udostępniony magazyn konfiguracji aplikacji dla całego rozwiązania lub jeden dla każdej jednostki. Następnie możesz użyć tego samego sklepu dla ustawień wszystkich najemców. Aby je odróżnić, użyj prefiksów kluczy lub etykiet .

Jeśli musisz przechowywać dużą ilość danych na jedno dzierżawienie lub skalować do dużej liczby dzierżaw, istnieje ryzyko przekroczenia limitów zasobów dla pojedynczego sklepu. W tym scenariuszu należy rozważyć możliwość udostępniania swoich klientów w ramach udostępnionych zasobów, aby zminimalizować koszty wdrażania i zarządzania.

Jeśli zastosujesz to podejście, upewnij się, że rozumiesz limity przydziału zasobów i limity , które mają zastosowanie. W szczególności należy pamiętać o całkowitym limicie magazynu dla używanej warstwy usługi i upewnić się, że nie przekraczasz maksymalnych żądań na godzinę.

Przechowywanie na dzierżawę

Zamiast tego możesz zdecydować się na wdrożenie sklepu App Configuration dla każdego najemcy. Warstwa Standardowa usługi App Configuration ułatwia wdrażanie nieograniczonej liczby sklepów w ramach subskrypcji. Jednak takie podejście jest często bardziej złożone do zarządzania, ponieważ należy wdrożyć i skonfigurować więcej zasobów.

Rozważ magazyny specyficzne dla dzierżawy, jeśli masz jedną z następujących sytuacji:

  • Musisz użyć kluczy zarządzanych przez klienta (CMK), które są oddzielne dla każdego lokatora.
  • Najemcy wymagają, aby ich dane konfiguracji były odizolowane od danych innych najemców. Uprawnienia dostępu do usługi App Configuration są kontrolowane na poziomie magazynu, dlatego wdrażając oddzielne magazyny, można skonfigurować oddzielne uprawnienia dostępu.

Funkcje usługi App Configuration, które obsługują wielodostępność

W przypadku korzystania z usługi App Configuration w aplikacji wielodostępnej istnieje kilka funkcji, których można użyć do przechowywania i pobierania ustawień specyficznych dla najemcy.

Prefiksy kluczy

W usłudze App Configuration pracujesz z parami klucz-wartość, które reprezentują ustawienia aplikacji. Klucz reprezentuje nazwę ustawienia konfiguracji. Dla kluczy można użyć hierarchicznej struktury nazewnictwa. W rozwiązaniu wielodostępnym rozważ użycie identyfikatora dzierżawy jako prefiksu kluczy.

Załóżmy na przykład, że musisz przechowywać ustawienie wskazujące poziom rejestrowania dla twojej aplikacji. W rozwiązaniu z jedną dzierżawą możesz nazwać to ustawienie LogLevel. W rozwiązaniu wielodostępnym możesz użyć hierarchicznej nazwy klucza, takiej jak tenant1/LogLevel dla najemcy 1 i tenant2/LogLevel dla najemcy 2.

W hierarchii można określić długie nazwy kluczy i wiele poziomów. Jeśli zdecydujesz się używać długich nazw kluczy, upewnij się, że rozumiesz limity rozmiaru kluczy i wartości.

Podczas ładowania konfiguracji pojedynczego najemcy do aplikacji, można określić filtr prefiksu klucza, aby załadować tylko klucze tego najemcy. Możesz również skonfigurować bibliotekę dostawcy dla usługi App Configuration, aby przyciąć prefiks klucza z kluczy, zanim udostępni je aplikacji. Po przycięciu prefiksu klucza aplikacja rozpoznaje spójną nazwę klucza, a wartości danego najemcy są ładowane do aplikacji.

Etykiety

Usługa App Configuration obsługuje również etykiety. Za pomocą etykiet można zdefiniować oddzielne wartości, które używają tego samego klucza.

Etykiety ułatwiają przechowywanie wersji, pracę z wieloma środowiskami wdrażania lub w innych celach w rozwiązaniu. Mimo że można używać identyfikatorów dzierżaw jako etykiet, nie można używać etykiet dla żadnych innych celów. W przypadku rozwiązań wielodostępnych zazwyczaj dobrym pomysłem jest użycie prefiksów kluczy do zarządzania ustawieniami dotyczącymi najemców oraz używanie etykiet do innych celów.

Jeśli zdecydujesz się używać etykiet dla każdej dzierżawy, aplikacja może załadować tylko ustawienia dla określonej dzierżawy przy użyciu filtru etykiet. Takie podejście jest przydatne, jeśli masz oddzielne wdrożenia aplikacji dla każdego najemcy.

Buforowanie po stronie aplikacji

Podczas pracy z usługą App Configuration ważne jest buforowanie ustawień w aplikacji zamiast ładowania ich za każdym razem, gdy są używane. Biblioteki dostawcy usługi App Configuration automatycznie przechowują ustawienia w pamięci podręcznej i odświeżają je.

Należy również zdecydować, czy aplikacja ładuje ustawienia dla jednego najemcy, czy dla wszystkich najemców.

W miarę jak rośnie baza najemców, czas i ilość pamięci wymagane do załadowania ustawień dla wszystkich najemców prawdopodobnie wzrosną. Dlatego w większości sytuacji dobrym rozwiązaniem jest ładowanie ustawień dla każdego najemcy oddzielnie, gdy są potrzebne przez aplikację.

W przypadku ładowania ustawień konfiguracji każdego najemcy oddzielnie, aplikacja musi zapisywać w pamięci podręcznej każdy zestaw ustawień w sposób oddzielny od pozostałych. W aplikacjach platformy .NET można użyć pamięci podręcznej w pamięci, aby przechowywać obiekt najemcy w pamięci podręcznej, a następnie użyć identyfikatora najemcy IConfiguration jako klucza pamięci podręcznej. Korzystając z pamięci podręcznej w pamięci, nie trzeba ponownie ładować konfiguracji dla każdego żądania, ale pamięć podręczna może usunąć nieużywane wystąpienia, jeśli aplikacja jest pod presją pamięci. Można również skonfigurować czas wygaśnięcia dla ustawień konfiguracyjnych każdego najemcy.

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:

  • Arsen Vladimirskiy | Główny inżynier klienta, fasttrack dla platformy Azure
  • Zhenlan Wang | Główny menedżer inżynierii oprogramowania, konfiguracja aplikacji

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

Następny krok