Multiinquilino y Azure Database for PostgreSQL
Muchas soluciones multiinquilino en Azure usan el sistema de administración de bases de datos relacionales de código abierto Azure Database for PostgreSQL. En este artículo, se revisan las características de Azure Database for PostgreSQL que son útiles al trabajar con sistemas multiinquilino. En el artículo también se incluyen vínculos a instrucciones y ejemplos sobre cómo usar Azure Database for PostgreSQL en una solución multiinquilino.
Modos de implementación
Hay dos modos de implementación disponibles para Azure Database for PostgreSQL que son adecuados para su uso con aplicaciones multiinquilino:
- Azure Database for PostgreSQL - Servidor flexible : es una buena opción para la mayoría de las implementaciones multiinquilino que no requieren la alta escalabilidad que proporciona Azure Cosmos DB for PostgreSQL.
- Azure Cosmos DB for PostgreSQL: Un servicio de base de datos administrado de Azure diseñado para soluciones que requieren un alto nivel de escala, lo que a menudo incluye aplicaciones multiinquilino. Este servicio forma parte de la familia de productos de Azure Cosmos DB.
Nota:
El servidor único de Azure Database for PostgreSQL está en proceso de retirada y está programado para la retirada el 28 de marzo de 2025. No se recomienda para nuevas cargas de trabajo multiinquilino.
Características de Azure Database for PostgreSQL que admiten sistemas multiinquilino
Al compilar una aplicación multiinquilino con Azure Database for PostgreSQL, hay una serie de características que puede usar para mejorar la solución.
Nota
Algunas características solo están disponibles en modos de implementación específicos. Estas características se indican en las instrucciones siguientes.
Seguridad de nivel de fila
La seguridad de nivel de fila es útil para aplicar el aislamiento de nivel de inquilino cuando se usan tablas compartidas. En PostgreSQL, la seguridad de nivel de fila se implementa mediante la aplicación de directivas de seguridad de fila a las tablas para restringir el acceso a las filas por parte del inquilino.
Puede haber un ligero impacto en el rendimiento al implementar la seguridad de nivel de fila en una tabla. Por lo tanto, es posible que sea necesario crear índices adicionales en tablas que tengan habilitada la seguridad de nivel de fila para garantizar que el rendimiento no se vea afectado. Se recomienda usar técnicas de pruebas de rendimiento para validar que la carga de trabajo cumple los requisitos de rendimiento de línea base cuando la seguridad de nivel de fila está habilitada.
Más información:
Escalado horizontal con particionamiento
El patrón de particionamiento permite escalar la carga de trabajo entre varias bases de datos o servidores de bases de datos.
Las soluciones que necesitan un nivel de escala muy alto pueden usar Azure Cosmos DB for PostgreSQL. Este modo de implementación permite el particionamiento horizontal de inquilinos en varios servidores (nodos). Mediante el uso de tablas distribuidas en bases de datos multiinquilino, puede asegurarse de que todos los datos de un inquilino se almacenan en el mismo nodo, lo que aumenta el rendimiento de las consultas.
Nota:
En octubre de 2022, Hiperescala (Citus) de Azure Database for PostgreSQL pasó a llamarse Azure Cosmos DB for PostgreSQL y se trasladó a la familia de productos de Cosmos DB.
Más información:
- Diseño de una base de datos multiinquilino mediante Azure Cosmos DB para PostgreSQL
- Tablas distribuidas
- Selección de una columna de distribución en una tabla distribuida.
- Guía sobre el uso de Citus para aplicaciones multiinquilino.
Agrupación de conexiones
Postgres usa un modelo basado en procesos para las conexiones. Este modelo hace que sea ineficaz mantener un gran número de conexiones inactivas. Algunas arquitecturas multiinquilino requieren un gran número de conexiones activas, lo que afectará negativamente al rendimiento del servidor Postgres.
La agrupación de conexiones a través de PgBouncer se instala de forma predeterminada en Azure Database for PostgreSQL - Servidor flexible.
Más información:
- PgBouncer en Azure Database for PostgreSQL: servidor flexible
- Agrupación de conexiones en Azure Cosmos DB for PostgreSQL
- Pasos para instalar y configurar el proxy de agrupación de conexiones de PgBouncer con Azure Database for PostgreSQL
Autenticación de Microsoft Entra
Azure Database for PostgreSQL - Servidor flexible admite la autenticación de conexiones mediante Microsoft Entra ID. Esta característica permite que las cargas de trabajo de aplicaciones de un entorno multiinquilino se autentiquen en la base de datos mediante una entidad de servicio o una identidad administrada específicas del inquilino, lo que significa que el acceso a la base de datos puede limitarse a un inquilino individual. Al combinar la autenticación de Microsoft Entra ID con directivas de seguridad de filas específicas del inquilino, puede reducir el riesgo de que una aplicación acceda a los datos de otro inquilino desde una base de datos multiinquilino. Más información:
- Autenticación de Microsoft Entra con el Servidor flexible de Azure Database for PostgreSQL
- Conectar con identidad administrada al Servidor flexible de Azure Database for PostgreSQL
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Autor principal:
- Daniel Scott-Raynsford | Partner Technology Strategist
Otros colaboradores:
- John Downs | Ingeniero principal de software
- Arsen Vladimirskiy | Principal Customer Engineer, FastTrack for Azure
- Paul Burpo | Ingeniero de clientes principal, ISV de FastTrack for Azure
- Assaf Fraenkel | Ingeniero o arquitecto de datos sénior, Azure FastTrack para ISV y empresas emergentes
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Pasos siguientes
Revise los enfoques de almacenamiento y datos para multiinquilino.