Accedi / Registrati Account

Cloud computing

Cos'è la multitenancy?

Jump to section

La multitenancy è un'architettura software in cui una singola istanza software può servire più gruppi di utenti distinti. I prodotti Software-as-a-Service (SaaS) sono un esempio di architettura multitenant.

Nel cloud computing, la multitenancy può anche riferirsi all'hosting condiviso, in cui le risorse server sono suddivise tra diversi clienti.

La multitenancy è l'opposto della tenancy singola, quando un'istanza software o un sistema informatico include 1 utente o 1 gruppo di utenti esclusivo.

Dal timesharing al SaaS

L'idea di multitenancy esiste da decenni. Negli anni '60, le università con potenti e costosi mainframe svilupparono un software di timesharing che consentiva a più utenti di accedere al computer contemporaneamente.

Quel concetto non è mai scomparso. Alla base del cloud computing risiede infatti l'architettura multitenant. Un cloud pubblico acquisisce un pool di risorse condivise, con potenza di elaborazione e memoria, e lo divide tra più tenant. I carichi di lavoro di ciascun tenant rimangono isolati, anche se operano nello stesso computer fisico o nello stesso gruppo di computer.

Se applichiamo il concetto all'architettura software, arriviamo al moderno SaaS. Un provider SaaS esegue una singola istanza di un'applicazione e offre l'accesso a singoli clienti. I dati di ciascun utente rimangono isolati, anche se tutti gli utenti accedono allo stesso software.

Quando si fa riferimento a una piattaforma di orchestrazione di container come Kubernetes, il termine multitenancy in genere indica un singolo cluster che serve più progetti. Il cluster è configurato in modo che ciascun progetto sia isolato dagli altri.

Vantaggi dell'architettura multitenant

La multitenancy offre numerosi vantaggi, evidenti nella diffusione del cloud computing.

La multitenancy consente di risparmiare denaro. L'informatica è più economica su scala ridotta e la multitenancy consente di consolidare e allocare le risorse in modo efficiente. Per un singolo utente, pagare per l'accesso a un servizio cloud o a un'applicazione SaaS è spesso più conveniente rispetto all'esecuzione di hardware e software a tenant singolo.

La multitenancy offre flessibilità. Se hai investito in componenti hardware e software, questi potrebbero raggiungere la capacità massima nei periodi di richiesta elevata o rimanere inattivi nei periodi di richiesta bassa. Un cloud multitenant, invece, può allocare un pool di risorse agli utenti che ne hanno bisogno, man mano che le esigenze di tali utenti aumentano e diminuiscono. In qualità di cliente di un provider di cloud pubblico, puoi accedere a capacità aggiuntive quando ne hai bisogno e non pagare quando non ti servono.

La multitenancy può essere più efficiente. La multitenancy riduce la necessità per i singoli utenti di gestire l'infrastruttura, gli aggiornamenti e la manutenzione. I singoli tenant possono fare affidamento su un provider di cloud centrale, anziché sui propri team, per gestire le operazioni di routine.

Quando è preferibile il tenant singolo

Nonostante i vantaggi della multitenancy, in alcuni scenari i sistemi informatici a singolo tenant risultano più adatti.

In particolare, per le applicazioni che includono dati altamente sensibili. Gli ambienti di cloud pubblico e i prodotti SaaS sono progettati per isolare carichi di lavoro e dati e per supportare processi complessi. Tuttavia, nei test controllati, i ricercatori hanno scoperto vulnerabilità che potrebbero, almeno in teoria, consentire attacchi tra tenant in ambienti cloud.

In pratica, questi rischi sono relativamente ridotti. Le vulnerabilità della tenancy condivisa sono rare e richiedono alti livelli di sofisticazione, secondo un rapporto del 2020 sulle vulnerabilità del cloud della U.S. National Security Agency. Secondo il rapporto della NSA, non si è verificato alcun attacco tra tenant documentato contro i principali provider di cloud pubblico, e tali rischi sono ritenuti minori di quelli derivanti da uno scarso controllo degli accessi e da configurazioni errate.

Ambienti multitenant in Linux

Chiunque crei un ambiente multitenant dovrà scegliere se isolare gli ambienti utilizzando macchine virtuali (VM) o container.

Con le VM, un hypervisor avvia computer guest, ciascuno con il proprio sistema operativo, nonché applicazioni e dipendenze. Inoltre, l'hypervisor fa in modo che gli utenti siano isolati l'uno dall'altro.

Rispetto alle VM, i container offrono un modello più ottimizzato, flessibile e con una scalabilità semplice. I container semplificano i deployment multitenancy di più applicazioni su un singolo host, usando il kernel e il runtime del container per avviare ciascun container. Rispetto alle VM, ciascuna delle quali include il proprio kernel, le applicazioni eseguite in container condividono un kernel, anche tra più tenant.

In Linux®, i namespace consentono a più container di utilizzare la stessa risorsa contemporaneamente senza creare un conflitto. Proteggere un container è come proteggere qualsiasi processo in esecuzione. 

Se si utilizza Kubernetes per l'orchestrazione dei container, è possibile configurare ambienti multitenant mediante un singolo cluster Kubernetes. È possibile separare i tenant nei relativi namespace e creare policy che impongano l'isolamento dei tenant.

Gli strumenti essenziali per il cloud computing

Red Hat Enterprise Linux logo

Esegui i tuoi container Linux con un sistema operativo ottimizzato e leggero.

Red Hat OpenStack Platform product logo

Un'infrastruttura cloud eseguibile su hardware standard, che consente il deployment degli strumenti cloud privati necessari da una piattaforma unificata, quando richiesto.

Red Hat OpenShift product logo

Sviluppa, distribuisci e gestisci i tuoi container in modo scalabile e in qualsiasi ambiente.

Inizia subito a utilizzare il cloud