Condividi tramite


Multi-tenancy 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 archiviazione di configurazione esterna. In questo articolo vengono descritte alcune delle funzionalità di Configurazione app Azure utili quando si usano sistemi multi-tenant ed è possibile usare indicazioni ed esempi per l'uso di Configurazione app di Azure in una soluzione multi-tenant.

Modalità di isolamento

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

In una soluzione multi-tenant, è comune avere due tipi di impostazioni:

  • Le impostazioni condivise sono quelle che si applicano a più tenant, ad esempio impostazioni globali o impostazioni applicabili a tutti i tenant all'interno di uno stamp di distribuzione. Le impostazioni globali sono spesso archiviate in modo ottimale in un archivio di Configurazione app condiviso. Seguendo questo approccio, si riduce al minimo il numero di posizioni che è necessario aggiornare quando il valore di un'impostazione cambia. Questo approccio riduce anche al minimo il rischio che le impostazioni potrebbero non essere sincrone.

  • Impostazioni specifiche del tenant, ad esempio il nome del database di ogni tenant o gli identificatori interni. In alternativa, è possibile specificare livelli di log diversi per ogni tenant, ad esempio quando si diagnosticare un problema segnalato da un tenant specifico ed è 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 sulle proprie esigenze. Se la soluzione usa un singolo livello applicazione condiviso per più tenant, è probabile che ci sia un vantaggio minimo per 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 distribuendo 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 Archivio per tenant
Isolamento dei dati Basso. Usare prefissi chiave o etichette per identificare i dati di ogni tenant Alto
Isolamento delle prestazioni Ridotto Elevato
Complessità della distribuzione Basso Medio-alto
Complessità operativa Basso Medio-alto
Costo delle risorse Basso Medio-alto
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 uno per ogni stamp. È quindi possibile usare lo stesso archivio per tutte le impostazioni dei tenant ed è possibile usare prefissi chiave o etichette per distinguerli.

Se è necessario archiviare una grande quantità di dati per ogni tenant o se è necessario passare a un numero elevato di tenant, è possibile che si verifichi un superamento 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 di archiviazione totale 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 di Configurazione app di Azure per ogni tenant. Il livello standard di Configurazione app di Azure consente di distribuire un numero illimitato di negozi 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 archivio 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 di altri tenant. L'autorizzazione di accesso per Configurazione app di Azure viene 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 multi-tenancy

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 si lavora con 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 prendere in considerazione l'uso di 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 denominare questa impostazione LogLevel. In una soluzione multi-tenant, è possibile scegliere di usare un nome di chiave gerarchica, 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 di prefisso della 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 renderle 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 altri elementi. Pertanto, per le soluzioni multi-tenant, è in genere consigliabile usare prefissi chiave per la gestione delle impostazioni specifiche del tenant e usare le etichette per altri scopi.

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

Caching a livello di applicazione

Quando si usa Configurazione app di Azure, è importante memorizzare nella cache le impostazioni all'interno dell'applicazione, anziché caricarle ogni volta che vengono usate. Le impostazioni della cache delle librerie del provider di Configurazione app di Azure e le 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 aumenta la quantità di tempo e la memoria necessaria per caricare le impostazioni per tutti i tenant. Pertanto, nella maggior parte dei casi, è consigliabile caricare separatamente le impostazioni per ogni tenant, quando l'applicazione ne ha bisogno.

Se si caricano separatamente le impostazioni di configurazione di ogni tenant, l'applicazione deve memorizzare nella cache ogni set di impostazioni separatamente in qualsiasi altro. Nelle applicazioni .NET, valutare l'uso di una cache in memoria per memorizzare nella cache IConfigurationl'oggetto del tenant e usare l'identificatore del tenant come chiave della cache. Usando una cache in memoria, non è necessario ricaricare una configurazione su ogni richiesta, ma la cache può rimuovere istanze inutilizzate se l'applicazione è sotto pressione sulla memoria. È anche possibile configurare le ore di scadenza per le impostazioni di configurazione di ogni 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 distribuzione e configurazione per la multi-tenancy.