Monitorización de Frontend para las empresas del siglo 21
mayo 8, 2019Monitorización Multicloud, un ejemplo con AWS y Azure
junio 12, 2019¿Hay vida en tu API?
En la profundidad de una API
Es viernes por la noche, te espera una cena explosiva y una maratón de las que no queman precisamente las piernas. El primer sonido que oyes no es la intro de tu serie favorita, ni el timbrazo del repartidor de comida. ¡Es tu móvil! El servicio de tu empresa esta caído. Como si de un spoiler se tratase entras en “kernel panic”. ¿Qué tocaste? ¿Qué pudo ser? Habías leído los artículos de Frontend y Backend, tiene que haber alertas...Al final haces la maratón sí, pero contra las pérdidas. Después de “revolver” tu sistema: servidor, recursos, logs... No encuentras el origen del fallo. ¿Y si fuera la API? Quizás sea la gran olvidada, la misma que nos ha salvado de reinventar la rueda tantas y tantas veces la que esta vez nos esté estresando. Efectivamente, el error no es problema para ti, en un par de horas todo vuelve a ir como la seda y del fuego solo quedan las cenizas. De ellas tenemos que aprender y te decides a prevenir. ¡Vendetta!
Existe un problema muy común y es no seguir el rendimiento de un código después de implementarlo, dar por supuesto que la ausencia de errores es causa suficiente para cerrar esa tarea para siempre.
Endpoint salud
Dispuestos a solucionar el presente y el futuro de la salud de nuestra API, pensamos que lo principal es comprobar si nuestra API está accesible. Parece lógico usar un ICMP ping que nos retorne un UP o DOWN. Aquí podría terminar esta cita, es lo que muchos de los sistemas verifican, por desgracia. ¿Una simple comprobación ping? ¿Es suficiente con un código de estado 200(OK) para verificar que la aplicación funciona? Sería como descartar una enfermedad por no tener fiebre.La respuesta que busca el consumidor de dicho endpoint es amplia y lo más detallada posible. El paradigma Health Endpoint o“Canario” en el cual se trabaja actualmente para elaborar un estándar, pretende tener un punto de información del estado de nuestra aplicación en todo momento.
Para ello, este endpoint incluye todas las posibles conexiones y su correcto funcionamiento ya sea con la BBDD o incluso con APIs externas, así como los tiempos entre ellas. Hoy en día un servicio no solo está disponible cuando responde, sino cuando su Calidad de servicio (QoS) es aceptable para el sistema o el usuario final.
Más es mejor
¿Qué no es útil cuando se cae tu servicio? Toda información de control parece poca ante un desastre. Poder tener el dato clave, un dedo acusador a esa instancia o ese endpoint, te ahorrara quebraderos de cabeza y dinero. Con este parte médico se pretende tener un tratamiento preventivo ante caídas totales, parciales o una ayuda al control de nuestro sistema. Ya hemos visto lo importante que es la velocidad en la sociedad actual y no lo es menos en la industria 4.0.Llegados a este punto, nos disponemos a controlar los estados de todas las instancias, la latencia, número de solicitudes, tiempo de ejecución de consultas SQL, etc. Dependiendo de nuestra infraestructura o nuestro negocio, nos encontramos con el gran problema tecnológico de estas décadas ¿Cómo gestiono tanta información? El aprovechamiento de un avance depende de nuestra buena “praxis”.
Examinar una respuesta en texto plano ante un problema, es peor que buscar al pobre Ryan en la guerra. Lo mismo aplica como herramienta de control o prevención de errores.
La idea de estandarizar este tipo de información es provocada por el mal uso que a veces se da de estos puntos de información. La tendencia lógica es formatear dicho texto, no solo para su comprensión por personas sino también por sistemas autónomos. Un claro ejemplo es el uso de JSON como fuente de respuesta.
Ejemplo de consulta
GET /api/v1/salud Accept: application/json Content-Type: application/json Authorization: xxxxxxxxxxxxxxx
Ejemplo de respuesta
HTTP/1.1 200 Content-Type: application/json { "estado":200, "BD":{ "estado":"ok", "numero_consultas":2500, "tiempo_ultima_SQL":150 } "server":{ "status":"ok", "tiempo_respuesta":100, "procesos":222, "memoria_libre":4650 } }
Valor añadido
Ahora al menos, somos capaces de leer con más claridad los síntomas de nuestra API. Es cierto que hemos conseguido un ligero nivel de pragmatismo, aunque no es menos cierto que la verdad de nuestro negocio aún se oculta en búsquedas y controles, lejos de una información concisa y relevante de nuestro estado actual.Tener datos no es el problema, sino hacerlos relevantes y útiles para nuestra empresa. La solución óptima y que cada día tienen más empresas, es el uso de dashboards sobre una nube de datos, que bien gestionados nos dan no solo la información presente, sino que nos permiten revisar la pasada, pudiendo así predecir y tomar decisiones sobre una base muy sólida.
Este es un pequeño ejemplo de lo que un dashboard puede simplificar nuestros datos. En él tenemos 4 APIs enviando datos de su estado. La primera gráfica muestra el tiempo medio de respuesta por API ponderado en el tiempo, representando los pesos de cada uno. La segunda nos muestra por colores el valor que más se repite, muestra tendencias generales, cuanto más oscuro mayor peso tiene ese valor, en este caso nos centramos en los tiempos de respuesta.
No deja de ser una mínima muestra del potencial que tienen estas soluciones. La representación gráfica de los datos junto a sus históricos es una potente herramienta que facilita enormemente el control de tu negocio. Podemos ser aún más pragmáticos y añadir comprobaciones, generando datos agregados, una forma de simplificar y dar aún más valor a la información. ¿ Por qué no abstraer los datos actuales y agregarlos en uno global referente al estado actual? Organizando cada métrica dentro de unos márgenes de control, si dentro del conjunto de datos de la API, alguno incumple sus márgenes, se indicará con un color rojo o naranja según su gravedad. Et voilà! De un solo vistazo y un solo dato nos asegura tener bajo control nuestra API.
Todo esto es lo que ofrecemos desde Muutech, un control de tus sistemas incluyendo las APIs, usando los datos como aliados. Personalizar la visión que tienes de tus sistemas, generar alertas y medir el estado de tu infraestructura digital en tiempo real, con el fin de tomar decisiones que mejoren tu negocio.
No deja de ser una mínima muestra del potencial que tienen estas soluciones. La representación gráfica de los datos junto a sus históricos es una potente herramienta que facilita enormemente el control de tu negocio. Podemos ser aún más pragmáticos y añadir comprobaciones, generando datos agregados, una forma de simplificar y dar aún más valor a la información. ¿ Por qué no abstraer los datos actuales y agregarlos en uno global referente al estado actual? Organizando cada métrica dentro de unos márgenes de control, si dentro del conjunto de datos de la API, alguno incumple sus márgenes, se indicará con un color rojo o naranja según su gravedad. Et voilà! De un solo vistazo y un solo dato nos asegura tener bajo control nuestra API.
Todo esto es lo que ofrecemos desde Muutech, un control de tus sistemas incluyendo las APIs, usando los datos como aliados. Personalizar la visión que tienes de tus sistemas, generar alertas y medir el estado de tu infraestructura digital en tiempo real, con el fin de tomar decisiones que mejoren tu negocio.
Conclusión:
La salud de tu empresa y por consiguiente la de tus tranquilos fines de semana, depende de una correcta e inteligente implantación y seguimiento de tus recursos. La vigilancia y la mejora de nuestros activos deben de ser constantes.Las APIs son cada día una pieza más importante en muchos servicios, ello hace que sus caídas puedan provocar verdaderos problemas en los sistemas de tu empresa. La única forma de prevenir fallos como el expuesto, es prevenir creando un buen sistema de gestión de datos para el análisis y la anticipación a fallos siendo este nuestro canario en la mina de nuestra API, alertándonos en el caso de haber algún fallo o anomalía.
A pesar de lo tedioso que parece resultar esta gestión, existen a día de hoy soluciones como Muutech que trabajan para hacer de los datos un valor importante de tu negocio. Apoyándose en ellos para prevenir las caídas y analizar la infraestructura de la manera más rápida sintetizando y personalizando este análisis del presente y el pasado, ayudando a tener un mejor futuro.
CEO & MANAGING DIRECTOR
Experto en monitorización IT, sistemas y redes.
Minerva es nuestra plataforma enterprise-grade de monitorización basada en Zabbix y Grafana.
¡Te ayudamos a monitorizar tus equipos de red, comunicaciones y sistemas!
Suscríbete a nuestra Newsletter