Blog de Diego Prieto

Escalado con Patroni

En la continuación de la serie sobre Patroni que encontrarás en el blog, vamos a ver cómo escalar nuestro cluster. Para ello, partimos de la base tratada en el anterior post sobre la alta disponibilidad en PostgreSQL, que si no lo has visto o necesitas refrescar la memoria, aquí te lo dejamos.

Pero… ¿Por qué escalar?

Nos referimos a escalar a la capacidad de llevar a cabo una ampliación de los recursos del mismo, cuando hablamos de un sistema informático. Si este sistema es elástico podremos, además de ampliar, reducir los recursos. Esta ampliación puede ser de dos tipos: escalado horizontal o escalado vertical. El escalado horizontal consiste en añadir más instancias como las que está prestando ya el servicio, mientras que el escalado vertical consiste en ampliar los recursos de las instancias ya existentes.

Seguir leyendo

Bloat en PostgreSQL y el uso de vacuum

A menudo el performance de PostgreSQL se degrada con el tiempo cuando existe un alto volumen de lectura/escritura, lo que acaba provocando lentitud. Esto en muchas ocasiones es debido a que se produce el efecto conocido como “bloat”. No obstante, una correcta configuración y mantenimiento de PostgreSQL puede evitar estas situaciones y mantener nuestra base de datos con un rendimiento óptimo.

Al igual que muchos otros sistemas de base de datos, PostgreSQL está diseñado para permitir consultas de solo lectura de forma concurrente mientras se realizan actualizaciones de los datos. Esto es posible gracias al Multi-Version Concurrency Control (MVCC), un sistema que permite lecturas continuas generando múltiples snapshots de las transacciones y consolidándose finalmente. De esta manera se produce un mayor uso de disco para almacenar dichos snapshots, conociéndose como bloat.

Seguir leyendo

Unassigned shards y watermarks de Elasticsearch

Elasticsearch es un motor de búsqueda y analítica distribuido, gratuito y abierto para todos los tipos de datos, incluidos textuales, numéricos, geoespaciales, estructurados y no estructurados. Está desarrollado a partir de Apache Lucene y fue presentado por primera vez en 2010. Elasticsearch es el componente principal del Elastic Stack (ELK Stack), compuesto por Elasticsearch, Logstash y Kibana, que permite la ingesta, el enriquecimiento, el almacenamiento, el análisis y la visualización de datos.

Por su parte, Kibana es una aplicación de frontend que proporciona capacidades de visualización de datos y de búsqueda para los datos indexados en Elasticsearch, además de otras tareas de administración. Logstash es el software encargado de la ingesta, transformación y envío de los datos, en este caso a Elasticsearch.

Seguir leyendo

Configurando MySQL en Managed Database de Digital Ocean

Digital Ocean, al igual que muchos otros proveedores cloud, ofrece servicios de base de datos administrados, siendo uno de los motores de base de datos disponibles y de los más utilizados es MySQL.

La idea de este tipo de servicios es facilitar al usuario la creación y administración del mismo, con interfaces web intuitivas y limitadas a lo imprescindible. Además, incluye tareas administrativas como los backups, por lo que es un servicio que está listo para utilizar.

Seguir leyendo

Alta disponibilidad en PostgreSQL con Patroni (III)

En esta tercera parte de nuestra serie sobre la alta disponibilidad en PostgreSQL con Patroni, vamos a ver cómo configurar un servicio de HAproxy para acceder al cluster de Patroni y a obtener más información sobre su API y patronictl.

Si no has visto la primera y la segunda parte de esta serie, te recomendamos que lo hagas para ver por qué estamos utilizando Patroni, y cómo hemos configurado el servicio.

Al finalizar el anterior artículo ya contábamos con un cluster funcional de Patroni, pero para conectar al servicio, lo teníamos que hacer nodo a nodo. Esto no es funcional ya que en caso de fallo de alguno de los nodos, deberíamos elegir el nuevo leader para conectar.

Seguir leyendo

Alta disponibilidad en PostgreSQL con Patroni (II)

En el anterior artículo de esta serie, describimos nuestra solución de Patroni con etcd y haproxy para desplegar un servicio de PostgreSQL en alta disponibilidad.

Ha llegado el momento de configurar los servicios planificados. En este artículo configuraremos todo lo relacionado con el cluster de PostgreSQL y, en el próximo, finalizaremos con la configuración de HAproxy para acceder al cluster de forma transparente.

Seguir leyendo

Alta disponibilidad en PostgreSQL con Patroni (I)

PostgreSQL es el segundo sistema de gestión de base de datos más popular y el más querido por los desarrolladores según la encuesta anual de StackOverflow en 2022. Además está muy vinculado con el desarrollo en python.

En este artículo vamos a configurar un cluster de PostgreSQL con alta disponibilidad.

Para contar con alta disponibilidad en un sistema de base de datos son necesarios dos puntos: replicación entre instancias y un failover automático.

Seguir leyendo

Análisis de logs de ALB con Athena

Si has mantenido algún proyecto en AWS es muy probable que estés familiarizado con los Application Load Balancer (ALB). Se trata de un servicio administrado de AWS que facilita un balanceador elástico que actúa como la capa de aplicación, es decir, la séptima capa del modelo de interconexión de sistemas abiertos (OSI). Es ampliamente utilizado junto a los grupos de autoscaling (ASG) para ofrecer un servicio web con alta disponibilidad.

Seguir leyendo

Páginas

Suscribirse a RSS - Blog de Diego Prieto

Newsletter de STR Sistemas

Suscríbete a nuestra newsletter para recibir contenido interesante del mundo DevOps y artículos escritos por nuestros técnicos

¡Usamos cookies propias y de terceros para mejorar tu experiencia en esta web! Si sigues navegando, consientes y aceptas estas cookies en tu ordenador, móvil o tablet.

Más información sobre las cookies y cómo cambiar su configuración en tu navegador aquí.

x