En la economía digital actual, la velocidad lo es todo, especialmente cuando hay lentitud en aplicaciones y sitios web a los que acceden miles de usuarios. Esto tiene un impacto directo y perjudicial en la productividad del negocio, las ganancias e incluso en la propia imagen de la marca.
Dada la complejidad de las infraestructuras y las aplicaciones actuales, esto no es fácil de lograr. Las plataformas de desarrollo de aplicaciones móviles, las infraestructuras de Nube, los servidores virtualizados y en contenedores, las arquitecturas de aplicaciones IoT y un largo etcétera hacen que la gestión del rendimiento sea un desafío.
Además, con las diversas interdependencias entre componentes, es difícil identificar la causa de la lentitud de la aplicación. Una de las preguntas más difíciles que enfrentan los propietarios de aplicaciones, desarrolladores y gerentes de TI es "¿por qué mi aplicación es lenta?" para responder a esta pregunta debemos considerar múltiples factores como si la infraestructura de nube que usamos está sufriendo una degradación o si existe algún otro factor externo que esté afectando el rendimiento o es propiamente un problema interno.
En torno a las prácticas técnicas, cuando una aplicación es lenta, debemos contestar a las siguientes inquietudes: ¿Desde cuándo se presenta este comportamiento? y ¿Qué componente causa la lentitud?, aquí es donde entran en juego las técnicas de monitoreo. Algunos de los enfoques tradicionales para la supervisión del rendimiento incluyen la ejecución de pruebas de ping en aplicaciones sospechosas de ser lentas, ejecutar pruebas de telnet a los puertos de la aplicación para el diagnóstico y medir las métricas del nivel del servidor (CPU, memoria, disco, etc.).
Pero estos no son suficientes para localizar los cuellos de botella en los entornos de aplicaciones distribuidas en entornos híbridos de hoy: nube pública, nube privada o sistemas hosteados en centros de datos. Las organizaciones deben poder conectar el viaje del usuario con la infraestructura de la aplicación y comprender cuándo, dónde y por qué la experiencia del usuario se ve afectada durante el acceso a la aplicación.
Supervisión del rendimiento de las aplicaciones
El monitoreo o la supervisión del rendimiento de las aplicaciones (Application Performance Monitoring o APM) son herramientas y procesos diseñados para ayudar a garantizar que los usuarios de las aplicaciones obtengan los estándares de rendimiento y tengan una experiencia de usuario (UX) valiosa.
Entonces cuando hablamos de APM nos referimos a administrar el rendimiento de las aplicaciones (monitoreo) de manera que podamos determinar cuándo se comportan normalmente y cuándo se comportan de manera anormal. Además, cuando algo sale mal y una aplicación se comporta de manera anormal, necesitamos identificar la causa raíz del problema rápidamente para poder remediarlo.
Con un APM podemos observar cosas como:
- El hardware físico sobre el que se ejecuta la aplicación.
- Las máquinas virtuales en las que se ejecuta la aplicación.
- La JVM que aloja el entorno de la aplicación.
- El contenedor (servidor de aplicaciones o contenedor web) en el que se ejecuta la aplicación.
- El comportamiento de la aplicación en sí.
- Infraestructura de soporte, como comunicaciones de red, bases de datos, cachés, servicios web externos y software heredado.
Una vez que hemos capturado los datos de rendimiento de todas estas fuentes, debemos interpretarlas y correlacionarlas con respecto al impacto en las transacciones comerciales. Aquí es donde realmente entra en juego la magia de APM. Los proveedores de APM emplean expertos en diferentes tecnologías para que puedan comprender, en un nivel profundo, qué significan los datos de rendimiento en cada sistema o software individual y luego agregar esos datos en una vista holística de su aplicación.
¿Qué sucede si no cuento con un APM?
A continuación, consideraremos cómo identificamos la causa raíz de un problema de rendimiento sin una solución APM. La mayoría de las veces hacemos una de dos cosas:
- Revisar registros (logs) de tiempo de ejecución
- Intentar reproducir el problema en un entorno de desarrollo / prueba
Los archivos de registro son excelentes fuentes de información y muchas veces pueden identificar defectos funcionales en la aplicación pero cuando experimentamos problemas de rendimiento que no generan excepciones, generalmente, sólo introducen confusión adicional.
Alternativamente, y generalmente en paralelo, el equipo de desarrollo tiene la tarea de reproducir el problema en un entorno de prueba. El desafío aquí es que generalmente no tenemos suficiente contexto para que estos intentos sean fructíferos. Además, si se puede reproducir el problema en un entorno de prueba, ese es sólo el primer paso, ahora necesitamos identificar la causa raíz del problema y resolverlo.
Para resumir, APM es importante para poder comprender el comportamiento de la aplicación, detectar problemas antes que los usuarios se vean afectados y resolverlos rápidamente.
En términos comerciales, una solución APM es importante porque reduce el tiempo medio de resolución (MTTR), lo que significa que los problemas de rendimiento se resuelven de manera más rápida y eficiente, de modo que se reduce el impacto en el resultado final de tu negocio.
Para responder a la pregunta "¿por qué la aplicación es lenta?", es necesario obtener información correlacionada sobre todos los eventos de la experiencia del usuario, las transacciones de red, el rendimiento de la aplicación y el estado de la infraestructura.
El monitoreo del rendimiento de las aplicaciones puede ser muy sencillo cuando sabes cómo hacerlo bien. Experimenta el poder de los APM.
Recuerde, contar con un aliado de tecnología con la experiencia y el conocimiento necesario, le ayudará a lograr sus objetivos comerciales, lo invitamos a visitar
https://www.kionetworks.com/
Fuentes:
Oleynik,Yury. (s/a) GO BEYOND DATA Real-time Analytics for Application Performance Management https://www.performance-symposium.org/fileadmin/user_upload/palladio-conference/2015/slides/05_YOleynik.pdf consultado febrero, 2020.
Seifermann, Valentin. SemanticScholar. (2017). Monitoreo del rendimiento de la aplicación Stuttgart Bachelorarbeit en sistemas basados en microservicios https://pdfs.semanticscholar.org/80ee/39676dbde38b1e7dea153de70d1e9381865b.pdf consultado febrero, 2020.