Víceklientské a Azure Storage
Azure Storage je základní služba používaná v téměř každém řešení. víceklientské řešení často používají Azure Storage pro úložiště objektů blob, souborů, front a tabulek. na této stránce popisujeme některé funkce Azure Storage, které jsou užitečné pro víceklientské řešení, a pak poskytujeme odkazy na doprovodné materiály, které vám pomůžou při plánování způsobu použití Azure Storage.
funkce Azure Storage s podporou víceklientské architektury
Azure Storage obsahuje mnoho funkcí, které podporují víceklientské architektury.
Sdílené přístupové podpisy
když pracujete s Azure Storage z klientské aplikace, je důležité zvážit, zda mají být požadavky klientů odesílány prostřednictvím jiné komponenty, kterou ovládáte, jako je například síť pro doručování obsahu nebo rozhraní API, nebo pokud se má klient připojit přímo k vašemu účtu úložiště. K odeslání žádostí prostřednictvím jiné součásti můžou existovat vhodné důvody, včetně ukládání dat do mezipaměti na hranici sítě. v některých situacích se ale pro koncové body klienta připojovat přímo k Azure Storage ke stažení nebo nahrání dat. Toto připojení pomáhá vylepšit výkon vašeho řešení, zejména při práci s velkými objekty blob nebo velkým počtem souborů. Zároveň snižuje zatížení back-end aplikací a serverů a snižuje počet segmentů směrování sítě. Sdílený přístupový podpis (SAS) umožňuje zabezpečeně poskytovat klientské aplikace s přístupem k objektům v Azure Storage.
Sdílené přístupové podpisy se dají použít k omezení rozsahu operací, které může klient provádět, a objektů, se kterými můžou provádět operace. Pokud máte například účet sdíleného úložiště pro všechny klienty a ukládáte všechna data tenanta do kontejneru objektů BLOB s názvem tenanta , můžete vytvořit SAS, která umožňuje pouze uživatelům tenanta přístup k tomuto kontejneru. Další informace najdete v tématu věnovaném modelům izolace k prozkoumání přístupů, které můžete použít k izolaci dat klientů v účtu úložiště.
Vzor klíče osobního je vhodný jako způsob, jak vydávat omezené a vymezené sdílené přístupové podpisy z vaší aplikační vrstvy. Předpokládejme například, že máte víceklientské aplikace, která umožňuje uživatelům nahrávat videa. Vaše rozhraní API nebo aplikační vrstva může ověřit klienta pomocí vlastního ověřovacího systému. Pak můžete klientovi poskytnout SAS, který jim umožní nahrát videosoubor do zadaného objektu blob do kontejneru a cesty k objektu blob, který zadáte. Klient pak soubor nahraje přímo do účtu úložiště a tím se vyhne větší šířce pásma a zatížení vašeho rozhraní API. pokud se pokusí načíst data z kontejneru objektů blob, nebo pokud se pokusí zapisovat data do jiné části kontejneru do jiného kontejneru v účtu úložiště, Azure Storage požadavek zablokovat. Platnost podpisu vyprší po konfigurovatelném časovém období.
Zásady uloženého přístupu rozšíří funkce SAS, což vám umožní definovat jednu zásadu, která se dá použít při vydávání několika sdílených přístupových podpisů.
Řízení přístupu na základě identity
Azure Storage taky poskytuje řízení přístupu na základě identity pomocí Azure Active Directory (Azure AD). Tato funkce také umožňuje používat řízení přístupu na základě atributů, které poskytuje jemnější přístup k cestám objektů BLOB nebo k objektům blob, které byly označeny konkrétním ID tenanta.
Správa životního cyklu
Pokud používáte úložiště BLOB ve víceklientském řešení, můžou klienti vyžadovat různé zásady uchovávání dat. Když ukládáte velké objemy dat, můžete taky chtít nakonfigurovat data pro konkrétního klienta tak, aby se pro účely optimalizace nákladů automaticky přesunula do studené nebo archivní úrovně úložiště.
Zvažte použití zásad správy životního cyklu k nastavení životního cyklu objektu BLOB pro všechny klienty nebo pro podmnožinu tenantů. Zásady správy životního cyklu se dají použít na kontejnery objektů BLOB nebo na podmnožinu objektů BLOB v rámci kontejneru. Existují však omezení počtu pravidel, která můžete zadat v zásadách správy životního cyklu. Ujistěte se, že plánujete a otestujete použití této funkce ve víceklientském prostředí, a zvažte nasazení více účtů úložiště, pokud překročíte limity.
Neměnné úložiště
když nakonfigurujete neměnné úložiště objektů blob v kontejnerech úložiště se zásadami uchovávání informací na základě času, Azure Storage zabrání odstranění nebo změně dat před určenou časem. Prevence se vynutila v rámci vrstvy účtu úložiště a platí pro všechny uživatele. Dokonce i správci vaší organizace nemůžou odstranit neproměnlivá data.
Neměnné úložiště může být užitečné při práci s klienty, kteří mají zákonné požadavky nebo požadavky na dodržování předpisů při údržbě dat nebo záznamů. Měli byste ale zvážit, jak se tato funkce používá v kontextu životního cyklu tenanta. Například pokud jsou klienti offboarded a požadují odstranění svých dat, možná nebudete schopni plnit své žádosti. Pokud pro data tenantů použijete neměnné úložiště, zvažte, jak tento problém vyřešit ve vašich podmínek služby.
Kopírování na straně serveru
Ve víceklientském systému je někdy potřeba přesunout data z jednoho účtu úložiště do druhého. Například pokud přesunete klienta mezi razítky nasazení nebo si horizontálně dělené sadu účtů úložiště, budete muset zkopírovat nebo přesunout data konkrétního tenanta. Při práci s velkými objemy dat je vhodné použít rozhraní API pro kopírování na straně serveru ke snížení času potřebného k migraci dat.
Nástroj AzCopy je aplikace, kterou můžete spustit z vlastního počítače nebo z virtuálního počítače, abyste mohli spravovat proces kopírování. AzCopy je kompatibilní s funkcí kopírování na straně serveru a poskytuje skriptované rozhraní příkazového řádku, které můžete spustit z vašich vlastních řešení. AzCopy je také užitečné pro nahrávání a stahování velkých objemů dat.
Pokud potřebujete použít rozhraní API pro kopírování na straně serveru přímo z vašeho kódu, zvažte použití bloku Put z rozhraní API URL, Vložení stránky z rozhraní API URL, připojovacího bloku z rozhraní API URL a kopie objektu BLOB z adresy URL při práci s menšími objekty blob.
Replikace objektů
Funkce replikace objektů automaticky replikuje data mezi zdrojovým a cílovým účtem úložiště. Replikace objektu je asynchronní. Ve víceklientském řešení může být tato funkce užitečná v případě, že potřebujete průběžně replikovat data mezi razítky nasazení nebo v implementaci Geode vzoru.
Šifrování
Azure Storage vám umožní poskytovat šifrovací klíče pro vaše data. Ve víceklientském řešení zvažte kombinaci této funkce s obory šifrování, což vám umožní definovat různé šifrovací klíče pro různé klienty, a to i v případě, že jsou data uložená ve stejném účtu úložiště. Pomocí těchto funkcí můžete také klientům poskytnout kontrolu nad svými vlastními daty. Pokud potřebují deaktivovat svůj účet, můžou odstranit šifrovací klíč a jejich data už nebudou dostupná.
Monitorování
Při práci s víceklientské řešení zvažte, zda potřebujete změřit spotřebu pro každého tenanta, a definovat konkrétní metriky, které je třeba použít pro jednotlivé klienty (kapacitu), nebo počet operací provedených pro data každého klienta.
Azure Storage poskytuje integrované možnosti monitorování. je důležité zvážit služby, které budete používat v rámci Azure Storage účtu. Například při práci s objekty blobje možné zobrazit celkovou kapacitu účtu úložiště, ale ne jeden kontejner. Naproti tomu když pracujete se sdílenými složkami, je možné zobrazit kapacitu pro každou sdílenou složku, ale ne pro jednotlivé složky.
můžete také protokolovat všechny požadavky vytvořené na Azure Storagea potom je můžete agregovat a analyzovat. To poskytuje větší flexibilitu v tom, jak agregovat a seskupovat data pro každého tenanta. v řešeních, která vytvářejí vysoké objemy požadavků na Azure Storage, je ale důležité vzít v úvahu, jestli výhoda, kterou jste získali z tohoto přístupu, odůvodňuje náklady na zachytávání a zpracování těchto protokolů.
Azure Storage inventory poskytuje další postup pro měření celkové velikosti kontejneru objektů blob.
Modely izolace
při práci s víceklientském systémem, který používá Azure Storage, je nutné učinit rozhodnutí o úrovni izolace, kterou chcete použít. Azure Storage podporuje několik modelů izolace.
účty Storage na tenanta
Nejvyšší úroveň izolace je nasazení vyhrazeného účtu úložiště pro tenanta. Tím se zajistí, že všechny klíče úložiště jsou izolované a dají se střídat nezávisle. Tento přístup vám umožní škálovat vaše řešení, aby nedocházelo k omezením a kvótám, které platí pro jednotlivé účty úložiště, ale musíte také zvážit maximální počet účtů úložiště, které se dají nasadit do jednoho předplatného Azure.
Poznámka
Azure Storage má mnoho kvót a omezení, které byste měli zvážit při výběru modelu izolace. mezi ně patří omezení služeb Azure, cíle škálovatelnostia cíle škálovatelnosti pro poskytovatele prostředků Azure Storage.
každá součást Azure Storage navíc poskytuje další možnosti pro izolaci klientů.
Modely izolace úložiště objektů BLOB
Sdílené kontejnery objektů BLOB
Při práci s úložištěm objektů BLOB se můžete rozhodnout použít sdílený kontejner objektů BLOB a pak můžete použít cesty objektů BLOB k oddělení dat pro každého tenanta:
| ID tenanta | Příklad cesty objektu 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 |
I když je tento přístup jednoduše implementován, v mnoha scénářích neposkytují cesty objektů BLOB dostatečnou izolaci napříč klienty. Je to proto, že úložiště objektů BLOB obvykle neposkytuje koncept adresářů nebo složek. To znamená, že nemůžete přiřadit přístup ke všem objektům blob v zadané cestě. Azure Storage však poskytuje možnost zobrazit seznam objektů blob, které začínají zadanou předponou, což může být užitečné při práci se sdílenými kontejnery objektů blob a nevyžadují řízení přístupu na úrovni adresáře.
funkce hierarchického oboru názvů Azure Storage nabízí silnější koncept adresáře nebo složky, včetně řízení přístupu pro konkrétní adresář. To může být užitečné v některých scénářích s více klienty, u kterých máte sdílené kontejnery objektů blob, ale chcete udělit přístup k datům jednoho tenanta.
V některých řešeních s více klienty můžete pro každého tenanta Uložit jenom jeden objekt BLOB nebo sadu objektů blob, jako jsou třeba ikony tenanta pro přizpůsobení uživatelského rozhraní. V těchto scénářích může stačit jeden sdílený kontejner objektů BLOB. Jako název objektu blob můžete použít identifikátor tenanta a pak načíst konkrétní objekt blob, místo aby se vytvořil výčet cesty objektu BLOB.
když pracujete se sdílenými kontejnery, zvažte, zda potřebujete sledovat data a Azure Storage využití služeb pro každého tenanta, a naplánujte přístup. Další informace najdete v tématu monitorování .
Kontejnery objektů blob na tenanta
Jednotlivé kontejnery objektů blob můžete pro každého tenanta vytvořit v rámci jednoho účtu úložiště. Počet kontejnerů objektů blob, které můžete vytvořit, není nijak omezený v rámci účtu úložiště.
vytvořením kontejnerů pro každého tenanta můžete pomocí Azure Storage řízení přístupu, včetně SAS, spravovat přístup pro data jednotlivých klientů. Můžete také snadno sledovat kapacitu, kterou každý kontejner používá.
Modely izolace úložiště souborů
Sdílené složky sdílených souborů
Při práci se sdílenými složkami se můžete rozhodnout použít sdílenou sdílenou složku a potom použít cesty k souborům k oddělení dat pro každého tenanta:
| ID tenanta | Příklad cesty k souboru |
|---|---|
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 |
Když použijete aplikaci, která může komunikovat pomocí protokolu SMB (Server Message Block), a když používáte Active Directory Domain Services v místním prostředí nebo v Azure, sdílené složky umožňují autorizaci na úrovni sdílené složky i adresáře nebo souboru.
V jiných scénářích zvažte použití SAS pro udělení přístupu ke konkrétním sdíleným složkám souborů nebo souborům. Pokud používáte SAS, nemůžete udělit přístup k adresářům.
když pracujete se sdílenými sdílenými složkami, zvažte, jestli je potřeba sledovat data a Azure Storage využití služeb pro každého tenanta, a pak podle potřeby naplánovat přístup. Další informace najdete v tématu monitorování .
Sdílené složky na tenanta
Jednotlivé sdílené složky můžete pro každého tenanta vytvořit v rámci jednoho účtu úložiště. Počet sdílených složek, které můžete vytvořit v rámci účtu úložiště, není nijak omezený.
vytvořením sdílených složek pro každého tenanta můžete použít Azure Storage řízení přístupu, včetně SAS, ke správě přístupu pro data každého klienta. Můžete také snadno sledovat kapacitu, kterou jednotlivé sdílené složky používají.
Modely izolace tabulkového úložiště
Sdílené tabulky s klíči oddílů na tenanta
Pokud používáte úložiště tabulek s jednou sdílenou tabulkou, můžete zvážit použití integrované podpory dělení. Každá entita musí zahrnovat klíč oddílu. Identifikátor tenanta je často vhodný volbou pro klíč oddílu.
sdílené přístupové podpisy a zásady umožňují zadat rozsah klíčů oddílu a Azure Storage zajistí, že žádosti obsahující podpis budou mít přístup jenom k určeným rozsahům klíčů oddílu. To vám umožní implementovat vzor osobního Key, který umožňuje nedůvěryhodným klientům přistupovat k oddílu jednoho tenanta, aniž by to ovlivnilo ostatní klienty.
U vysoce škálovatelných aplikací zvažte maximální propustnost každého oddílu tabulky a účtu úložiště.
Tabulky na tenanta
Jednotlivé tabulky pro každého tenanta můžete vytvořit v rámci jednoho účtu úložiště. Počet tabulek, které můžete vytvořit v rámci účtu úložiště, není nijak omezený.
vytvořením tabulek pro každého tenanta můžete pomocí Azure Storage řízení přístupu, včetně SAS, spravovat přístup pro data jednotlivých klientů.
Modely izolace úložiště front
Sdílené fronty
Pokud se rozhodnete sdílet frontu, vezměte v úvahu kvóty a omezení, které platí. V řešeních s vysokým objemem požadavků zvažte, zda je cílová propustnost 2 000 zpráv za sekundu dostačující.
Fronty neposkytují dělení do oddílů ani podfronty, takže data pro všechny klienty by mohla být smíšené.
Fronty na tenanta
Jednotlivé fronty můžete pro každého tenanta vytvořit v rámci jednoho účtu úložiště. Počet front, které můžete vytvořit v rámci účtu úložiště, není nijak omezený.
vytvořením front pro každého tenanta můžete pomocí Azure Storage řízení přístupu, včetně SAS, spravovat přístup pro data jednotlivých klientů.
Při dynamickém vytváření front pro každého tenanta zvažte, jak bude vaše aplikační vrstva spotřebovávat zprávy z fronty každého tenanta. v případě pokročilejších scénářů zvažte použití služby Azure Service Bus, která podporuje funkce, jako jsou témata a odběry, relacea automatické předávání zpráv, což může být užitečné ve víceklientském řešení.
Další kroky
Projděte si materiály pro architekty a vývojáře víceklientské řešení.