Condividi tramite


Multi-tenancy e Archiviazione di Azure

Archiviazione di Azure è un servizio di base usato in quasi tutte le soluzioni. Le soluzioni multi-tenant usano spesso Archiviazione di Azure per BLOB, file, code e archiviazione tabelle. In questa pagina vengono descritte alcune delle funzionalità di Archiviazione di Azure utili per le soluzioni multi-tenant e quindi vengono forniti collegamenti alle linee guida utili per pianificare l'uso di Archiviazione di Azure.

Funzionalità di Archiviazione di Azure che supportano la multi-tenancy

Archiviazione di Azure include molte funzionalità che supportano la multi-tenancy.

Firme di accesso condiviso

Quando si usa Archiviazione di Azure da un'applicazione client, è importante considerare se le richieste client devono essere inviate tramite un altro componente controllato, ad esempio una rete o un'API per la distribuzione di contenuti o se il client deve connettersi direttamente all'account di archiviazione. Potrebbero esserci buoni motivi per inviare richieste tramite un altro componente, inclusi i dati di memorizzazione nella cache al perimetro della rete. In alcune situazioni, tuttavia, è vantaggioso che gli endpoint client si connettano direttamente a Archiviazione di Azure per scaricare o caricare i dati. Questa connessione consente di migliorare le prestazioni della soluzione, soprattutto quando si lavora con BLOB di grandi dimensioni o un numero elevato di file. Riduce anche il carico sulle applicazioni e sui server back-end e riduce il numero di hop di rete. Una firma di accesso condiviso consente di fornire alle applicazioni client l'accesso sicuro agli oggetti in Archiviazione di Azure.

Le firme di accesso condiviso possono essere usate per limitare l'ambito delle operazioni che un client può eseguire e gli oggetti su cui possono eseguire operazioni. Ad esempio, se si dispone di un account di archiviazione condiviso per tutti i tenant e si archiviano tutti i dati del tenant A in un contenitore BLOB denominato tenanta, è possibile creare una firma di accesso condiviso che consenta solo agli utenti del tenant A di accedere a tale contenitore. Per altre informazioni, vedere Modelli di isolamento per esplorare gli approcci che è possibile usare per isolare i dati dei tenant in un account di archiviazione.

Il modello Di passeparte chiave è utile come modo per rilasciare firme di accesso condiviso vincolate e con ambito dal livello applicazione. Si supponga, ad esempio, di avere un'applicazione multi-tenant che consenta agli utenti di caricare video. L'API o il livello applicazione può autenticare il client usando il proprio sistema di autenticazione. È quindi possibile fornire una firma di accesso condiviso al client che consente di caricare un file video in un BLOB specificato, in un contenitore e in un percorso BLOB specificato. Il client carica quindi il file direttamente nell'account di archiviazione, evitando la larghezza di banda aggiuntiva e il carico sull'API. Se tentano di leggere i dati dal contenitore BLOB o se tentano di scrivere dati in una parte diversa del contenitore in un altro contenitore nell'account di archiviazione, Archiviazione di Azure blocca la richiesta. La firma scade dopo un periodo di tempo configurabile.

I criteri di accesso archiviati estendono la funzionalità di firma di accesso condiviso, che consente di definire un singolo criterio che può essere usato durante l'emissione di più firme di accesso condiviso.

Controllo degli accessi in base all'identità

Archiviazione di Azure fornisce anche il controllo degli accessi in base all'identità tramite Microsoft Entra ID. Questa funzionalità consente anche di usare il controllo degli accessi in base all'attributo, che consente l'accesso più dettagliato ai percorsi BLOB o ai BLOB contrassegnati con un ID tenant specifico.

Gestione ciclo di vita

Quando si usa l'archiviazione BLOB in una soluzione multi-tenant, i tenant potrebbero richiedere criteri diversi per la conservazione dei dati. Quando si archiviano grandi volumi di dati, è anche possibile configurare i dati per un tenant specifico per essere spostati automaticamente nei livelli di archiviazione ad accesso sporadico o archivio, a scopo di ottimizzazione dei costi.

È consigliabile usare i criteri di gestione del ciclo di vita per impostare il ciclo di vita del BLOB per tutti i tenant o per un subset di tenant. I criteri di gestione del ciclo di vita possono essere applicati ai contenitori BLOB o a un subset di BLOB all'interno di un contenitore. Esistono tuttavia limiti al numero di regole che è possibile specificare in un criterio di gestione del ciclo di vita. Assicurarsi di pianificare e testare l'uso di questa funzionalità in un ambiente multi-tenant e valutare la possibilità di distribuire più account di archiviazione, se si superano i limiti.

Archiviazione non modificabile

Quando si configura l'archiviazione BLOB non modificabile nei contenitori di archiviazione con criteri di conservazione basati sul tempo, Archiviazione di Azure impedisce l'eliminazione o la modifica dei dati prima di un'ora specificata. La prevenzione viene applicata a livello di account di archiviazione e si applica a tutti gli utenti. Anche gli amministratori dell'organizzazione non possono eliminare dati non modificabili.

L'archiviazione non modificabile può essere utile quando si lavora con tenant con requisiti legali o di conformità per gestire dati o record. Tuttavia, è consigliabile prendere in considerazione il modo in cui questa funzionalità viene usata nel contesto del ciclo di vita del tenant. Ad esempio, se i tenant vengono disattivati e richiedono l'eliminazione dei dati, potrebbe non essere possibile soddisfare le richieste. Se si usa l'archiviazione non modificabile per i dati dei tenant, valutare come risolvere questo problema nelle condizioni di servizio.

Copia lato server

In un sistema multi-tenant, a volte è necessario spostare i dati da un account di archiviazione a un altro. Ad esempio, se si sposta un tenant tra i timbri di distribuzione o si ribilancia un set partizionato di account di archiviazione, è necessario copiare o spostare i dati di un tenant specifico. Quando si usano volumi elevati di dati, è consigliabile usare le API di copia sul lato server per ridurre il tempo necessario per eseguire la migrazione dei dati.

Lo strumento AzCopy è un'applicazione che è possibile eseguire dal proprio computer o da una macchina virtuale per gestire il processo di copia. AzCopy è compatibile con la funzionalità di copia sul lato server e offre un'interfaccia della riga di comando scriptabile che è possibile eseguire dalle proprie soluzioni. AzCopy è utile anche per il caricamento e il download di grandi volumi di dati.

Se è necessario usare le API di copia lato server direttamente dal codice, è consigliabile usare l'API Put Block From URL( Put Block From URL), Put Page From URL (Put Page From URL API), Append Block From URL (Aggiungi blocco dall'URL) e l'API Copy Blob From URL (Copia BLOB da URL) quando si usano BLOB più piccoli.

Replica di oggetti

La funzionalità replica oggetti replica automaticamente i dati tra un account di archiviazione di origine e di destinazione. La replica di oggetti è asincrona. In una soluzione multi-tenant questa funzionalità può essere utile quando è necessario replicare continuamente i dati tra stamp di distribuzione o in un'implementazione del modello Geode.

Crittografia

Archiviazione di Azure consente di fornire chiavi di crittografia per i dati. In una soluzione multi-tenant è consigliabile combinare questa funzionalità con gli ambiti di crittografia, che consentono di definire chiavi di crittografia diverse per tenant diversi, anche se i dati vengono archiviati nello stesso account di archiviazione. Usando queste funzionalità insieme, è anche possibile fornire ai tenant il controllo sui propri dati. Se è necessario disattivare l'account, l'eliminazione della chiave di crittografia garantisce che i dati non siano più accessibili.

Monitoraggio

Quando si usa una soluzione multi-tenant, valutare se è necessario misurare il consumo per ogni tenant e definire le metriche specifiche da tenere traccia, ad esempio la quantità di spazio di archiviazione usato per ogni tenant (capacità) o il numero di operazioni eseguite per i dati di ogni tenant. È anche possibile usare l'allocazione dei costi per tenere traccia del costo dell'utilizzo di ogni tenant e abilitare il chargeback tra più sottoscrizioni.

Archiviazione di Azure offre funzionalità di monitoraggio predefinite. È importante considerare i servizi che verranno usati all'interno dell'account Archiviazione di Azure. Ad esempio, quando si lavora con i BLOB, è possibile visualizzare la capacità totale di un account di archiviazione, ma non un singolo contenitore. Al contrario, quando si lavora con condivisioni file, è possibile visualizzare la capacità per ogni condivisione, ma non per ogni cartella.

È anche possibile registrare tutte le richieste effettuate a Archiviazione di Azure e quindi aggregare e analizzare tali log. Questo approccio offre maggiore flessibilità nella modalità di aggregazione e raggruppamento dei dati per ogni tenant. Tuttavia, nelle soluzioni che creano volumi elevati di richieste a Archiviazione di Azure, è importante valutare se il vantaggio ottenuto da questo approccio giustifica il costo necessario per l'acquisizione e l'elaborazione di tali log.

Archiviazione di Azure inventario offre un altro approccio per misurare le dimensioni totali di un contenitore BLOB.

Modelli di isolamento

Quando si usa un sistema multi-tenant usando Archiviazione di Azure, è necessario prendere una decisione sul livello di isolamento da usare. Archiviazione di Azure supporta diversi modelli di isolamento.

Account di archiviazione per tenant

Il livello di isolamento più elevato consiste nel distribuire un account di archiviazione dedicato per un tenant. In questo modo tutte le chiavi di archiviazione sono isolate e possono essere ruotate in modo indipendente. Questo approccio consente di ridimensionare la soluzione per evitare limiti e quote applicabili a ogni account di archiviazione, ma è anche necessario considerare il numero massimo di account di archiviazione che possono essere distribuiti in una singola sottoscrizione di Azure.

Nota

Archiviazione di Azure presenta molte quote e limiti da considerare quando si seleziona un modello di isolamento. Questi includono limiti dei servizi di Azure, obiettivi di scalabilità e obiettivi di scalabilità per il provider di risorse Archiviazione di Azure.

Inoltre, ogni componente di Archiviazione di Azure offre altre opzioni per l'isolamento del tenant.

Modelli di isolamento dell'archiviazione BLOB

La tabella seguente riepiloga le differenze tra i principali modelli di isolamento tenancy per i BLOB Archiviazione di Azure:

Considerazioni Contenitori BLOB condivisi Contenitori BLOB per tenant Account di archiviazione per tenant
Isolamento dei dati Medio basso. Usare i percorsi per identificare i dati di ogni tenant o gli spazi dei nomi gerarchici Medio. Usare gli URL di firma di accesso condiviso con ambito contenitore per supportare l'isolamento della sicurezza Alto
Isolamento delle prestazioni Basso Basso. La maggior parte delle quote e dei limiti si applica all'intero account di archiviazione Alto
Complessità della distribuzione Basso Medium Alto
Complessità operativa Basso Medium Alto
Scenario di esempio Archiviazione di un numero ridotto di BLOB per tenant Rilasciare URL di firma di accesso condiviso con ambito tenant Indicatori di distribuzione separati per ogni tenant

Contenitori BLOB condivisi

Quando si usa l'archiviazione BLOB, è possibile scegliere di usare un contenitore BLOB condiviso e quindi usare i percorsi BLOB per separare i dati per ogni tenant:

ID tenant Percorso BLOB di esempio
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

Sebbene questo approccio sia semplice da implementare, in molti scenari, i percorsi BLOB non forniscono isolamento sufficiente tra i tenant. Ciò è dovuto al fatto che l'archiviazione BLOB non fornisce un concetto di directory o cartelle. Ciò significa che non è possibile assegnare l'accesso a tutti i BLOB all'interno di un percorso specificato. Tuttavia, Archiviazione di Azure offre una funzionalità per elencare (enumerare) BLOB che iniziano con un prefisso specificato, che può essere utile quando si lavora con contenitori BLOB condivisi e non richiede il controllo di accesso a livello di directory.

la funzionalità dello spazio dei nomi gerarchico di Archiviazione di Azure consente di avere un concetto più efficace di una directory o di una cartella, incluso il controllo di accesso specifico della directory. Ciò può essere utile in alcuni scenari multi-tenant in cui sono presenti contenitori BLOB condivisi, ma si vuole concedere l'accesso ai dati di un singolo tenant.

In alcune soluzioni multi-tenant potrebbe essere necessario archiviare un singolo BLOB o un set di BLOB per ogni tenant, ad esempio le icone del tenant per personalizzare un'interfaccia utente. In questi scenari, un singolo contenitore BLOB condiviso potrebbe essere sufficiente. È possibile usare l'identificatore del tenant come nome del BLOB e quindi leggere un BLOB specifico anziché enumerare un percorso BLOB.

Quando si lavora con i contenitori condivisi, valutare se è necessario tenere traccia dei dati e Archiviazione di Azure utilizzo del servizio per ogni tenant e pianificare un approccio a tale scopo. Per altre informazioni, vedere Monitoraggio .

Contenitori BLOB per tenant

È possibile creare singoli contenitori BLOB per ogni tenant all'interno di un singolo account di archiviazione. Non esiste alcun limite al numero di contenitori BLOB che è possibile creare, all'interno di un account di archiviazione.

Creando contenitori per ogni tenant, è possibile usare Archiviazione di Azure controllo di accesso, inclusa la firma di accesso condiviso, per gestire l'accesso per i dati di ogni tenant. È anche possibile monitorare facilmente la capacità usata da ogni contenitore.

Modelli di isolamento archiviazione file

La tabella seguente riepiloga le differenze tra i principali modelli di isolamento tenancy per i file Archiviazione di Azure:

Considerazioni Condivisioni file condivise Condivisioni file per tenant Account di archiviazione per tenant
Isolamento dei dati Medio-alto. Applicare regole di autorizzazione per file e directory specifici del tenant Medio-alto Alto
Isolamento delle prestazioni Basso Medio basso. La maggior parte delle quote e dei limiti si applica all'intero account di archiviazione, ma impostare le quote di dimensioni a livello di condivisione Alto
Complessità della distribuzione Basso Medium Alto
Complessità operativa Basso Medium Alto
Scenario di esempio L'applicazione controlla tutti gli accessi ai file I tenant accedono ai propri file Indicatori di distribuzione separati per ogni tenant

Condivisioni file condivise

Quando si usano condivisioni file, è possibile scegliere di usare una condivisione file condivisa e quindi usare percorsi di file per separare i dati per ogni tenant:

ID tenant Percorso file di esempio
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

Quando si usa un'applicazione in grado di comunicare usando il protocollo SMB (Server Message Block) e quando si usa Dominio di Active Directory Services in locale o in Azure, le condivisioni file supportano l'autorizzazione sia a livello di condivisione che di directory/file.

In altri scenari è consigliabile usare la firma di accesso condiviso per concedere l'accesso a condivisioni file o file specifici. Quando si usa la firma di accesso condiviso, non è possibile concedere l'accesso alle directory.

Quando si lavora con condivisioni file condivise, valutare se è necessario tenere traccia dei dati e Archiviazione di Azure utilizzo del servizio per ogni tenant e quindi pianificare un approccio a tale scopo (se necessario). Per altre informazioni, vedere Monitoraggio .

Condivisioni file per tenant

È possibile creare singole condivisioni file per ogni tenant, all'interno di un singolo account di archiviazione. Non esiste alcun limite al numero di condivisioni file che è possibile creare all'interno di un account di archiviazione.

Creando condivisioni file per ogni tenant, è possibile usare Archiviazione di Azure controllo di accesso, inclusa la firma di accesso condiviso, per gestire l'accesso per i dati di ogni tenant. È anche possibile monitorare facilmente la capacità usata da ogni condivisione file.

Modelli di isolamento dell'archiviazione tabelle

La tabella seguente riepiloga le differenze tra i principali modelli di isolamento tenancy per le tabelle Archiviazione di Azure:

Considerazioni Tabelle condivise con chiavi di partizione per tenant Tabelle per tenant Account di archiviazione per tenant
Isolamento dei dati Basso. L'applicazione applica l'isolamento Basso medio Alto
Isolamento delle prestazioni Basso Basso. La maggior parte delle quote e dei limiti si applica all'intero account di archiviazione Alto
Complessità della distribuzione Basso Medium Alto
Complessità operativa Basso Medium Alto
Scenario di esempio Soluzione multi-tenant di grandi dimensioni con livello applicazione condiviso Rilasciare URL di firma di accesso condiviso con ambito tenant Indicatori di distribuzione separati per ogni tenant

Tabelle condivise con chiavi di partizione per tenant

Quando si usa l'archiviazione tabelle con una singola tabella condivisa, è possibile prendere in considerazione l'uso del supporto predefinito per il partizionamento. Ogni entità deve includere una chiave di partizione. Un identificatore del tenant è spesso una scelta ottimale per una chiave di partizione.

Le firme e i criteri di accesso condiviso consentono di specificare un intervallo di chiavi di partizione e Archiviazione di Azure garantisce che le richieste contenenti la firma possano accedere solo agli intervalli di chiavi di partizione specificati. In questo modo è possibile implementare il modello Di passeparte, che consente ai client non attendibili di accedere alla partizione di un singolo tenant, senza influire sugli altri tenant.

Per le applicazioni su larga scala, prendere in considerazione la velocità effettiva massima di ogni partizione di tabella e dell'account di archiviazione.

Tabelle per tenant

È possibile creare singole tabelle per ogni tenant all'interno di un singolo account di archiviazione. Non esiste alcun limite al numero di tabelle che è possibile creare all'interno di un account di archiviazione.

Creando tabelle per ogni tenant, è possibile usare Archiviazione di Azure controllo di accesso, inclusa la firma di accesso condiviso, per gestire l'accesso ai dati di ogni tenant.

Modelli di isolamento dell'archiviazione code

La tabella seguente riepiloga le differenze tra i principali modelli di isolamento tenancy per le code Archiviazione di Azure:

Considerazioni Code condivise Code per tenant Account di archiviazione per tenant
Isolamento dei dati Basso Basso medio Alto
Isolamento delle prestazioni Basso Basso. La maggior parte delle quote e dei limiti si applica all'intero account di archiviazione Alto
Complessità della distribuzione Basso Medium Alto
Complessità operativa Basso Medium Alto
Scenario di esempio Soluzione multi-tenant di grandi dimensioni con livello applicazione condiviso Rilasciare URL di firma di accesso condiviso con ambito tenant Indicatori di distribuzione separati per ogni tenant

Code condivise

Se si sceglie di condividere una coda, prendere in considerazione le quote e i limiti applicabili. Nelle soluzioni con un volume di richieste elevato, valutare se la velocità effettiva di destinazione di 2.000 messaggi al secondo è sufficiente.

Le code non forniscono partizionamento o sottoquery, quindi i dati per tutti i tenant potrebbero essere interminate.

Code per tenant

È possibile creare singole code per ogni tenant all'interno di un singolo account di archiviazione. Non esiste alcun limite al numero di code che è possibile creare all'interno di un account di archiviazione.

Creando code per ogni tenant, è possibile usare Archiviazione di Azure controllo di accesso, inclusa la firma di accesso condiviso, per gestire l'accesso ai dati di ogni tenant.

Quando si creano in modo dinamico code per ogni tenant, considerare il modo in cui il livello applicazione utilizzerà i messaggi della coda di ogni tenant. Per scenari più avanzati, è consigliabile usare bus di servizio di Azure, che supporta funzionalità quali argomenti e sottoscrizioni, sessioni e inoltro automatico dei messaggi, che possono essere utili in una soluzione multi-tenant.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Altri contributori:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Esaminare gli approcci di archiviazione e dati per la multi-tenancy.