Multitenancy en Azure Database for PostgreSQL
Veel multitenant-oplossingen in Azure maken gebruik van het opensource-relationele databasebeheersysteem Azure Database for PostgreSQL. In dit artikel bekijken we de functies van Azure Database for PostgreSQL die nuttig zijn bij het werken met multitenant-systemen. Het artikel bevat ook koppelingen naar richtlijnen en voorbeelden voor het gebruik van Azure Database for PostgreSQL in een multitenant-oplossing.
Implementatiemodi
Er zijn twee implementatiemodi beschikbaar voor Azure Database for PostgreSQL die geschikt zijn voor gebruik met multitenant-toepassingen:
- Azure Database for PostgreSQL - Flexibele server : dit is een goede keuze voor de meeste multitenant-implementaties waarvoor geen hoge schaalbaarheid is vereist die wordt geleverd door Azure Cosmos DB for PostgreSQL.
- Azure Cosmos DB for PostgreSQL - Een door Azure beheerde databaseservice die is ontworpen voor oplossingen die een hoog schaalniveau vereisen, dat vaak multitenanted toepassingen omvat. Deze service maakt deel uit van de Azure Cosmos DB-serie producten.
Notitie
Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad en is gepland voor buitengebruikstelling op 28 maart 2025. Het wordt niet aanbevolen voor nieuwe multitenant-workloads.
Functies van Azure Database for PostgreSQL die ondersteuning bieden voor multitenancy
Wanneer u een multitenant-toepassing bouwt met behulp van Azure Database for PostgreSQL, zijn er een aantal functies die u kunt gebruiken om de oplossing te verbeteren.
Notitie
Sommige functies zijn alleen beschikbaar in specifieke implementatiemodi. Deze functies worden aangegeven in de onderstaande richtlijnen.
Beveiliging op rijniveau
Beveiliging op rijniveau is handig voor het afdwingen van isolatie op tenantniveau wanneer u gedeelde tabellen gebruikt. In PostgreSQL wordt beveiliging op rijniveau geïmplementeerd door rijbeveiligingsbeleid toe te passen op tabellen om de toegang tot rijen per tenant te beperken.
Er kan een kleine invloed zijn op de prestaties bij het implementeren van beveiliging op rijniveau in een tabel. Daarom moeten er mogelijk extra indexen worden gemaakt voor tabellen waarvoor beveiliging op rijniveau is ingeschakeld om ervoor te zorgen dat de prestaties niet worden beïnvloed. Het wordt aanbevolen om technieken voor prestatietests te gebruiken om te controleren of uw workload voldoet aan de prestatievereisten volgens de basislijn wanneer beveiliging op rijniveau is ingeschakeld.
Meer informatie:
Horizontaal schalen met sharding
Met het Sharding-patroon kunt u uw workload schalen op meerdere databases of databaseservers.
Oplossingen die een zeer hoog schaalniveau nodig hebben, kunnen Gebruikmaken van Azure Cosmos DB voor PostgreSQL. Deze implementatiemodus maakt horizontale sharding van tenants mogelijk op meerdere servers (knooppunten). Door gedistribueerde tabellen in databases met meerdere tenants te gebruiken, kunt u ervoor zorgen dat alle gegevens voor een tenant worden opgeslagen op hetzelfde knooppunt, waardoor de queryprestaties worden verhoogd.
Notitie
Vanaf oktober 2022 is Azure Database for PostgreSQL Hyperscale (Citus) hernoemd als Azure Cosmos DB for PostgreSQL en verplaatst naar de Cosmos DB-serie producten.
Meer informatie:
- Een multitenant-database ontwerpen met behulp van Azure Cosmos DB for PostgreSQL
- Gedistribueerde tabellen
- Een distributiekolom kiezen in een gedistribueerde tabel.
- Een handleiding voor het gebruik van Citus voor multitenant-toepassingen.
Groepsgewijze verbinding
Postgres maakt gebruik van een procesmodel voor verbindingen. Dit model maakt het inefficiënt om grote aantallen niet-actieve verbindingen te onderhouden. Voor sommige multitenant-architecturen is een groot aantal actieve verbindingen vereist. Dit heeft een negatieve invloed op de prestaties van de Postgres-server.
Verbindingspooling via PgBouncer wordt standaard geïnstalleerd in Azure Database for PostgreSQL - Flexible Server.
Meer informatie:
- PgBouncer in Azure Database for PostgreSQL - Flexibele server
- Groepsgewijze verbindingen in Azure Cosmos DB for PostgreSQL
- Stappen voor het installeren/instellen van de proxy voor PgBouncer-verbindingspooling met Azure Database for PostgreSQL
Microsoft Entra-verificatie
Azure Database for PostgreSQL - Flexible Server biedt ondersteuning voor het verifiëren van verbindingen met behulp van Microsoft Entra-id. Met deze functie kunnen toepassingsworkloads in een omgeving met meerdere tenants worden geverifieerd bij de database met behulp van een tenantspecifieke service-principal of beheerde identiteit, wat betekent dat de databasetoegang kan worden beperkt tot een afzonderlijke tenant. Door Microsoft Entra ID-verificatie te combineren met tenantspecifiek rijbeveiligingsbeleid, kunt u het risico beperken dat een toepassing toegang heeft tot de gegevens van een andere tenant vanuit een database met meerdere tenants. Meer informatie:
- Microsoft Entra-verificatie met Azure Database for PostgreSQL - Flexible Server
- Verbind met beheerde identiteit aan Azure Database for PostgreSQL - Flexibele server
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Hoofdauteur:
- Daniel Scott-Raynsford | PartnerTechnologie Strategist
Andere Inzenders:
- John Downs | Principal Software Engineer
- Arsen Vladimirskiy | Principal Customer Engineer, FastTrack voor Azure
- Paul Burpo | Principal Customer Engineer, FastTrack voor Azure ISV's
- Assaf Fraenkel | Senior Engineer/Data Architect, Azure FastTrack voor ISV's en start-ups
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
Bekijk de opslag- en gegevensbenaderingen voor multitenancy.