Wielodostępność i usługa Azure Storage
Azure Storage to podstawowa usługa używana w prawie każdym rozwiązaniu. Rozwiązania wielodostępne często używają usługi Azure Storage na potrzeby magazynu obiektów blob, plików, kolejek i tabel. Na tej stronie opisano niektóre funkcje usługi Azure Storage, które są przydatne w przypadku rozwiązań wielodostępnych, a następnie udostępniamy linki do wskazówek, które mogą Ci pomóc, podczas planowania sposobu korzystania z usługi Azure Storage.
Funkcje usługi Azure Storage, które obsługują wielodostępność
Usługa Azure Storage zawiera wiele funkcji, które obsługują wielodostępność.
Sygnatury dostępu współdzielonego
Podczas pracy z usługą Azure Storage z poziomu aplikacji klienckiej należy rozważyć, czy żądania klientów powinny być wysyłane za pośrednictwem innego składnika, który kontrolujesz, na przykład sieć dostarczania zawartości lub interfejs API, czy też klient powinien połączyć się bezpośrednio z kontem magazynu. Mogą istnieć dobre powody wysyłania żądań za pośrednictwem innego składnika, w tym buforowania danych na brzegu sieci. Jednak w niektórych sytuacjach korzystne jest połączenie punktów końcowych klienta bezpośrednio z usługą Azure Storage w celu pobrania lub przekazania danych. To połączenie pomaga zwiększyć wydajność rozwiązania, zwłaszcza w przypadku pracy z dużymi obiektami blob lub dużą liczbą plików. Zmniejsza również obciążenie aplikacji zaplecza i serwerów oraz zmniejsza liczbę przeskoków sieciowych. Sygnatura dostępu współdzielonego (SAS) umożliwia bezpieczne udostępnianie aplikacji klienckich dostępu do obiektów w usłudze Azure Storage.
Sygnatury dostępu współdzielonego mogą służyć do ograniczania zakresu operacji, które może wykonywać klient, oraz obiektów, względem których mogą wykonywać operacje. Jeśli na przykład masz konto magazynu współużytkowanego dla wszystkich dzierżaw i przechowujesz wszystkie dane dzierżawy A w kontenerze obiektów blob o nazwie tenanta
, możesz utworzyć sygnaturę dostępu współdzielonego, która zezwala tylko dzierżawie A użytkownikom na dostęp do tego kontenera. Aby uzyskać więcej informacji, zobacz Modele izolacji, aby zapoznać się z metodami, których można użyć do izolowania danych dzierżawy na koncie magazynu.
Wzorzec klucza valet jest przydatny jako sposób wystawiania ograniczonych i ograniczonych sygnatur dostępu współdzielonego z warstwy aplikacji. Załóżmy na przykład, że masz aplikację wielodostępną, która umożliwia użytkownikom przekazywanie filmów wideo. Interfejs API lub warstwa aplikacji może uwierzytelniać klienta przy użyciu własnego systemu uwierzytelniania. Następnie można podać sygnaturę dostępu współdzielonego do klienta, która umożliwia im przekazanie pliku wideo do określonego obiektu blob, do określonego kontenera i ścieżki obiektu blob. Następnie klient przekazuje plik bezpośrednio do konta magazynu, unikając dodatkowej przepustowości i obciążenia interfejsu API. Jeśli spróbują odczytać dane z kontenera obiektów blob lub spróbują zapisać dane w innej części kontenera do innego kontenera na koncie magazynu, usługa Azure Storage blokuje żądanie. Podpis wygasa po konfigurowalnym okresie.
Zasady dostępu przechowywanego rozszerzają funkcjonalność sygnatur dostępu współdzielonego, co umożliwia zdefiniowanie pojedynczych zasad, które mogą być używane podczas wystawiania wielu sygnatur dostępu współdzielonego.
Kontrola dostępu oparta na tożsamościach
Usługa Azure Storage zapewnia również kontrolę dostępu opartą na tożsamościach przy użyciu identyfikatora Entra firmy Microsoft. Ta funkcja umożliwia również korzystanie z kontroli dostępu opartej na atrybutach, która zapewnia bardziej szczegółowy dostęp do ścieżek obiektów blob lub obiektów blob, które zostały oznaczone określonym identyfikatorem dzierżawy.
Zarządzanie cyklem życia
W przypadku korzystania z magazynu obiektów blob w rozwiązaniu wielodostępnym dzierżawcy mogą wymagać różnych zasad przechowywania danych. Podczas przechowywania dużych ilości danych można również skonfigurować dane dla określonej dzierżawy, aby automatycznie zostały przeniesione do warstw magazynowania chłodnego lub archiwum na potrzeby optymalizacji kosztów.
Rozważ użycie zasad zarządzania cyklem życia, aby ustawić cykl życia obiektu blob dla wszystkich dzierżaw lub dla podzbioru dzierżaw. Zasady zarządzania cyklem życia można zastosować do kontenerów obiektów blob lub do podzbioru obiektów blob w kontenerze. Istnieją jednak ograniczenia dotyczące liczby reguł, które można określić w zasadach zarządzania cyklem życia. Upewnij się, że planujesz i przetestujesz korzystanie z tej funkcji w środowisku wielodostępnym, i rozważ wdrożenie wielu kont magazynu, jeśli przekroczysz limity.
Niezmienny magazyn
Podczas konfigurowania niezmiennego magazynu obiektów blob na kontenerach magazynu przy użyciu zasad przechowywania na podstawie czasu usługa Azure Storage uniemożliwia usunięcie lub zmodyfikowanie danych przed upływem określonego czasu. Zapobieganie jest wymuszane w warstwie konta magazynu i dotyczy wszystkich użytkowników. Nawet administratorzy organizacji nie mogą usuwać niezmiennych danych.
Niezmienny magazyn może być przydatny podczas pracy z dzierżawami, które mają wymagania prawne lub zgodności w celu przechowywania danych lub rekordów. Należy jednak rozważyć sposób użycia tej funkcji w kontekście cyklu życia dzierżawy. Jeśli na przykład dzierżawy są odłączone i żądają usunięcia ich danych, możesz nie być w stanie spełnić swoich żądań. Jeśli używasz magazynu niezmiennego dla danych dzierżawców, rozważ sposób rozwiązania tego problemu w zakresie usług.
Kopia po stronie serwera
W systemie wielodostępnym czasami konieczne jest przeniesienie danych z jednego konta magazynu do innego. Jeśli na przykład przeniesiesz dzierżawę między sygnaturami wdrożenia lub ponownie zrównoważysz podzielony na fragmenty zestaw kont magazynu, musisz skopiować lub przenieść dane określonej dzierżawy. Podczas pracy z dużymi ilościami danych zaleca się użycie interfejsów API kopiowania po stronie serwera w celu skrócenia czasu migracji danych.
Narzędzie AzCopy to aplikacja, którą można uruchomić z własnego komputera lub z maszyny wirtualnej w celu zarządzania procesem kopiowania. Narzędzie AzCopy jest zgodne z funkcją kopiowania po stronie serwera i udostępnia skryptowy interfejs wiersza polecenia, który można uruchomić z własnych rozwiązań. Narzędzie AzCopy jest również przydatne do przekazywania i pobierania dużych ilości danych.
Jeśli musisz użyć interfejsów API kopiowania po stronie serwera bezpośrednio z kodu, rozważ użycie interfejsu API Put Block From URL, Put Page From URL API, Append Block From URL API (Umieść stronę z adresu URL), Append Block From URL API (Dołączanie blokuj z adresu URL) i Copy Blob From URL API (Kopiowanie obiektu blob z adresu URL) podczas pracy z mniejszymi obiektami blob.
Replikacja obiektów
Funkcja replikacji obiektów automatycznie replikuje dane między źródłowym i docelowym kontem magazynu. Replikacja obiektów jest asynchroniczna. W rozwiązaniu wielodostępnym ta funkcja może być przydatna, gdy trzeba stale replikować dane między sygnaturami wdrożenia lub w implementacji wzorca Geode.
Szyfrowanie
Usługa Azure Storage umożliwia udostępnianie kluczy szyfrowania dla danych. W rozwiązaniu wielodostępnym rozważ połączenie tej funkcji z zakresami szyfrowania, które umożliwiają definiowanie różnych kluczy szyfrowania dla różnych dzierżaw, nawet jeśli ich dane są przechowywane na tym samym koncie magazynu. Dzięki tym funkcjom możesz również zapewnić dzierżawcom kontrolę nad własnymi danymi. Jeśli konieczne jest dezaktywowanie konta, usunięcie klucza szyfrowania gwarantuje, że ich dane nie będą już dostępne.
Monitorowanie
Podczas pracy z rozwiązaniem wielodostępnym zastanów się, czy musisz zmierzyć zużycie dla każdej dzierżawy i zdefiniować konkretne metryki, które należy śledzić, takie jak ilość miejsca do magazynowania używanego dla każdej dzierżawy (pojemności) lub liczba operacji wykonywanych dla danych każdej dzierżawy. Możesz również użyć alokacji kosztów, aby śledzić koszty użycia każdej dzierżawy i włączyć obciążenie zwrotne w wielu subskrypcjach.
Usługa Azure Storage oferuje wbudowane funkcje monitorowania. Ważne jest, aby wziąć pod uwagę usługi, których będziesz używać na koncie usługi Azure Storage. Na przykład podczas pracy z obiektami blob możliwe jest wyświetlenie całkowitej pojemności konta magazynu, ale nie jednego kontenera. Natomiast podczas pracy z udziałami plików można zobaczyć pojemność dla każdego udziału, ale nie dla każdego folderu.
Możesz również rejestrować wszystkie żądania wysyłane do usługi Azure Storage, a następnie agregować i analizować te dzienniki. Takie podejście zapewnia większą elastyczność w sposobie agregowania i grupowania danych dla każdej dzierżawy. Jednak w rozwiązaniach, które tworzą duże ilości żądań do usługi Azure Storage, należy rozważyć, czy korzyści wynikające z tego podejścia uzasadniają koszt związany z przechwytywaniem i przetwarzaniem tych dzienników.
Spis usługi Azure Storage zapewnia inną metodę mierzenia całkowitego rozmiaru kontenera obiektów blob.
Modele izolacji
Podczas pracy z systemem wielodostępnym przy użyciu usługi Azure Storage należy podjąć decyzję o poziomie izolacji, którego chcesz użyć. Usługa Azure Storage obsługuje kilka modeli izolacji.
Konta magazynu na dzierżawę
Najsilniejszym poziomem izolacji jest wdrożenie dedykowanego konta magazynu dla dzierżawy. Dzięki temu wszystkie klucze magazynu są odizolowane i mogą być obracane niezależnie. Takie podejście umożliwia skalowanie rozwiązania w celu uniknięcia limitów i przydziałów, które mają zastosowanie do każdego konta magazynu, ale należy również wziąć pod uwagę maksymalną liczbę kont magazynu, które można wdrożyć w jednej subskrypcji platformy Azure.
Uwaga
Usługa Azure Storage ma wiele przydziałów i limitów, które należy wziąć pod uwagę podczas wybierania modelu izolacji. Obejmują one limity usług platformy Azure, cele skalowalności i cele skalowalności dla dostawcy zasobów usługi Azure Storage.
Ponadto każdy składnik usługi Azure Storage udostępnia dodatkowe opcje izolacji dzierżawy.
Modele izolacji magazynu obiektów blob
W poniższej tabeli przedstawiono podsumowanie różnic między głównymi modelami izolacji dzierżawy dla obiektów blob usługi Azure Storage:
Kwestie wymagające rozważenia | Udostępnione kontenery obiektów blob | Kontenery obiektów blob na dzierżawę | Konta magazynu na dzierżawę |
---|---|---|---|
Izolacja danych | Niski średni. Używanie ścieżek do identyfikowania danych każdej dzierżawy lub hierarchicznych przestrzeni nazw | Średnia. Używanie adresów URL sygnatur dostępu współdzielonego o zakresie kontenera do obsługi izolacji zabezpieczeń | Wys. |
Izolacja wydajności | Niski | Niski. Większość przydziałów i limitów ma zastosowanie do całego konta magazynu | Wys. |
Złożoność wdrożenia | Niski | Śred. | Wys. |
Złożoność operacyjna | Niski | Śred. | Wys. |
Przykładowy scenariusz | Przechowywanie niewielkiej liczby obiektów blob na dzierżawę | Wystawianie adresów URL sygnatur dostępu współdzielonego w zakresie dzierżawy | Oddzielne sygnatury wdrożenia dla każdej dzierżawy |
Udostępnione kontenery obiektów blob
Podczas pracy z magazynem obiektów blob możesz użyć udostępnionego kontenera obiektów blob, a następnie użyć ścieżek obiektów blob do oddzielenia danych dla każdej dzierżawy:
Identyfikator dzierżawy | Przykładowa ścieżka obiektu blob |
---|---|
tenant-a |
https://contoso.blob.core.windows.net/sharedcontainer/tenant-a/blob1.mp4 |
tenant-b |
https://contoso.blob.core.windows.net/sharedcontainer/tenant-b/blob2.mp4 |
Chociaż takie podejście jest proste do zaimplementowania, w wielu scenariuszach ścieżki obiektów blob nie zapewniają wystarczającej izolacji między dzierżawami. Dzieje się tak, ponieważ usługa Blob Storage nie zapewnia pojęcia katalogów ani folderów. Oznacza to, że nie można przypisać dostępu do wszystkich obiektów blob w określonej ścieżce. Jednak usługa Azure Storage zapewnia możliwość wyświetlania listy (wyliczania) obiektów blob rozpoczynających się od określonego prefiksu, co może być przydatne podczas pracy z udostępnionymi kontenerami obiektów blob i nie wymaga kontroli dostępu na poziomie katalogu.
Funkcja hierarchicznej przestrzeni nazw usługi Azure Storage zapewnia możliwość silniejszego pojęcia katalogu lub folderu, w tym kontroli dostępu specyficznej dla katalogu. Może to być przydatne w niektórych scenariuszach obejmujących wiele dzierżaw, w których udostępniono kontenery obiektów blob, ale chcesz udzielić dostępu do danych pojedynczej dzierżawy.
W niektórych rozwiązaniach wielodostępnych może być konieczne przechowywanie tylko jednego obiektu blob lub zestawu obiektów blob dla każdej dzierżawy, takich jak ikony dzierżawy na potrzeby dostosowywania interfejsu użytkownika. W tych scenariuszach może wystarczyć pojedynczy udostępniony kontener obiektów blob. Możesz użyć identyfikatora dzierżawy jako nazwy obiektu blob, a następnie odczytać określony obiekt blob zamiast wyliczać ścieżkę obiektu blob.
Podczas pracy z udostępnionymi kontenerami zastanów się, czy chcesz śledzić dane i użycie usługi Azure Storage dla każdej dzierżawy, i zaplanować takie podejście. Aby uzyskać więcej informacji, zobacz Monitorowanie .
Kontenery obiektów blob na dzierżawę
Poszczególne kontenery obiektów blob można tworzyć dla każdej dzierżawy na jednym koncie magazynu. Nie ma limitu liczby kontenerów obiektów blob, które można utworzyć na koncie magazynu.
Tworząc kontenery dla każdej dzierżawy, możesz użyć kontroli dostępu do usługi Azure Storage, w tym sygnatury dostępu współdzielonego, aby zarządzać dostępem dla danych każdej dzierżawy. Można również łatwo monitorować pojemność, której używa każdy kontener.
Modele izolacji magazynu plików
W poniższej tabeli przedstawiono podsumowanie różnic między głównymi modelami izolacji dzierżawy dla plików usługi Azure Storage:
Kwestie wymagające rozważenia | Udostępnione udziały plików | Udziały plików na dzierżawę | Konta magazynu na dzierżawę |
---|---|---|---|
Izolacja danych | Średnio wysoki. Stosowanie reguł autoryzacji dla plików i katalogów specyficznych dla dzierżawy | Średnio-wysoki | Wys. |
Izolacja wydajności | Niski | Niski średni. Większość przydziałów i limitów dotyczy całego konta magazynu, ale ustawia limity przydziału rozmiaru na poziomie poszczególnych udziałów | Wys. |
Złożoność wdrożenia | Niski | Śred. | Wys. |
Złożoność operacyjna | Niski | Śred. | Wys. |
Przykładowy scenariusz | Aplikacja kontroluje cały dostęp do plików | Dzierżawcy uzyskują dostęp do własnych plików | Oddzielne sygnatury wdrożenia dla każdej dzierżawy |
Udostępnione udziały plików
Podczas pracy z udziałami plików można wybrać użycie udostępnionego udziału plików, a następnie użyć ścieżek plików do oddzielenia danych dla każdej dzierżawy:
Identyfikator dzierżawy | Przykładowa ścieżka pliku |
---|---|
tenant-a |
https://contoso.file.core.windows.net/share/tenant-a/blob1.mp4 |
tenant-b |
https://contoso.file.core.windows.net/share/tenant-b/blob2.mp4 |
W przypadku korzystania z aplikacji, która może komunikować się przy użyciu protokołu bloku komunikatów serwera (SMB), a w przypadku korzystania z usług domena usługi Active Directory lokalnie lub na platformie Azure udziały plików obsługują autoryzację zarówno na poziomie udziału, jak i katalogu/pliku.
W innych scenariuszach rozważ użycie sygnatury dostępu współdzielonego w celu udzielenia dostępu do określonych udziałów plików lub plików. W przypadku korzystania z sygnatury dostępu współdzielonego nie można udzielić dostępu do katalogów.
Podczas pracy z udostępnionymi udziałami plików zastanów się, czy chcesz śledzić dane i użycie usługi Azure Storage dla każdej dzierżawy, a następnie zaplanować podejście do tego (w razie potrzeby). Aby uzyskać więcej informacji, zobacz Monitorowanie .
Udziały plików na dzierżawę
Poszczególne udziały plików można utworzyć dla każdej dzierżawy w ramach jednego konta magazynu. Nie ma limitu liczby udziałów plików, które można utworzyć na koncie magazynu.
Tworząc udziały plików dla każdej dzierżawy, możesz użyć kontroli dostępu do usługi Azure Storage, w tym sygnatury dostępu współdzielonego, aby zarządzać dostępem dla danych każdej dzierżawy. Można również łatwo monitorować pojemność, której używa każdy udział plików.
Modele izolacji magazynu tabel
W poniższej tabeli przedstawiono podsumowanie różnic między głównymi modelami izolacji dzierżawy dla tabel usługi Azure Storage:
Kwestie wymagające rozważenia | Udostępnione tabele z kluczami partycji na dzierżawę | Tabele na dzierżawę | Konta magazynu na dzierżawę |
---|---|---|---|
Izolacja danych | Niski. Aplikacja wymusza izolację | Niski średni | Wys. |
Izolacja wydajności | Niski | Niski. Większość przydziałów i limitów ma zastosowanie do całego konta magazynu | Wys. |
Złożoność wdrożenia | Niski | Śred. | Wys. |
Złożoność operacyjna | Niski | Śred. | Wys. |
Przykładowy scenariusz | Duże rozwiązanie wielodostępne z udostępnioną warstwą aplikacji | Wystawianie adresów URL sygnatur dostępu współdzielonego w zakresie dzierżawy | Oddzielne sygnatury wdrożenia dla każdej dzierżawy |
Udostępnione tabele z kluczami partycji na dzierżawę
W przypadku korzystania z magazynu tabel z jedną udostępnioną tabelą można rozważyć użycie wbudowanej obsługi partycjonowania. Każda jednostka musi zawierać klucz partycji. Identyfikator dzierżawy jest często dobrym wyborem dla klucza partycji.
Sygnatury dostępu współdzielonego i zasady umożliwiają określenie zakresu kluczy partycji, a usługa Azure Storage zapewnia, że żądania zawierające podpis mogą uzyskiwać dostęp tylko do określonych zakresów kluczy partycji. Dzięki temu można zaimplementować wzorzec klucza valet, który umożliwia niezaufanym klientom dostęp do partycji pojedynczej dzierżawy bez wpływu na inne dzierżawy.
W przypadku aplikacji o dużej skali należy wziąć pod uwagę maksymalną przepływność każdej partycji tabeli i konta magazynu.
Tabele na dzierżawę
Poszczególne tabele dla każdej dzierżawy można utworzyć w ramach jednego konta magazynu. Nie ma limitu liczby tabel, które można utworzyć na koncie magazynu.
Tworząc tabele dla każdej dzierżawy, możesz użyć kontroli dostępu do usługi Azure Storage, w tym sygnatury dostępu współdzielonego, aby zarządzać dostępem dla danych każdej dzierżawy.
Modele izolacji magazynu kolejek
W poniższej tabeli przedstawiono podsumowanie różnic między głównymi modelami izolacji dzierżawy dla kolejek usługi Azure Storage:
Kwestie wymagające rozważenia | Kolejki udostępnione | Kolejki na dzierżawę | Konta magazynu na dzierżawę |
---|---|---|---|
Izolacja danych | Niski | Niski średni | Wys. |
Izolacja wydajności | Niski | Niski. Większość przydziałów i limitów ma zastosowanie do całego konta magazynu | Wys. |
Złożoność wdrożenia | Niski | Śred. | Wys. |
Złożoność operacyjna | Niski | Śred. | Wys. |
Przykładowy scenariusz | Duże rozwiązanie wielodostępne z udostępnioną warstwą aplikacji | Wystawianie adresów URL sygnatur dostępu współdzielonego w zakresie dzierżawy | Oddzielne sygnatury wdrożenia dla każdej dzierżawy |
Kolejki udostępnione
Jeśli zdecydujesz się udostępnić kolejkę, rozważ limity przydziału i limity, które mają zastosowanie. W rozwiązaniach z dużą ilością żądań należy rozważyć, czy docelowa przepływność 2000 komunikatów na sekundę jest wystarczająca.
Kolejki nie zapewniają partycjonowania ani podzapytania, więc dane dla wszystkich dzierżaw mogą być połączone.
Kolejki na dzierżawę
Można utworzyć poszczególne kolejki dla każdej dzierżawy w ramach jednego konta magazynu. Nie ma limitu liczby kolejek, które można utworzyć na koncie magazynu.
Tworząc kolejki dla każdej dzierżawy, możesz użyć kontroli dostępu usługi Azure Storage, w tym sygnatury dostępu współdzielonego, aby zarządzać dostępem dla danych każdej dzierżawy.
Podczas dynamicznego tworzenia kolejek dla każdej dzierżawy należy wziąć pod uwagę sposób, w jaki warstwa aplikacji będzie używać komunikatów z kolejki każdej dzierżawy. W przypadku bardziej zaawansowanych scenariuszy rozważ użycie usługi Azure Service Bus, która obsługuje funkcje, takie jak tematy i subskrypcje, sesje i automatyczne przekazywanie komunikatów, które mogą być przydatne w rozwiązaniu wielodostępnym.
Współautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główny autor:
- John Downs | Główny inżynier oprogramowania
Inni współautorzy:
- Dr Christian Geuer-Pollmann | Główny inżynier klienta, fasttrack dla platformy Azure
- Patrick Horn | Starszy menedżer ds. inżynierii klienta, rozwiązanie FastTrack dla platformy Azure
- Ben Hummerstone | Główny inżynier klienta, fasttrack dla platformy Azure
- Arsen Vladimirskiy | Główny inżynier klienta, fasttrack dla platformy Azure
- Vic Perdana | Architekt rozwiązań w chmurze, niezależnego dostawcy oprogramowania platformy Azure
Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
Przejrzyj metody magazynowania i danych pod kątem wielodostępności.