Condividi tramite


Approcci architetturali per una soluzione multi-tenant

È possibile progettare e creare soluzioni multi-tenant in Azure in diversi modi. Ad un estremo, è possibile condividere ogni risorsa nella soluzione tra tutti i tenant. All'altra estremità, è possibile distribuire risorse isolate per ogni tenant. Potrebbe sembrare semplice distribuire risorse separate per ogni tenant e può funzionare per alcuni tenant. Tuttavia, in genere manca l'efficienza dei costi e rende difficile la gestione delle risorse. Diversi approcci rientrano tra questi estremi. Ogni approccio richiede compromessi tra scalabilità, isolamento, efficienza dei costi, prestazioni, complessità di implementazione e gestibilità.

Questa sezione descrive gli approcci per le categorie principali di servizi di Azure che comprendono una soluzione, tra cui calcolo, archiviazionee dati, rete, distribuzione, identità, messaggistica, intelligenza artificiale e Machine Learning e Internet delle cose (IoT). Per ogni categoria, include gli antipattern da evitare e i modelli chiave e gli approcci da considerare quando si progetta una soluzione multitenant.

Modello dei timbri di distribuzione

Le soluzioni multi-tenant usano spesso lo schema Deployment Stamps. Questo modello distribuisce un'infrastruttura dedicata per un tenant o un gruppo di tenant. Un singolo timbro può servire più inquilini o solo un singolo inquilino.

Diagramma che mostra un'implementazione di esempio del modello Deployment Stamps. In questo scenario, ogni inquilino ha il proprio stamp che contiene un database.

I francobolli a tenant singolo semplificano l'implementazione del modello Stamp di distribuzione. Ogni stamp funziona in modo indipendente e non richiede logica o funzionalità multi-tenancy nel livello dell'applicazione. Questo modello fornisce il livello di isolamento più elevato e aiuta a evitare il problema del vicino rumoroso. Fornisce anche la configurazione o la personalizzazione per i tenant in base a requisiti specifici, ad esempio un'area geopolitica di destinazione o esigenze di disponibilità elevata.

I francobolli multi-tenant richiedono modelli aggiuntivi per gestire la multi-tenancy all'interno del timbro e il problema del vicino rumoroso potrebbe ancora verificarsi. Tuttavia, il modello Deployment Stamps supporta la scalabilità continua man mano che la soluzione cresce.

Lo svantaggio principale dell'uso del modello Deployment Stamps per un singolo tenant è il costo dell'infrastruttura. Ogni francobollo richiede una propria infrastruttura dedicata e tale infrastruttura non può essere condivisa con altri utenti. È anche necessario allocare le risorse per gestire il picco di lavoro del tenant. Assicurati che il tuo modello tariffario compensi i costi dell'implementazione per l'infrastruttura del cliente.

I timbri per singolo inquilino funzionano spesso bene con alcuni inquilini. Man mano che aumenta il numero di tenant, la gestione di una flotta di timbri a tenant singolo diventa più difficile. Per un case study di esempio, vedere Eseguire un milione di database in SQL di Azure per un provider di grandi dimensioni. È anche possibile applicare il modello Stamp di distribuzione per creare francobolli multi-tenant. Questo approccio supporta la condivisione delle risorse e riduce i costi dell'infrastruttura.

Per implementare il modello Deployment Stamps, usare approcci di distribuzione automatizzati. A seconda della strategia di distribuzione, è possibile gestire gli indicatori all'interno delle pipeline di distribuzione usando un'infrastruttura dichiarativa come codice, ad esempio file Bicep o modelli Terraform. In alternativa, è possibile compilare codice personalizzato per distribuire e gestire ogni stamp usando Gli SDK di Azure o un altro strumento.

Pubblico previsto

Gli articoli di questa sezione mirano a aiutare gli architetti di soluzioni e i lead sviluppatori di applicazioni multi-tenant, inclusi fornitori di software indipendenti e startup che sviluppano soluzioni SaaS (Software as a Service). Gran parte delle indicazioni contenute in questa sezione si applica su larga scala a più servizi di Azure all'interno di una categoria.