Nota: Traducido de la versión original en Inglés.
Un proxy es un software servidor, normalmente instalado en una máquina separada, que reenvía solicitudes a otros servidores en nombre de los clientes. Cuando el proxy está en la red local del cliente, se le llama simplemente proxy o forward proxy. Si está en la red local del servidor, se le llama proxy inverso (reverse proxy). Los proxies pueden agregar funcionalidad a un sistema sin tener que cambiar o incluso notificar a clientes y servidores.
¿Qué es un proxy de base de datos?#
Un proxy de base de datos es un tipo de proxy inverso diseñado especialmente para bases de datos. Toma solicitudes de clientes como aplicaciones web y las reenvía a un servidor de base de datos utilizando configuraciones específicas para bases de datos. Un proxy de base de datos inteligente entiende SQL y puede tomar decisiones sobre cómo tratar las solicitudes basadas en reglas configurables. Este entendimiento de los protocolos y lenguajes de base de datos permite a los proxies de base de datos agregar funcionalidad, principalmente en cuatro categorías:
- Alta disponibilidad. Por ejemplo, failover automático y repetición de transacciones.
- Escalabilidad: La capacidad de agregar o eliminar nodos en el clúster de base de datos de forma transparente sin tener que reconfigurar o reiniciar una aplicación.
- Integraciones: Por ejemplo, importar o exportar datos desde y hacia temas (topics) de Kafka o conectar aplicaciones desarrolladas con un conector de base de datos NoSQL a backends SQL.
- Seguridad: Por ejemplo, establecer límites de consultas y resultados o enmascaramiento automático de datos.
¿Cuáles son las ventajas de los proxies de bases de datos?#
La principal ventaja de usar un proxy de base de datos es que aísla la topología de la base de datos de la configuración de la aplicación:
- Los desarrolladores no necesitan saber sobre réplicas o nodos del clúster.
- Para los desarrolladores, todo parece una instancia de base de datos independiente.
- Los DBAs pueden agregar o eliminar réplicas y nodos del clúster cuando sea necesario.
- No es necesario que los desarrolladores implementen cosas como balanceo de carga o enmascaramiento de datos.
- Menos código resulta en un desarrollo más rápido, menos mantenimiento y mayor fiabilidad.
- Los DBAs pueden hacer cambios sin interrumpir las aplicaciones.
- Son transparentes y ocultos de la configuración de la aplicación.
- Ocultan completamente los fallos.
- No es necesario que los desarrolladores creen nuevas conexiones o reintente transacciones.
- No es necesario que los DBAs realicen un failover manual después de ser alertados.
¿Cuáles son las desventajas de los proxies de bases de datos?#
Al evaluar los proxies de bases de datos, debes considerar lo siguiente:
- Un proxy de base de datos es un nuevo elemento en la infraestructura.
- Requiere configuración (siempre usa un proxy de base de datos que ofrezca buenas opciones de configuración).
- Puede incrementar costos.
- Licencias o uso en la nube (verifica las licencias antes de elegir un proxy de base de datos).
Si tu aplicación se conecta a una sola instancia de base de datos y no requiere cosas como alta disponibilidad o escalabilidad, un proxy de base de datos introduce más complejidad de la necesaria. Sin embargo, si necesitas otras características como enmascaramiento automático de datos o integraciones transparentes con Kafka o protocolos NoSQL, un proxy de base de datos es útil incluso si no hay necesidad de alta disponibilidad y escalabilidad.
¿Cómo usar un proxy de base de datos?#
Un proxy de base de datos se instala en una máquina y se configura para monitorear los nodos de la base de datos y manejar solicitudes según requisitos específicos. Por ejemplo, MariaDB MaxScale se puede usar para realizar división de lectura-escritura transparente donde las inserciones, eliminaciones y actualizaciones por medio de SQL se enrutan a nodos primarios (o maestros), y los SELECT
de SQL a nodos réplica, permitiendo escalar sin tiempo de inactividad (tanto hacia arriba como hacia abajo). Puedes ver esto en acción en este video: