Cos'è la multitenancy?

Copia URL

La multitenancy è un'architettura software in cui una singola istanza software viene adoperata da più gruppi di utenti, o tenant, in un ambiente condiviso. 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, in cui un'istanza software o un sistema informatico prevede un solo utente finale o gruppo di utenti.

In genere le applicazioni multitenant prevedono un livello di personalizzazione per i tenant, come la customizzazione dell'aspetto dell'applicazione o la possibilità di prendere decisioni relative a specifiche autorizzazioni e restrizioni di controllo dell'accesso per gli utenti.

Ottieni l'ebook Le basi di una strategia di cloud ibrido

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

Il concetto non è mai scomparso del tutto: oggi la multitenancy è alla base del cloud computing. Un cloud pubblico suddivide tra più tenant un insieme di risorse condivise, ossia potenza di elaborazione e memoria. I dati e i carichi di lavoro di ciascun tenant restano isolati, anche se a livello fisico vengono eseguiti sulla stessa macchina o sullo stesso gruppo di macchine.

Applicando questa idea all'architettura software, si arriva al moderno Saas. Un provider SaaS esegue una singola istanza di un'applicazione offrendo l'accesso ai singoli clienti. I dati di ciascun utente restano isolati, anche se tutti loro accedono allo stesso software.

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

Una guida strategica per lo sviluppo di applicazioni cloud native

Risorse da Red Hat

Come indicato in precedenza, il concetto di multitenancy è una caratteristica importante del cloud computing perché consiste in una singola istanza di un'applicazione software fornita a più tenant. I cloud sono considerati Platforms-as-a-Service (PaaS), al contrario della multitenancy, che è spesso associata alle applicazioni SaaS.  

I provider di servizi cloud forniscono agli utenti la piattaforma e l'infrastruttura IT sottostante necessaria per il cloud computing da un pool di risorse che vengono quindi allocate a più utenti (o tenant). 

Con architettura cloud si intende il modo in cui tutti i componenti e le funzionalità necessari per creare un cloud sono connessi per erogare una piattaforma online sui cui eseguire le applicazioni.

Per progettare una piattaforma cloud occorrono infatti livelli aggiuntivi di sviluppo per integrare le tecnologie di containerizzazione, orchestrazione, interfacce di programmazione delle applicazioni (API), routing, sicurezza, gestione e software di automazione.

Architettura di cloud pubblico: ambienti cloud creati con risorse, la cui proprietà non è dell'utente finale, che possono quindi essere ridistribuite ad altri tenant.

Architettura di cloud privato: spesso definiti come ambienti cloud dedicati esclusivamente all'utente finale, in genere si trovano all'interno del firewall dell'utente e a volte sono on premise.

Scopri di più sull'architettura cloud

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

La multitenancy consente di risparmiare denaro. L'elaborazione è più economica su scala ridotta e la multitenancy consente di consolidare e allocare le risorse in modo efficiente, risparmiando così sui costi operativi. 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.

Nonostante i vantaggi della multitenancy, in alcuni scenari i sistemi informatici a singolo tenant risultano più adatti, come ad esempio un cloud privato o il proprio datacenter.

In particolare, la sicurezza dei dati 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. Dopo il rapporto della NSA, non sono stati documentati attacchi cross-tenant a nessuno dei principali provider di cloud pubblico. La NSA considera questi rischi inferiori ai rischi derivanti da un controllo degli accessi scarso e da configurazioni errate.

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.

Trasferimento delle applicazioni nel cloud con Red Hat Enterprise Linux
Hub

Il blog ufficiale di Red Hat

Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.

Tutte le versioni di prova dei prodotti Red Hat

Grazie alle versioni di prova gratuite dei prodotti Red Hat potrai acquisire esperienza pratica, prepararti per le certificazioni o capire se il prodotto che hai scelto è giusto per le esigenze della tua organizzazione.

Continua a leggere

Scegli le tecnologie cloud di Red Hat

Definisci la tua strategia cloud con soluzioni cloud di Red Hat. Crea e gestisci ambienti di cloud computing e distribuisci container nel cloud in modo sicuro.

Tipologie di cloud computing

Esistono quattro tipologie principali di cloud computing, ossia cloud privato, cloud pubblico, cloud ibrido e multicloud.

Cosa si intende con multi-cloud?

Desideri altre informazioni sul multi-cloud? Scopri cos'è un ambiente multi-cloud, come funziona, e come sfrutta i container.

Cloud ibrido: risorse consigliate

Articoli correlati