Condividi tramite


Multitenancy e Database di Azure per PostgreSQL

Molte soluzioni multi-tenant in Azure usano il sistema di gestione del database relazionale open source Database di Azure per PostgreSQL. In questo articolo vengono esaminate le funzionalità di Database di Azure per PostgreSQL utili quando si utilizzano sistemi multi-tenant. L'articolo collega anche linee guida ed esempi per l'uso di Database di Azure per PostgreSQL, in una soluzione multi-tenant.

Modalità di distribuzione

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

  • Server flessibile : questa è una scelta ottimale 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 : servizio di database gestito di Azure progettato per le 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 è in fase di ritiro e viene pianificato 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 multitenancy

Quando si crea un'applicazione multi-tenant usando Database di Azure per PostgreSQL, sono disponibili numerose funzionalità che è possibile usare per migliorare la soluzione.

Nota

Alcune funzionalità sono disponibili solo in modalità di distribuzione specifiche. Queste funzionalità sono indicate nelle linee guida riportate di seguito.

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 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. È pertanto 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.

Altre informazioni:

Ridimensionamento orizzontale con partizionamento

Il modello di partizionamento consente di ridimensionare il carico di lavoro in 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 consente 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, che aumentano le prestazioni delle query.

Nota

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.

Altre informazioni:

Pool di connessioni

Postgres usa un modello basato su processo per le connessioni. Questo modello rende inefficiente mantenere un numero elevato di connessioni inattive. Alcune architetture multi-tenant richiedono un numero elevato di connessioni attive, che influiscono 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.

Altre informazioni:

Autori di contributi

Questo articolo viene gestito da Microsoft. È stato originariamente scritto dai collaboratori seguenti.

Autore principale:

Altri collaboratori:

  • John Downs | Principal Customer Engineer, FastTrack per Azure
  • Arsen Vladimirsky | Principal Customer Engineer, FastTrack per Azure
  • Paul Burpo | Principal Customer Engineer, FastTrack per Gli ISV di Azure
  • Assaf Fraenkel | Senior Engineer/Data Architect, Azure FastTrack per ISV e Start-up

Per visualizzare profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Esaminare gli approcci di archiviazione e dati per la multitenancy.