Monitoreo de aplicaciones
Un punto muy importante que se debe tener en cuenta cuando se opera a la velocidad y escala de las tecnologías Cloud, es la posibilidad de monitorear y observar el comportamiento de las aplicaciones. En algún momento nos hemos realizado las siguientes preguntas: ¿Mi sistema está funcionando correctamente o no?, ¿Los recursos que he considerado estarán bien? o ¿Por qué en algunos días es más lenta mi aplicación?
¿Por qué es tan importante monitorear el funcionamiento de las aplicaciones?
Como los usuarios confían en las aplicaciones para satisfacer sus necesidades cotidianas, el éxito de un negocio es directamente proporcional al rendimiento de sus aplicaciones. Por lo tanto, el monitoreo del funcionamiento y rendimiento de aplicaciones es crítico para que cualquier empresa pueda ofrecer y mantener una buena experiencia a sus usuarios. El rastreo, descubrimiento y diagnóstico de una aplicación, es la habilidad para identificar en que parte de la aplicación está causando problemas e indicar rápidamente los motivos, esto permitirá:
- Mejorar la toma de decisiones en base a evidencias
- Prevenir eventos críticos
- Reducir la inactividad
- Medir tiempo de respuesta
- Identificar punto o procesos críticos
- Hallar umbrales máximos y mínimos
¿Cómo funciona Azure Dashboard?
Azure Dashboard provee de un espacio de trabajo donde se pueden monitorear diferentes servicios y lanzar rápidamente tareas para las operaciones diarias. Se cuenta con tableros personalizados basados en servicios, recursos, log de aplicaciones, etc.
Se pueden crear varios dashboards de manera que cada uno incluya paneles en los que se visualicen datos procedentes de varios recursos de Azure en diferentes suscripciones y grupos de recursos. Dentro, podemos anclar distintos gráficos y vistas de Azure Application Insights para crear paneles más personalizados que proporcionen una descripción completa del estado y el rendimiento de la aplicación.
Dentro del Centro de Innovación del BCP, manejamos el monitoreo de las aplicaciones basado en dos puntos importantes:
- Monitoreo de los recursos donde se alojan los proyectos: Estos son los más sencillos de implementar y nos permite medir el comportamiento a nivel de los recursos aprovisionados para cada servicio como, por ejemplo: uso de CPU, memoria, bytes de transferencia, cantidad de conexiones a una base de datos, etc.
- Monitoreo de Procesos dentro de la aplicación: Para lograr medir procesos de negocio, nos basamos en los logs de los servicios y por medio de Azure Log Analytics junto con Kusto (KQL) se realizan las consultas en los logs para hallar métricas de comportamiento de los usuarios dentro de las aplicaciones y servicios. Para eso, previamente dejamos rastros en los logs que nos permitan identificar y contabilizar los eventos para luego ser tomados como indicadores en el monitoreo y análisis de comportamiento.
Por otro lado, luego de analizar el comportamiento de los servicios o procesos, es muy importante que estos indicadores nos permitan alertar sobre algo inusual en base a umbrales identificados y analizados previamente. Para eso, lo complementamos con Azure Monitor Alerts, el cual nos permite crear reglas con grupos de notificaciones y eventos en los cuales se debe alertar. Por último, para hacer un panel más personalizado e incluyendo umbrales y reglas desde el mismo panel nos apoyamos de Azure Analytics Workbooks, el cual también permite trabajar con el lenguaje Kusto.