Il multitenancy si verifica quando diversi clienti cloud accedono alle stesse risorse di elaborazione, ad esempio quando diverse aziende archiviano dati sullo stesso server fisico.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Cos'è il cloud?
Cos'è il cloud ibrido?
Cos'è l'archiviazione cloud?
Che cosa è una migrazione al cloud?
Che cos'è un cloud pubblico?
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Nel cloud computing, il multitenancy significa che più clienti di un fornitore di servizi cloud utilizzano le stesse risorse di elaborazione. Nonostante condividano le risorse, i clienti del cloud non sono a conoscenza dell'esistenza degli altri e i loro dati vengono tenuti totalmente separati. Il multitenancy è una componente essenziale del cloud computing; senza di esso, i servizi cloud sarebbero molto meno pratici. L'architettura multitenant è una caratteristica di molti tipi di cloud computing pubblico, tra cui IaaS, PaaS, SaaS, container ed elaborazione serverless.
Per comprendere il concetto di multitenancy, pensiamo al funzionamento delle banche. Più persone possono depositare il proprio denaro nella stessa banca e i loro beni saranno completamente separati, anche se conservati nello stesso posto. I clienti della banca non interagiscono tra loro, non hanno accesso al denaro degli altri clienti e non si rendono nemmeno conto dell'esistenza degli altri. Allo stesso modo, nel cloud computing pubblico, i clienti del fornitore del cloud utilizzano la stessa infrastruttura (in genere gli stessi server) mantenendo comunque separati e sicuri i propri dati e la logica aziendale.
La definizione classica di multitenancy era una singola istanza software* che serviva più utenti, o tenant. Tuttavia, nel cloud computing moderno, il termine ha assunto un significato più ampio, riferendosi all'infrastruttura cloud condivisa anziché a una semplice istanza software condivisa.
*Un'istanza software è una copia di un programma in esecuzione caricata nella memoria ad accesso casuale (RAM).
Nel cloud computing, le applicazioni e i dati sono ospitati su server remoti in vari datacenter e sono accessibili tramite Internet. I dati e le applicazioni sono centralizzati nel cloud anziché essere archiviati su singoli dispositivi client (come laptop o smartphone) o su server all'interno degli uffici aziendali.
Molte applicazioni moderne sono basate sul cloud, motivo per cui, ad esempio, un utente può accedere al proprio account Facebook e caricare contenuti da più dispositivi.
Molti dei vantaggi del cloud computing sono possibili solo grazie al multitenancy. Ecco due modi cruciali in cui il multitenancy migliora il cloud computing:
Migliore utilizzo delle risorse: riservare una macchina a un tenant non è efficiente, poiché è improbabile che quel tenant utilizzi tutta la potenza di calcolo della macchina. Condividendo le macchine tra più tenant, si massimizza l'utilizzo delle risorse disponibili.
Costi inferiori: con più clienti che condividono le risorse, un fornitore del cloud può offrire i propri servizi a molti clienti a un costo molto più basso rispetto a quello che si avrebbe se ogni cliente avesse bisogno di una propria infrastruttura dedicata.
Possibili rischi per la sicurezza e problemi di conformità: alcune aziende potrebbero non essere in grado di archiviare i dati all'interno di infrastrutture condivise, indipendentemente dal livello di sicurezza, a causa di requisiti normativi. Inoltre, problemi di sicurezza o dati danneggiati di un tenant potrebbero diffondersi ad altri tenant sullo stesso computer, anche se ciò è estremamente raro e non dovrebbe verificarsi se il fornitore del cloud ha configurato correttamente la propria infrastruttura. Questi rischi per la sicurezza sono in qualche modo mitigati dal fatto che i fornitori di servizi cloud sono solitamente in grado di investire di più nella propria sicurezza rispetto alle singole aziende.
Effetto "vicino rumoroso": se un tenant utilizza una quantità eccessiva di potenza di calcolo, ciò potrebbe rallentare le prestazioni degli altri tenant. Anche in questo caso, ciò non dovrebbe verificarsi se il fornitore del cloud ha configurato correttamente la propria infrastruttura.
Cloudflare aiuta le aziende con qualsiasi tipo di implementazione cloud a proteggere i propri dati e a velocizzare le proprie proprietà Web. Lo stack di prodotti Cloudflare si colloca all'avanguardia di qualsiasi tipo di infrastruttura e rende le proprietà Web più sicure, affidabili e veloci. Per saperne di più su come Cloudflare si integra con le distribuzioni cloud, consulta Come funziona Cloudflare con qualsiasi infrastruttura cloud.
Qui analizzeremo più approfonditamente i principi tecnici che rendono possibile il multitenancy in diverse tipologie di cloud computing.
Immagina un motore speciale per auto che possa essere condiviso facilmente tra più auto e diversi proprietari. Ogni proprietario di auto ha bisogno che il motore si comporti in modo leggermente diverso: alcuni hanno bisogno di un potente motore a 8 cilindri, mentre altri preferiscono un motore a 4 cilindri più efficiente nei consumi. Ora immagina che questo motore speciale sia in grado di trasformarsi ogni volta che viene avviato, in modo da soddisfare al meglio le esigenze del proprietario dell'auto.
Questo è simile al modo in cui molti provider di cloud pubblico implementano il multitenancy. La maggior parte dei provider di servizi cloud definisce il multitenancy come un'istanza software condivisa. Memorizzano i metadati* relativi a ciascun tenant e utilizzano questi dati per modificare l'istanza del software in fase di esecuzione, in modo da adattarla alle esigenze di ciascun tenant. I tenant sono isolati l'uno dall'altro tramite le autorizzazioni. Anche se condividono la stessa istanza software, ognuno utilizza e sperimenta il software in modo diverso.
*I metadati sono informazioni su un file, un po' come la descrizione sul retro di un libro.
I contenitori sono pacchetti di software autonomi che includono un'applicazione, librerie di sistema, impostazioni di sistema e tutto ciò di cui l'applicazione ha bisogno per funzionare. I contenitori aiutano a garantire che un'applicazione funzioni sempre allo stesso modo, indipendentemente da dove sia ospitata.
I contenitori sono suddivisi l'uno dall'altro in diversi ambienti di spazio utente e ogni contenitore viene eseguito come se fosse l'unico sistema su quella macchina host. Poiché i contenitori sono autosufficienti, più contenitori creati da diversi clienti cloud possono essere eseguiti su un singolo computer host.
L'elaborazione serverless è un modello in cui le applicazioni sono suddivise in parti più piccole chiamate funzioni, e ciascuna funzione viene eseguita solo su richiesta, separatamente dalle altre. Questo modello di cloud computing è noto anche come function-as-a-service o FaaS.
Come suggerisce il nome, le funzioni serverless non vengono eseguite su server dedicati, bensì su qualsiasi macchina disponibile nell'infrastruttura del provider serverless. Poiché alle aziende non vengono assegnati server fisici distinti, i provider serverless spesso eseguono codice di diversi clienti su un singolo server in qualsiasi momento: un altro esempio di multitenancy.
Alcune piattaforme serverless utilizzano Node.js per eseguire codice serverless. La piattaforma serverless di Cloudflare, Cloudflare Workers, utilizza Chrome V8, in cui ogni funzione viene eseguita nel proprio sandbox, ovvero in un ambiente separato. In questo modo le funzioni serverless rimangono completamente separate l'una dall'altra, anche quando vengono eseguite sulla stessa infrastruttura.
Il cloud computing privato utilizza l'architettura multitenancy più o meno allo stesso modo del cloud computing pubblico. La differenza è che gli altri tenant non provengono da organizzazioni esterne. Nel cloud computing pubblico, la Società A condivide l'infrastruttura con la Società B. Nel cloud computing privato, i diversi team all'interno della Società A condividono l'infrastruttura tra loro.