Share via


Multitenancy e Configurazione app di Azure

Configurazione app di Azure consente di archiviare le impostazioni di configurazione per l'applicazione. Usando Configurazione app di Azure, è possibile implementare facilmente il modello di Archivio configurazione esterna. In questo articolo vengono descritte alcune delle funzionalità di Configurazione app di Azure utili quando si usano sistemi multi-tenant e si collegano a linee guida ed esempi per l'uso di Configurazione app di Azure in una soluzione multi-tenant.

Modelli di isolamento

Un archivio fa riferimento a una singola istanza del servizio Configurazione app di Azure.

In una soluzione multi-tenant, è comune avere alcune impostazioni condivise tra più tenant, ad esempio impostazioni globali o impostazioni che si applicano a tutti i tenant all'interno di un timbro di distribuzione. Le impostazioni globali vengono spesso archiviate in un archivio condiviso Configurazione app. Seguendo questo approccio, si riduce al minimo il numero di posizioni che è necessario aggiornare quando il valore di un'impostazione cambia. Questo approccio riduce al minimo anche il rischio che le impostazioni possano uscire dalla sincronizzazione.

In genere, si avranno anche impostazioni specifiche del tenant. Ad esempio, potrebbe essere necessario archiviare il nome del database o gli identificatori interni di ogni tenant. In alternativa, è possibile specificare livelli di log diversi per ogni tenant, ad esempio quando si diagnosticare un problema segnalato da un tenant specifico e è necessario raccogliere i log di diagnostica da tale tenant. È possibile scegliere se combinare le impostazioni specifiche del tenant per più tenant in un singolo archivio o distribuire un archivio per ogni tenant. Questa decisione deve essere basata sui requisiti. Se la soluzione usa un singolo livello applicazione condiviso per più tenant, è probabile che il vantaggio minimo sia l'uso di archivi specifici del tenant. Tuttavia, se si distribuiscono istanze di applicazioni specifiche del tenant, è possibile scegliere di eseguire il mirroring dello stesso approccio tramite la distribuzione di archivi di configurazione specifici del tenant.

La tabella seguente riepiloga le differenze tra i principali modelli di isolamento della tenancy per Configurazione app di Azure:

Considerazioni Archivio condiviso Archiviare per tenant
Isolamento dei dati Bassa. Usare i prefissi o le etichette chiave per identificare i dati di ogni tenant Alto
Isolamento delle prestazioni Basso Alto
Complessità della distribuzione Basso Medio-alta
Complessità operativa Basso Medio-alta
Costo risorse Basso Medio-alta
Scenario di esempio Soluzione multi-tenant di grandi dimensioni con un livello applicazione condiviso Tenant di livello Premium con distribuzioni completamente isolate

Archivi condivisi

È possibile distribuire un archivio di Configurazione app di Azure condiviso per l'intera soluzione o per ogni stampo. È quindi possibile usare lo stesso archivio per tutte le impostazioni del tenant e usare i prefissi o le etichette chiave per distinguerli.

Se è necessario archiviare una grande quantità di dati per tenant o se è necessario ridimensionare un numero elevato di tenant, potrebbe essere a rischio di superare uno qualsiasi dei limiti delle risorse per un singolo archivio. In questo scenario, valutare se è possibile partizionare i tenant in un set di archivi condivisi, per ridurre al minimo i costi di distribuzione e gestione.

Se si segue questo approccio, assicurarsi di comprendere le quote e i limiti delle risorse applicabili. In particolare, tenere presente il limite totale di archiviazione per il livello di servizio usato e assicurarsi di non superare le richieste massime all'ora.

Archivi per tenant

È invece possibile scegliere di distribuire un archivio Configurazione app di Azure per ogni tenant. Il livello Configurazione app di Azure standard consente di distribuire un numero illimitato di archivi nella sottoscrizione. Tuttavia, questo approccio è spesso più complesso da gestire, perché è necessario distribuire e configurare più risorse. È previsto anche un addebito per ogni risorsa di archiviazione distribuita.

Prendere in considerazione gli archivi specifici del tenant se si ha una delle situazioni seguenti:

  • È necessario usare chiavi di crittografia gestite dal cliente, in cui le chiavi sono separate per ogni tenant.
  • I tenant richiedono che i dati di configurazione siano completamente isolati dai dati degli altri tenant. L'autorizzazione di accesso per Configurazione app di Azure è controllata a livello di archivio, quindi tramite la distribuzione di archivi separati, è possibile configurare autorizzazioni di accesso separate.

Funzionalità di Configurazione app di Azure che supportano la multitenancy

Quando si usa Configurazione app di Azure in un'applicazione multi-tenant, sono disponibili diverse funzionalità che è possibile usare per archiviare e recuperare impostazioni specifiche del tenant.

Prefissi chiave

In Configurazione app di Azure è possibile usare coppie chiave-valore che rappresentano le impostazioni dell'applicazione. La chiave rappresenta il nome dell'impostazione di configurazione. È possibile usare una struttura di denominazione gerarchica per le chiavi. In una soluzione multi-tenant è consigliabile usare un identificatore del tenant come prefisso per le chiavi.

Si supponga, ad esempio, di dover archiviare un'impostazione per indicare il livello di registrazione per l'applicazione. In una soluzione a tenant singolo è possibile assegnare questo nome all'impostazione LogLevel. In una soluzione multi-tenant è possibile scegliere di usare un nome di chiave gerarchico, ad esempio tenant1/LogLevel per tenant 1, tenant2/LogLevel per tenant 2 e così via.

Configurazione app di Azure consente di specificare nomi di chiave lunghi, per supportare più livelli in una gerarchia. Se si sceglie di usare nomi di chiave lunghi, assicurarsi di comprendere i limiti di dimensioni per chiavi e valori.

Quando si carica la configurazione di un singolo tenant nell'applicazione, è possibile specificare un filtro prefisso chiave per caricare solo le chiavi del tenant. È anche possibile configurare la libreria del provider per Configurazione app di Azure per tagliare il prefisso della chiave dalle chiavi, prima di renderli disponibili per l'applicazione. Quando si taglia il prefisso della chiave, l'applicazione vede un nome di chiave coerente, con i valori del tenant caricati nell'applicazione.

Etichette

Configurazione app di Azure supporta anche le etichette, che consentono di avere valori separati con la stessa chiave.

Le etichette vengono spesso usate per il controllo delle versioni, l'uso di più ambienti di distribuzione o per altri scopi nella soluzione. Anche se è possibile usare gli identificatori del tenant come etichette, non sarà possibile usare le etichette per qualsiasi altro elemento. Quindi, è spesso consigliabile usare prefissi chiave anziché etichette, quando si usa una soluzione multi-tenant.

Se si decide di usare etichette per ogni tenant, l'applicazione può caricare solo le impostazioni per un tenant specifico usando un filtro etichetta. Questo approccio può essere utile se si dispone di distribuzioni di applicazioni separate per ogni tenant.

Memorizzazione nella cache lato applicazione

Quando si lavora con Configurazione app di Azure, è importante memorizzare nella cache le impostazioni all'interno dell'applicazione, anziché caricarle ogni volta che le si usano. Le impostazioni della cache delle librerie del provider di Configurazione app di Azure e li aggiornano automaticamente.

È anche necessario decidere se l'applicazione carica le impostazioni per un singolo tenant o per tutti i tenant.

Man mano che la base del tenant aumenta, è probabile che la quantità di tempo e la memoria necessaria per caricare le impostazioni per tutti i tenant. Quindi, nella maggior parte delle situazioni, è consigliabile caricare le impostazioni per ogni tenant separatamente, quando l'applicazione li richiede.

Se si caricano separatamente le impostazioni di configurazione di ogni tenant, l'applicazione deve memorizzare nella cache ogni set di impostazioni separatamente per gli altri. Nelle applicazioni .NET è consigliabile usare una cache in memoria per memorizzare nella cache l'oggetto IConfiguration del tenant e quindi usare l'identificatore del tenant come chiave della cache. Usando una cache in memoria, non è necessario ricaricare una configurazione in ogni richiesta, ma la cache può rimuovere istanze inutilizzate se l'applicazione è sotto pressione sulla memoria. È anche possibile configurare i tempi di scadenza per le impostazioni di configurazione di ogni tenant.

Autori di contributi

Questo articolo viene gestito da Microsoft. È stato originariamente scritto dai collaboratori seguenti.

Autore principale:

  • John Downs | Principal Customer Engineer, FastTrack per Azure

Altri collaboratori:

  • Arsen Vladimirsky | Principal Customer Engineer, FastTrack per Azure
  • Zhenlan Wang | Principal Software Engineering Manager, Configurazione app di Azure

Per visualizzare profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Esaminare gli approcci di distribuzione e configurazione per la multitenancy.