¿Qué son los health checks de tu web y por qué son necesarios?

12min

Tener una web siempre disponible es importante para mejorar la experiencia de tus clientes, pero no solo eso, también es esencial para evitar pérdidas de reputación y mantener un buen posicionamiento en buscadores. Conscientes de eso, hoy os vamos a hablar de los health checks, comprobaciones que resultan imprescindibles para conseguir beneficios relacionados con la alta disponibilidad y el rendimiento de las webs. Vamos a contaros en qué consisten, sus tipos y configuraciones útiles que se pueden realizar.

Índice

¿Qué son los health checks de una web?

Como su nombre indica, los health checks son comprobaciones de la salud de una web en un momento dado. En la práctica consisten en verificaciones automáticas y periódicas que evalúan el estado de distintos elementos de un sitio web o aplicación. Algunos health checks pueden indicarnos datos acerca de la disponibilidad otros acerca del rendimiento o los recursos del servidor. Con ellos podemos acompañar el estado de una web para saber hasta qué punto se encuentra dentro de unos parámetros deseables.

Las comprobaciones de salud suelen ejecutarse mediante sistemas de monitorización, que generalmente nos devuelven métricas mediante las cuales podemos deducir si el estado es positivo o negativo. Gracias a ellos podemos apreciar claramente si existen incidencias técnicas que debamos resolver, antes de que afecten gravemente al negocio o a los usuarios finales.

¿Para qué sirven los health checks en una página web?

El objetivo de los health checks consiste en informar a los administradores, de modo que puedan tomarse las debidas acciones para corregir estados preocupantes, incluso antes de que se conviertan en críticos. Dentro de ese ámbito general ofrecen mucha utilidad, como vamos a ver en los siguientes puntos.

Detectar caídas del sitio antes que los usuarios

Los health checks nos permiten identificar posibles interrupciones del servicio, de modo que podamos tomar medidas, antes de que lleguen a ser críticas para el negocio. Con ellos podemos detectar caídas totales o parciales, que nos permitan reaccionar incluso antes de que los usuarios encuentren errores.

Garantizar la disponibilidad del servicio

Mediante la monitorización podemos garantizar que el servicio se encuentra accesible y operativo y los health checks pueden servir para comprobarlo. Esto es especialmente necesario en algunos tipos de servicios críticos, como la banca online, pero también cuando un servicio se ofrece para muchos usuarios que dependen del su correcto funcionamiento para su trabajo en el día a día.

Prevenir errores críticos en producción

Cuando hacemos una actualización del sistema es posible que ocurran ciertos fallos y los health checks pueden ayudarnos a detectarlos. Incluso hay fallos que no aparecen de manera repentina, sino que se van manifestando progresivamente mediante degradaciones leves. En estos casos los health checks nos pueden ayudar también, ya que permiten identificar síntomas antes de que deriven en errores críticos en producción.

Mejorar la experiencia de usuario

Si tenemos correctamente configurados y monitoreados los health checks podemos mejorar la experiencia de usuario, ya que podremos detectar problemas de rendimiento de manera temprana, corrigiendo las causas para que no lleguen a resultar molestos para los usuarios.

Apoyar la toma de decisiones técnicas

Gracias a los datos obtenidos a través de health checks somos capaces de manejar información que nos ayude a tomar decisiones. Por ejemplo, si vemos que se activa muchas veces la alarma de rendimiento es posible que necesitemos escalar la infraestructura o bien hacer una optimización de los recursos.

¿Por qué son necesarios los health checks de tu web?

Como hemos dicho, health checks nos permiten detectar problemas técnicos. Esos problemas pueden frecuentemente derivar en consecuencias negativas, como una reducción de la reputación o disminución de las posiciones en buscadores. Es por eso que son muy necesarios para mantener correctamente un negocio online.

Impacto de la disponibilidad en el SEO

Los motores de búsqueda están constantemente navegando por los sitios que tienen en sus bases de datos, para indexar nuevas páginas o simplemente para saber si éstas responden a los usuarios del buscador.

Si las páginas sufren caídas o tardan demasiado en responder se enteran rápidamente. Lo malo es que esas caídas sean frecuentes porque pueden acabar reduciendo la clasificación del dominio, lo que se traducirá en pérdida de posiciones en los resultados de búsqueda.

Relación entre uptime, conversiones y ventas

En los comercios electrónicos es super importante tener un buen uptime (tiempo en el que el servicio está activo), ya que los periodos de inactividad suponen pérdidas económicas derivadas de ventas que no van a realizarse.

Incluso, si el comercio online tiene poco rendimiento los clientes pueden acabar cansándose, abandonando sus carritos con mayor probabilidad. En el peor de los casos, si el mal funcionamiento persiste puede hacer que los clientes no vuelvan.

Reducción de tiempos de inactividad

Como hemos dicho, gracias a la monitorización continua de los health checks podemos actuar con rapidez cuando hay un tiempo de inactividad, minimizando el impacto del downtime.

Cumplimiento de SLA y estándares técnicos

En algunos servicios es importante cumplir con acuerdos de nivel de servicio (SLA). Para estos casos los health checks nos ofrecen un medio esencial para medir y demostrar el cumplimiento de los compromisos.

Protección de la reputación digital

Lo hemos comentado ya: una web que no funciona frecuentemente o que tiene un rendimiento bajo transmite falta de fiabilidad. Si esta situación ocurre de manera persistente los usuarios acabarán perdiendo confianza, lo que afectará negativamente a nuestra reputación digital.

Tipos de health checks más utilizados

Ahora que ya sabes qué son los health checks y por qué es importante estar atento a ellos de manera continua, vamos a ver cuáles son los tipos más frecuentes. No es que los necesites todos, pero lo ideal es combinar varios de ellos para poder tener una visión más global del estado de la web.

Health checks de disponibilidad (uptime)

Esta comprobación se basa simplemente en verificar si una web responde. Para ello se realiza una simple petición HTTP y se comprueba si se ha producido la respuesta esperada. Es el tipo de comprobación más simple pero resulta esencial en cualquier plan de monitorización.

Health checks de rendimiento

En este caso se miden los tiempos de respuesta, es decir, el tiempo que tarda en cargar una página. Este valor se ajusta a un umbral y la comprobación falla si la respuesta ocupa más tiempo del esperado. Es importante porque a veces la página web puede responder pero el tiempo que ha tardado no es aceptable.

Health checks de servidor

También se pueden configurar health checks a nivel de servidor y resultan bastante frecuentes y útiles. Básicamente comprueban el estado de los recursos del servidor, generalmente el uso de CPU, memoria y disco. Son importantes porque permiten anticipar problemas de saturación de los sistemas, pudiendo incluso servirnos para activar procesos de escalado, o cambios en el balanceo de la carga.

Health checks de base de datos

Los health checks de base de datos verifican si el motor de BBDD está respondiendo adecuadamente, así como el tiempo de respuesta ante determinadas consultas. También son importantes porque la base de datos es crítica para el correcto funcionamiento de la mayoría de las webs.

Health checks de API y servicios externos

Mediante los health checks de API podemos verificar si determinados servicios están funcionando correctamente. Muchas veces pueden ser servicios externos, como pasarelas de pago, sistemas de envío de emails u otros servicios en los que nos lo basemos para funcionar.

Health checks de seguridad

Para terminar este listado queremos mencionar también los health checks de seguridad, que son un poquito más abiertos, ya que permiten detectar problemas diversos como certificados SSL caducados o puertos abiertos indebidamente. También pueden configurarse para detectar comportamientos anómalos que puedan indicar posibles problemas de seguridad.

¿Qué métricas analizan los health checks web?

Para definir si los health checks se han pasado positiva o negativamente se observan métricas de diversos tipos, que permiten evaluar el estado de la web. Dependiendo del tipo de health checks pueden usarse unas métricas u otras. Vamos a ver ahora las más habituales.

Tiempo de respuesta

Como su nombre indica, el tiempo de respuesta mide cuánto tarda la web en contestar a una petición HTTP. Es una métrica muy relevante para configurar los health checks, ya que afecta directamente a la experiencia de usuario y por ende al posicionamiento SEO.

Códigos de estado HTTP

Los códigos de estado HTTP vienen en cada una de las respuestas a solicitudes de recursos en el servidor. Existen estados positivos como 200 y otros negativos como los errores de servidor (500) o los errores 4xx. Acompañar estos códigos es básico para conocer el estado de los servicios.

Uso de CPU y memoria

En este caso se evalúa el porcentaje de uso de recursos como CPU y memoria, lo que permite acompañar la salud del servidor. Si tenemos valores demasiado altos se suele traducir en ralentizaciones del servicio y es un indicador de que puede estar ocurriendo alguna incidencia Si estos valores son altos de manera persistente puede que el servidor está saturado y sea necesario un escalado.

Estado de procesos críticos

A veces es importante saber cómo están ciertos procesos, por ejemplo los workers que trabajan en segundo plano. Si estos están caídos es posible que no se estén realizando tareas transaccionales importantes para el correcto funcionamiento de un servicio,

Errores de conexión y latencia

En este caso se trata de una métrica que analiza fallos de red, pérdida de paquetes o latencias elevadas. Pueden ser con respecto a solicitudes del sistema de monitorización pero también puede analizarse la latencia entre distintos componentes del sistema.

¿Cómo implementar health checks en tu web?

No queremos acabar sin ver cómo podemos implementar estos health checks para tu web. Vamos a ver herramientas y unas consideraciones bastante generales, ya que los health checks deben adaptarse al tipo de web, su arquitectura y el nivel de criticidad del servicio. No obstante, sí que queremos mencionar algunas prácticas comunes que debes seguir para implementarlos de manera más eficaz.

Herramientas de health checks y monitorización

Existen muchas herramientas para crear health checks de una página web, aunque generalmente se encargan de un área concreta.

Para comprobar la disponibilidad de las webs

En este segmento en la mayoría de los casos estamos ante herramientas comerciales, aunque tienes planes gratuitos que en a menudo son bastante generosos.

Te recomendamos explorar UptimeRobot, centrada en checks de disponibilidad (uptime), que tiene un plan gratuito que permite hasta 50 monitorizaciones. Otra alternativa en este mismo segmento es Better Stack, que te ofrece 10 monitorizaciones y una página de estatus. Por último tienes StatusCake, aunque su plan gratuito no es tan atractivo.

Para monitorizar infraestructura

En este segmento encuentras muchas herramientas de código abierto. Una que puedes evaluar es Prometheus, que es un software libre bastante popular. También como software libre tienes Grafana, que tiene como extra la posibilidad de usarlo como un servicio cloud, por lo que te puede ahorrar tiempo de configuración, con plan gratuito también. Otro software libre popular en este segmento es Zabbix.

Configuración de alertas en tiempo real

Los health check están muy bien, pero no es viable estar todo el tiempo pegado a las herramientas de monitorización, por eso es importante configurar alertas. Cualquiera de estos servicios es capaz de realizar notificaciones automáticas por distintos medios, de modo que puedas estar informado de las incidencias en tiempo real.

Frecuencia recomendada de comprobación

Al configurar los health checks también es importante ajustar la frecuencia. Generalmente los servicios gratuitos de monitorización tienen una frecuencia larga entre actualizaciones. Esto es perfectamente viable para la mayoría de los sitios, pero dependiendo de lo crítico que sea un servicio puede que necesites comprobaciones cada menos minutos.

Health checks en entornos cloud y VPS

Muchas veces los proveedores cloud ofrecen herramientas para acompañar el uso de recursos de los servidores, aunque ya depende de cada proveedor lo sofisticadas que sean. En todo caso, podemos instalar también nosotros mismos alguna de las herramientas de software libre que hemos comentado antes para infraestructuras. Incluso, cuando estamos en entornos cloud es habitual combinar la monitorización de los servidores con herramientas de escalado automático, o mecanismos de recuperación automáticos.

Integración con sistemas DevOps

Los health checks también son esenciales en el trabajo DevOps, ya que nos ofrecen datos relevantes que resultarán muy útiles para estar siempre al tanto de posibles problemas que se produzcan después de los despliegues, pudiendo variar el estado del sistema tras cada cambio. Así somos capaces de reducir riesgos en producción.

Fernán García de Zúñiga

Productos relacionados: