Jump to section

Cos'è la multitenancy?

Copia URL

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 finale o 1 gruppo di utenti.

Le applicazioni multitenant in genere includono un livello di personalizzazione per i tenant, ad esempio la personalizzazione dell'aspetto dell'applicazione o la possibilità per il tenant di decidere in merito ad autorizzazioni e restrizioni specifiche di controllo dell'accesso per gli utenti.

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 dati e 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.

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.

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.

Inizia subito a utilizzare il cloud.

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.

Keep reading

ARTICOLO

Cos'è la gestione del cloud?

Esplora i vantaggi che una piattaforma di gestione cloud può offrire alla tua azienda.

ARTICOLO

Cosa sono i servizi IT gestiti?

I servizi gestiti sono un modo per liberarsi delle attività generiche e affidarle a un esperto, al fine di ridurre i costi, migliorare la qualità del servizio o lasciare più tempo ai team interni per svolgere mansioni specifiche per il business.

ARTICOLO

Cosa sono i servizi cloud?

I servizi cloud sono costituiti da infrastrutture, piattaforme o software in hosting presso provider esterni e messi a disposizione degli utenti attraverso Internet.

Scopri di più sul cloud computing

Prodotti

Una piattaforma che consente di virtualizzare l'hardware e organizzare le risorse nei cloud.

Una piattaforma container enterprise-ready basata su Kubernetes, che consente di automatizzare le operazioni nell'intero stack tecnologico per gestire deployment di cloud ibrido, multicloud e all'edge.

Collabora con il nostro team di consulenti strategici in grado di analizzare l'azienda nel suo insieme e valutare le sfide da affrontare, per aiutarti a superarle con soluzioni complete e convenienti.

Risorse

Formazione

Corso di formazione gratuito

Red Hat OpenStack Technical Overview