Ir al contenido

¿Qué es un proxy de base de datos?

·655 palabras·4 mins
Alejandro Duarte
Autor
Alejandro Duarte
Alejandro Duarte es Ingeniero de Software, escritor, Ingeniero de Relaciones con Desarrolladores (DevRel) y consultor en desarrollo de software. Ha programado computadores desde mediados de los 90s. Comenzando con BASIC, Alejandro transitó a C, C++ y Java durante sus años académicos en la Universidad Nacional de Colombia. Se mudó primero al Reino Unido y luego a Finlandia para profundizar su participación en la industria del código abierto. Alejandro es reconocido en círculos de Java y MariaDB.

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.

El proxy inteligente de base de datos MariaDB MaxScale

¿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:

¿Te gustó este artículo? Puedo ayudar a tu equipo a implementar soluciones similares. Contáctame para saber más.

Relacionados