Patroni con PostgreSQL

Garanticemos la resiliencia de un clúster Postgres

​Los pilares fundamentales en los sistemas de bases de datos son  la disponibilidad y la integridad de los datos para cualquier organización, por tanto, disponer de alta disponibilidad automatizada es esencial. Los cortes de servicio, no planificados, en entornos de producción, pueden provocar pérdidas de información, largos tiempo de inactividad y malestar en los clientes.

Entre los numerosos sistemas de bases de datos, cabe destacar, PostgreSQL, uno de los sistemas de gestión de bases de datos, Opensource, más robustos y versátiles. Su capacidad para manejar cargas de trabajo exigentes, soportar un amplio rango de tipos de datos y extensiones, ha permitido el uso de PostgreSQL, como motor de base de datos principal. 

En este contexto, no se puede pasar por alto, que PostgreSQL no dispone de forma nativa de failover automático, por lo que es necesario recurrir a herramientas de terceros para disponer de esta funcionalidad. No obstante, debido a que la alta disponibilidad es una necesidad frecuente, tanto las comunidades como empresas privadas han desarrollado diferentes herramientas que permiten desplegar PostgreSQL con alta disponibilidad. En este blog analizaremos algunas de las ventajas y/o funcionalidades de la herramienta OpenSource, Patroni y de los componentes a tener en cuenta durante un despliegue.

Patroni

Patroni, permite administrar y mantener clústers de Postgres de alta disponibilidad. Está escrita en python y requiere del almacén, etcd, para guardar la información del cluster de forma dinámica y en tiempo real. El uso de Patroni permite disponer de las siguientes funcionalidades:

  • Líder (o primario) automático: Patroni selecciona automáticamente un servidor líder (o primario) dentro del clúster de Postgres.
  • Detección y recuperación ante fallos: Patroni detecta los fallos e implementa medidas para recuperar el clúster.
  • Escalabilidad flexible: La escalabilidad es flexible dado que se pueden agregar nuevos esclavos sincronizados con el líder.
  • Configuración dinámica: El uso de etcd permite distribuir la configuración de forma dinámica.

    Ejemplo de despliegue de Patroni

    Aunque hay diferentes arquitecturas para el despliegue de Patroni, una de las más habituales es desplegar tres servicios Patroni, en tres servidores diferentes; tres servicios etcd, en los mismos servidores que Patroni, para reutilizar y minimizar recursos o separarlos en otros tres servidores, y por último, dos servicios de HAProxy.

    Patroni

    El uso del etcd es clave para que Patroni guarde la información de configuración y sincronice dicha información con el resto de nodos de Patroni, otras alternativas al uso del etcd son ZooKeeper, Consul or Kubernetes, a valorar dependiente del entorno y de las necesidades. Así mismo, HAProxy es un balanceador de carga Opensource, que permitirá acceder a la base de datos primaria de forma transparente y desde un único punto.

    Esperamos que hayáis disfrutado de este breve vistazo al fascinante mundo de Patroni. Si os ha gustado y estáis interesados en explorar un ejemplo práctico en acción, no dudéis en quedaros atentos a nuestro Blog. En él, desglosaremos el detalle de un despliegue y te mostraremos cómo combinar Patroni, etcd y HAProxy para formar una infraestructura robusta, que garantice la continuidad del servicio de Postgres e incluso en circunstancias adversas.

    ¡MantenEos al tanto para descubrir cómo Patroni puede marcar la diferencia!

Comparte en:

Categorías

Últimos artículos

Tutorial Proxmox VE

En entornos empresariales, el reto no es solo virtualizar, sino hacerlo con control de costes, rendimiento, seguridad y una operativa [...]

Couchbase en la nueva arquitectura de datos

La nueva complejidad del dato industrial La industria actual está experimentando una transformación sin precedentes. La convergencia entre IoT, inteligencia [...]

Black Duck Continuous Dynamic
Si sus aplicaciones generan ingresos, recogen datos de clientes o habilitan procesos críticos, ya son un objetivo. Los atacantes no [...]
Resumen de privacidad

Esta web utiliza cookies propias y de terceros. Algunas son estrictamente necesarias para que el sitio funcione correctamente y para recordar tus preferencias.

Utilizamos además cookies de analítica y experiencia de usuario (Google Analytics y Microsoft Clarity) que, solo si las aceptas, nos permiten elaborar estadísticas de uso y generar mapas de calor y grabaciones de sesiones de navegación de forma pseudonimizada, con el fin de mejorar la usabilidad de la web.

Puedes aceptar todas las cookies, rechazarlas o configurarlas por categorías en cualquier momento.