Che cos'è l'hosting cloud multi-tenant?

Aggiornato: ottobre 2026

L’hosting cloud multi-tenant è un modello in cui gli stessi server e software servono molti clienti, con isolamento logico tra i tenant. Vale l’immagine del condominio: gli appartamenti condividono struttura, impianto idraulico ed elettricità, ma ogni porta ha la sua chiave. L’alternativa – l’hosting single-tenant – è una casa indipendente: controllo totale, affitto più alto e una quota di manutenzione più grande che resta in capo a chi la abita.

Punti chiave

DomandaRisposta
Che cos’èServer e software condivisi, molti clienti, dati separati logicamente
Perché esisteCondividere l’infrastruttura è ciò che rende possibili i prezzi del cloud
La parte difficileL’isolamento – un tenant non deve mai vedere i dati degli altri né sentirne il carico
vs. single-tenantPiù economico, onboarding più rapido, un solo ciclo di aggiornamenti – al prezzo della separazione fisica
Dove va l’isolamentoNel livello dati – non nella clausola WHERE di ogni query

Come restano separati i dati dei tenant

Ogni sistema multi-tenant risponde prima di tutto a una domanda: dove vive l’isolamento? A livello di database esistono tre pattern canonici – schema condiviso, uno schema per tenant e un database per tenant. Lo schema condiviso è il cavallo da tiro, ed è più sicuro quando è il database stesso a imporre il confine:

-- Modello 1: schema condiviso – ogni riga porta il suo tenant
CREATE TABLE invoices (
  id        bigserial PRIMARY KEY,
  tenant_id uuid NOT NULL,
  amount    numeric(10,2) NOT NULL
);

-- L'isolamento si impone nel database, non in ogni query
ALTER TABLE invoices ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON invoices
  USING (tenant_id = current_setting('app.tenant_id')::uuid);

Con una policy a livello di riga, una query che dimentica il filtro del tenant non restituisce nulla invece di restituire tutto – la modalità di guasto passa dalla fuga di dati alla pagina vuota.

Su un Backend as a Service lo stesso principio si esprime come controllo degli accessi per oggetto anziché come policy SQL. Ogni record porta una ACL che nomina il ruolo del tenant autorizzato a vederlo, e la piattaforma la impone a ogni richiesta:

// JavaScript / Node.js — Back4app JS SDK
const doc = new Parse.Object('Invoice');
doc.set('amount', 480);

const acl = new Parse.ACL();
acl.setPublicReadAccess(false); // invisible to every other tenant
acl.setRoleReadAccess('tenant-acme', true);
acl.setRoleWriteAccess('tenant-acme', true);
doc.setACL(acl);
await doc.save();

L’isolamento è uno spettro, non un interruttore

Tra “tutto condiviso” e “tutto dedicato” stanno le tre forme di deployment tra cui sceglie la maggior parte dei sistemi reali:

Spettro di isolamento dei tenantTre forme di deployment, da pool, dove tutti i tenant condividono l'app e il database, passando per bridge, con app condivisa ma dati isolati, fino a silo, uno stack dedicato per tenant.

Pool
tutti i tenant condividono app + database
(densità massima, costo minimo)

Bridge
app condivisa, dati isolati
(uno schema o un database per tenant)

Silo
stack dedicato per tenant
(isolamento massimo, costo massimo)

Tre forme di deployment, da pool, dove tutti i tenant condividono l'app e il database, passando per bridge, con app condivisa ma dati isolati, fino a silo, uno stack dedicato per tenant.

Le piattaforme mature li combinano: pool per i molti tenant piccoli, bridge per quelli di taglia media, silo per i pochi che sono regolamentati, enormi o rumorosi. L’errore è trattare la scelta come globale – si può fare per fascia di offerta, e anche per singolo componente.

Hosting multi-tenant vs. single-tenant

DimensioneMulti-tenantSingle-tenant
Costo per tenantBasso – l’infrastruttura è ammortizzataAlto – stack dedicato per cliente
Isolamento dei datiLogico (policy, ACL, schemi)Fisico (istanza e database separati)
Raggio d’impattoUn incidente può toccare molti tenantCircoscritto a un solo cliente
Noisy neighborPossibile; richiede quote e throttlingAssente – le risorse sono private
AggiornamentiUn solo rollout aggiorna tuttiOgni istanza va patchata separatamente
OnboardingModifica di configurazione, minutiProvisioning, da ore a settimane
PersonalizzazioneConfigurazione e feature flagModifiche profonde, possibili per istanza
Aderenza alla complianceAdeguata nella maggior parte dei casi; attriti sotto regimi severiPreferito dove l’isolamento stretto è un obbligo
Uso tipicoSaaS, BaaS, piattaforme cloud condiviseSettori regolamentati, fasce enterprise premium

Due significati da tenere distinti

“Hosting cloud multi-tenant” si usa a due altitudini diverse, e gran parte delle spiegazioni le confonde:

  • Come fascia di hosting: l’hosting condiviso – il proprio carico di lavoro gira sulle stesse macchine fisiche di quelli di altri clienti. È la modalità predefinita di ogni cloud pubblico; la definizione del NIST elenca il pooling delle risorse tra tenant come caratteristica essenziale del cloud computing stesso.
  • Come architettura applicativa: il proprio prodotto serve i suoi clienti da un unico backend condiviso – il modo in cui si costruisce il software in abbonamento. Qui il padrone di casa è chi sviluppa, e l’isolamento dei tenant diventa una sua responsabilità: è il punto in cui entrano in gioco i pattern descritti sopra.

I due si compongono: un prodotto SaaS – multi-tenancy, cioè la condivisione di una stessa istanza tra più tenant, a livello applicativo – gira di norma su infrastruttura cloud condivisa, multi-tenancy a livello di hosting, e ogni livello isola i propri tenant.

Il problema del noisy neighbor

Condividere significa contesa: l’importazione massiva di un tenant può rallentare il checkout di un altro. Le contromisure standard, in ordine crescente:

  1. Quote e rate limiting per tenant – mettere un tetto a quanto ogni tenant può consumare per finestra temporale.
  2. Scheduling delle risorse e autoscaling – assorbire i picchi prima che diventino la latenza di qualcun altro.
  3. Separazione dei carichi di lavoro – spostare i job pesanti (export, analytics) su code in background, fuori dal percorso della richiesta.
  4. Siloing parziale – quando un tenant gira costantemente a pieno regime, dare al componente in contesa (di norma il database) una partizione propria e lasciare il resto in pool.

Casi d’uso tipici

  • Prodotti SaaS. Ogni app in abbonamento che serve tutti i clienti da un’unica codebase – il caso canonico, e la ragione per cui il pattern esiste.
  • BaaS e hosting di piattaforma. Le piattaforme fanno girare migliaia di app su infrastruttura condivisa e isolata, così che il provisioning di ogni app costi quasi nulla – è il modello dietro le offerte gratuite.
  • Applicazioni B2B con spazi di lavoro per tenant. Un solo deployment, molte organizzazioni clienti, ciascuna con i propri utenti, ruoli e confine dei dati.
  • Piattaforme interne. Un unico deployment di analytics o di strumenti condiviso tra i reparti, isolato per team.
  • Agenzie che gestiscono molte app per i clienti. Piattaforma condivisa sotto, un backend isolato per cliente sopra.

Multi-tenant, single-tenant o misto? Matrice decisionale

Scegliere multi-tenant quando…Scegliere single-tenant quando…Scegliere il misto quando…
Si servono molti clienti con un unico prodottoNormative o contratti impongono l’isolamento fisicoLa maggior parte dei tenant è standard, pochi sono regolamentati
Il costo per cliente deve tendere a zeroL’SLA di un cliente giustifica capacità dedicataUn tenant è 100× più grande della mediana
Serve un solo ciclo di aggiornamenti per tuttiLa personalizzazione profonda per cliente è il prodottoServe una fascia di prezzo premium “dedicata”
L’onboarding deve essere self-service e istantaneoI clienti si contano sulle dita di una manoUn tenant rumoroso ha bisogno di un database proprio

Conviene partire dal multi-tenant e guadagnarsi l’uscita un tenant alla volta – innestare la tenancy a posteriori su una codebase single-tenant è molto più difficile che mettere in silo, più avanti, un singolo cliente troppo esigente.

Limiti e trade-off

  • L’isolamento vale quanto la sua applicazione. Un filtro di tenant dimenticato nel codice applicativo è la classica fuga di dati tra tenant. Il confine va spinto nel livello dati – policy a livello di riga, ACL per oggetto – così che la piattaforma fallisca in modo chiuso.
  • Raggio d’impatto condiviso. Un disservizio, un deployment sbagliato o una violazione possono colpire tutti i tenant insieme. I rollout a scaglioni e i backup per tenant riducono l’impatto, non la condivisione.
  • I noisy neighbor sono strutturali. Quote e scheduling gestiscono la contesa; solo il siloing parziale la elimina, ai prezzi di un silo parziale.
  • Tetto alla personalizzazione. I tenant condividono un’unica codebase, quindi il comportamento specifico di ciascuno vive nella configurazione e nei feature flag – un vincolo che i clienti single-tenant non hanno.
  • Contesto del tenant in ogni punto. Ogni query, chiave di cache, job e riga di log deve conoscere il tenant; la complessità si sposta dall’infrastruttura all’applicazione, ed è esattamente il peso che l’isolamento gestito nel livello dati esiste per assorbire.

L’hosting multi-tenant su Back4app

Back4app è una piattaforma open-source di Backend as a Service (BaaS) che combina database gestito, API REST e GraphQL generate automaticamente, autenticazione, archiviazione di file e funzioni serverless con Cloud Code. È multi-tenant a entrambe le altitudini. Come piattaforma, fa girare migliaia di backend applicativi isolati su infrastruttura condivisa – è la ragione per cui il provisioning di un nuovo backend richiede pochi minuti sull’offerta gratuita. Per i tenant dell’applicazione di chi sviluppa, l’isolamento è una feature del livello dati e non una convenzione: ogni oggetto porta una ACL, i ruoli raggruppano gli utenti per tenant e i permessi di classe fissano regole valide per tutto lo schema, tutto imposto da Back4app a ogni richiesta. L’approfondimento tecnico sulla sicurezza a livello di riga mostra il pattern completo su un database documentale – senza richiedere alcuna disciplina sulla clausola WHERE.

Domande frequenti

Che cos'è la multi-tenancy nel cloud computing?

Un'architettura in cui una singola istanza software – e l'infrastruttura che la sostiene – serve più clienti, chiamati tenant. I tenant condividono calcolo, archiviazione e una stessa codebase, ma i dati di ciascuno sono isolati logicamente e invisibili agli altri. È il modello che fa funzionare l'economia del cloud: aggiungere un cliente è una modifica di configurazione, non hardware in più.

Qual è la differenza tra hosting multi-tenant e single-tenant?

Il single-tenant assegna a ogni cliente un'istanza e un database dedicati – controllo massimo e isolamento fisico, a un prezzo più alto, con ogni istanza patchata e aggiornata separatamente. Il multi-tenant condivide un'unica istanza tra tutti i clienti – costo per tenant più basso, un solo ciclo di aggiornamenti per tutti e isolamento imposto in modo logico anziché fisico. La maggior parte dei SaaS gira in multi-tenant; i clienti regolamentati o molto grandi a volte giustificano il single-tenant.

Un cloud multi-tenant è sicuro?

Sì, quando l'isolamento è imposto correttamente – i tenant non possono vedere i dati degli altri. I rischi residui sono i bug applicativi che saltano un filtro di tenant e il raggio d'impatto più ampio di un sistema condiviso: una violazione o un disservizio può toccare ogni tenant. Per questo i progetti più solidi spingono l'isolamento fino al livello dati – policy a livello di riga e controllo degli accessi per oggetto – invece di affidarsi al fatto che ogni query si ricordi la clausola WHERE.

Che cos'è il problema del noisy neighbor?

L'uso intensivo di CPU, memoria o I/O condivisi da parte di un tenant, che degrada le prestazioni di tutti gli altri sulla stessa infrastruttura. Le contromisure comprendono quote e rate limiting per tenant, lo scheduling delle risorse, l'autoscaling e – quando un tenant gira costantemente a pieno regime – il partizionamento del componente in contesa, di norma il database, in un silo proprio.

Come si tengono separati i dati dei tenant in un cloud condiviso?

A livello di database esistono tre pattern canonici: uno schema condiviso in cui ogni riga porta un identificatore di tenant (densità massima, di norma abbinato alla sicurezza a livello di riga), uno schema per tenant in un database condiviso e un database per tenant (isolamento più forte, costo più alto). Sotto, l'infrastruttura aggiunge i propri livelli: macchine virtuali, namespace dei container e micro-VM tengono separati i carichi di lavoro dei tenant.

La multi-tenancy è la stessa cosa della virtualizzazione?

No. La virtualizzazione divide una macchina fisica in macchine virtuali isolate; la multi-tenancy condivide una singola istanza applicativa tra molti clienti. Le due sono complementari – la virtualizzazione è uno dei meccanismi con cui i provider isolano i carichi di lavoro dei tenant, mentre la multi-tenancy è il pattern architetturale che decide, a monte, che cosa viene condiviso.

Quando conviene scegliere invece il single-tenant?

Quando regimi normativi severi o contratti impongono l'isolamento fisico o la residenza dei dati, quando un cliente ha bisogno di una personalizzazione profonda per istanza, o quando le prestazioni garantite per un account di alto valore contano più del costo. La risposta sempre più diffusa è la tenancy mista: mettere in pool la maggior parte dei tenant su infrastruttura condivisa e in silo i pochi che sono regolamentati, enormi o rumorosi.

Perché la multi-tenancy conta per il SaaS?

È l'architettura su cui si regge il software in abbonamento. Un'unica codebase serve ogni cliente, così correzioni e funzionalità arrivano a tutti i tenant nello stesso momento; l'utilizzo dell'hardware si distribuisce su tutta la base clienti; e l'onboarding di un nuovo cliente costa quasi nulla. Senza multi-tenancy, ogni abbonamento porterebbe il prezzo di server dedicati e di una manutenzione per singolo cliente.

Termini correlati

Confronta con

Fonti di approfondimento

Pronto a costruire il tuo backend?

Avvia il tuo progetto su Back4app in pochi minuti: database, autenticazione, API e Cloud Code inclusi. Nessuna carta di credito richiesta.

Scritto e revisionato da Back4app Engineering, Back4app Engineering · Pubblicato il 2026-10-14