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:

  • Servidor flexible: Esta 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:

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 el servidor flexible de Azure Database for PostgreSQL.

Más información:

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

Otros colaboradores:

  • John Downs | Ingeniero de clientes principal, FastTrack for Azure
  • 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.