Ir al contenido

¿Qué es un proxy de base de datos?

·655 palabras·4 mins
DevOps Bases de Datos
Alejandro Duarte
Autor
Alejandro Duarte
Alejandro Duarte es un Ingeniero de Software, escritor publicado y galardonado. Actualmente, trabaja para MariaDB plc como Ingeniero de Relaciones con Desarrolladores (Developer Relations Engineer). Comenzó su trayectoria en programación a los 13 años con BASIC en una rudimentaria pantalla negra, para lugo rápidamente transitar a C, C++ y Java durante sus años académicos en la Universidad Nacional de Colombia. Trasladándose primero al Reino Unido y luego a Finlandia, Alejandro profundizó su participación en la comunidad de código abierto. Es reconocido en los círculos de Java, acreditado con artículos y videos que acumulan millones de vistas, y presentaciones en eventos internacionales.

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

Demostración de replicación en MariaDB
·307 palabras·2 mins
DevOps Bases de Datos
Nota: Traducido de la versión original en Inglés. La replicación de bases de datos es un proceso que copia datos de una base de datos (primaria) a otra (réplica).
Construyendo un clúster de Kubernetes en Raspberry Pi (con automatización)
·690 palabras·4 mins
DevOps
Nota: Traducido de la versión original en Inglés. Hace unos meses, tuve la suerte de conseguir un montón de minicomputadoras Raspberry Pi de MariaDB Corporation.
¿Qué es JPA?
·366 palabras·2 mins
Programación Bases de Datos
Nota: Traducido de la versión original en Inglés. JPA significa Jakarta Persistence API (anteriormente, Java Persistence API).