Multi-tenancy e Database di Azure per PostgreSQL

Molte soluzioni multi-tenant in Azure usano il sistema di gestione di database relazionali open source Database di Azure per PostgreSQL. In questo articolo vengono esaminate le funzionalità di Database di Azure per PostgreSQL utili per l'uso di sistemi multi-tenant. L'articolo include anche collegamenti a linee guida ed esempi per l'uso di Database di Azure per PostgreSQL in una soluzione multi-tenant.

Modalità di distribuzione

Sono disponibili due modalità di distribuzione per Database di Azure per PostgreSQL adatte per l'uso con applicazioni multi-tenant:

  • Database di Azure per PostgreSQL - Server flessibile: questa è una buona scelta per la maggior parte delle distribuzioni multi-tenant che non richiedono la scalabilità elevata fornita da Azure Cosmos DB per PostgreSQL.
  • Azure Cosmos DB per PostgreSQL : un servizio di database gestito di Azure progettato per soluzioni che richiedono un livello elevato di scalabilità, che spesso include applicazioni multi-tenant. Questo servizio fa parte della famiglia di prodotti Azure Cosmos DB.

Nota

Database di Azure per PostgreSQL - Il server singolo è sul percorso di ritiro ed è pianificato per il ritiro entro il 28 marzo 2025. Non è consigliabile per i nuovi carichi di lavoro multi-tenant.

Funzionalità di Database di Azure per PostgreSQL che supportano la multi-tenancy

Quando si compila un'applicazione multi-tenant usando Database di Azure per PostgreSQL, è possibile usare diverse funzionalità per migliorare la soluzione.

Nota

Alcune funzionalità sono disponibili solo in modalità di distribuzione specifiche. Queste funzionalità sono indicate nelle indicazioni seguenti.

Sicurezza a livello di riga

La sicurezza a livello di riga è utile per applicare l'isolamento a livello di tenant quando si usano tabelle condivise. In PostgreSQL la sicurezza a livello di riga viene implementata applicando i criteri di sicurezza delle righe alle tabelle per limitare l'accesso alle righe in base al tenant.

È possibile che si verifichi un lieve impatto sulle prestazioni quando si implementa la sicurezza a livello di riga in una tabella. Potrebbe pertanto essere necessario creare indici aggiuntivi nelle tabelle con sicurezza a livello di riga abilitata per garantire che le prestazioni non siano interessate. È consigliabile usare tecniche di test delle prestazioni per verificare che il carico di lavoro soddisfi i requisiti di prestazioni di base quando è abilitata la sicurezza a livello di riga.

Ulteriori informazioni:

Ridimensionamento orizzontale con partizionamento orizzontale

Il modello di partizionamento orizzontale consente di ridimensionare il carico di lavoro tra più database o server di database.

Le soluzioni che richiedono un livello molto elevato di scalabilità possono usare Azure Cosmos DB per PostgreSQL. Questa modalità di distribuzione abilita il partizionamento orizzontale dei tenant tra più server (nodi). Usando le tabelle distribuite nei database multi-tenant, è possibile assicurarsi che tutti i dati per un tenant vengano archiviati nello stesso nodo, aumentando così le prestazioni delle query.

Nota

A partire da ottobre 2022, Database di Azure per PostgreSQL Hyperscale (Citus) è stato rinominato come Azure Cosmos DB per PostgreSQL e spostato nella famiglia di prodotti Cosmos DB.

Ulteriori informazioni:

Pool di connessioni

Postgres usa un modello basato su processo per le connessioni. Questo modello rende inefficiente la gestione di un numero elevato di connessioni inattive. Alcune architetture multi-tenant richiedono un numero elevato di connessioni attive, che influiranno negativamente sulle prestazioni del server Postgres.

Il pool di connessioni tramite PgBouncer viene installato per impostazione predefinita in Database di Azure per PostgreSQL - Server flessibile.

Ulteriori informazioni:

Autenticazione Microsoft Entra

Database di Azure per PostgreSQL : il server flessibile supporta l'autenticazione delle connessioni tramite Microsoft Entra ID. Questa funzionalità consente ai carichi di lavoro dell'applicazione in un ambiente multi-tenant di eseguire l'autenticazione al database usando un'entità servizio o un'identità gestita specifica del tenant, il che significa che l'accesso al database può essere limitato a un singolo tenant. Combinando l'autenticazione di Microsoft Entra ID con i criteri di sicurezza delle righe specifici del tenant, è possibile ridurre il rischio che un'applicazione acceda ai dati di un altro tenant dall'interno di un database multi-tenant. Ulteriori informazioni:

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Altri contributori:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Esaminare gli approcci di archiviazione e dati per la multi-tenancy.