Llegamos a ustedes gracias a:



Columnas de opinión

Monitoreo de aplicaciones: Lo que pueden hacer los devops

Por: Isaac Sacolick, presidente de StarCIO

[26/04/2019] Muchos equipos de devops se enfocan en implementar conexiones de CI/CD, automatizar las pruebas de regresión, configurar la infraestructura como código y contener los entornos de tiempo de ejecución de la aplicación. En conjunto, estas prácticas y tecnologías ayudan a las organizaciones a implementar aplicaciones con más frecuencia y reducen los errores de los pasos y configuraciones manuales.

Sin embargo, muchas empresas quieren más y esperan un rendimiento similar al de SSA de sus aplicaciones. No se trata solo de cuán confiable es la aplicación (es decir, cuántos tiempos de disponibilidad) o su tiempo de respuesta. Esas son solo las apuestas de mesa para el monitoreo de aplicaciones. Cada vez más empresas utilizan tecnologías de formas estratégicas en las que los problemas de los usuarios pueden afectar los ingresos o las operaciones.

Ese deseo impulsa un nuevo conjunto de consideraciones de monitoreo alrededor de las aplicaciones. Saber que el servidor web está respondiendo, que un microservicio tiene tiempos de respuesta de milisegundos, y que el rendimiento de la consulta de la base de datos cumple con los SLA, ya no es suficiente.

Piense en la última vez que voló en un avión. Todos esperamos aterrizar de manera segura y estamos enojados si hay retrasos en el vuelo o problemas con nuestro equipaje. Al profundizar, esperamos una mejor experiencia desde el momento en que entramos en el aeropuerto: ¿Cuánto tiempo se tarda en pasar por seguridad? ¿Qué tan agradables son las zonas de espera y podemos encontrar algo para comer? ¿Está abordando el avión sin problemas? ¿El entretenimiento a bordo y la conexión Wi-Fi funcionan correctamente?

Luego piensa en lo que pasa si algo sale mal. Si hay demoras, ¿qué tan precisa y eficiente es la aerolínea en comunicarle el estado y las opciones de vuelo? Si el entretenimiento a bordo no funciona, ¿pueden solucionar el problema mientras están a bordo y rápidamente para que pueda ver una película? Uno considera todas estas cosas cuando responde la pregunta "¿Cómo fue su vuelo?"

Las nuevas preguntas a plantear en el monitoreo de la aplicación

Los desarrolladores, ingenieros y gerentes deben pensar en un conjunto ampliado de requisitos para el monitoreo de aplicaciones. Más específicamente, el equipo de devops que busca sobresalir en el rendimiento operativo, debe considerar un monitoreo que aborde algunas de estas preguntas:

  • ¿Qué tan bien están funcionando sus CI/CD y las conexiones de prueba, y qué tan rápido resuelve el equipo los problemas que rompen la construcción?
  • ¿En qué medida la aplicación responde a las necesidades y expectativas del usuario?
  • ¿Qué mejoras de la aplicación se pueden discernir a partir de los comportamientos de los usuarios?
  • ¿Se pueden aislar y resolver incidentes operacionales con un impacto mínimo en el usuario?
  • ¿Hasta qué punto los desarrolladores se ven afectados por incidentes operacionales (es decir, se involucran en la lucha contra incendios)?
  • ¿Las métricas de uso que aumentan lentamente están comenzando a afectar el rendimiento?
  • ¿Qué tan rápido pueden cargarse, procesarse e informarse los datos de la aplicación?
  • Si la aplicación está en una nube pública, ¿aumentan los costos más rápido de lo esperado y hay otras optimizaciones de costos que valgan la pena considerar?
  • ¿Cómo es que las aplicaciones deben monitorear el contexto, como el navegador, el dispositivo, la ubicación y la hora del día?
  • ¿Qué monitoreo adicional se requiere para las API, especialmente las utilizadas por aplicaciones de terceros?
  • ¿Qué herramientas de monitoreo serán necesarias para aplicaciones de IoT a gran escala, u otras que interactúen con blockchains?
  • ¿Hay nuevas versiones, parches o alertas en algún componente de la aplicación?
  • ¿Hay problemas de seguridad o violaciones en la aplicación?

Este es un ámbito de preocupaciones muy ampliado, que va más allá de lo tradicionalmente agrupado y aprovisionado bajo el monitoreo de aplicaciones tradicionales. Sin embargo, a medida que más empresas operan como compañías de tecnología, los equipos de desarrollo deberían estar pensando en estos requisitos.

Aquí hay cuatro opciones para que los equipos de devops aborden este ámbito de monitoreo de aplicaciones. Al igual que en todas las prioridades de transformación, los equipos de desarrollo deben ser pequeños y centrar sus esfuerzos de monitoreo en las mejores oportunidades para aprender sobre el uso, al tiempo que abordan los requisitos de los mayores riesgos.

1. Información agregada sobre la experiencia del usuario

Si está creando aplicaciones web o móviles, es común integrar un rastreador analítico para capturar usuarios, visitas y otras métricas de uso. Las mediciones más avanzadas también pueden ser capturadas directamente por la aplicación y almacenadas en archivos de registro, bases de datos o canalizadas en flujos de datos. También puede haber datos relevantes en los sistemas de registro de usuarios, las herramientas de inicio de sesión único (SSO) y los sistemas de gestión de relaciones con los clientes (CRM).

En mi experiencia, es más probable que los equipos de negocios y los profesionales del marketing vean el comportamiento del usuario en las aplicaciones orientadas al cliente. El uso y el comportamiento de las aplicaciones internas es más a menudo una idea de último momento, cuando TI implementa aplicaciones empresariales o internas de flujo de trabajo.

En ambos casos, los desarrolladores, los ingenieros de bases de datos y las operaciones de TI tienen un gran interés en capturar métricas, revisar el uso, comprender los patrones y evaluar la satisfacción de los usuarios de la aplicación. Una forma de hacer esto es agregar las métricas relevantes en un almacén de datos o lago de datos, y luego usar herramientas como Tableau, Microsoft PowerBI o una herramienta de visualización de datos de código abierto, para supervisar el rendimiento y descubrir información sobre el comportamiento de los usuarios.

2. Las grandes organizaciones de TI deben definir las métricas de rendimiento de CI/CD

Los grandes equipos de desarrollo que soportan más desarrollo de aplicaciones y arquitecturas de microservicio deben establecer la conexión de CI/CD y las métricas de prueba. Para las grandes organizaciones, estas métricas representan el rendimiento y la calidad del trabajo del equipo, y deben alertar sobre los bloqueos y los problemas de calidad que pueden impedir su progreso. Herramientas como Jenkins, Jira y Git pueden realizar un seguimiento de diferentes aspectos de los procesos de desarrollo, prueba, creación e implementación.

Algunas de estas métricas deben ser estratégicas y vinculadas a los indicadores de rendimiento de los dispositivos clave. Como CIO, estoy más interesado en las métricas estratégicas como las características publicadas por trimestre y las tasas de escape de defectos.

Pero los equipos de desarrollo también deben establecer las métricas que hacen que el desarrollo de software funcione como una línea de ensamblaje de manufactura. Las métricas como la frecuencia de implementación, la duración de la compilación, la tasa de falla de la compilación y la cobertura de pruebas de automatización proporcionan indicadores sobre la eficiencia del equipo y la calidad del trabajo.

3. Utilizar el aprendizaje automático para mejorar la respuesta a incidentes

Una vez que las aplicaciones se están ejecutando en producción, una de las principales preocupaciones de los equipos de desarrollo es manejar los incidentes que afectan a los usuarios, poner a la organización en riesgo o poner al equipo de TI en modo de extinción de incendios. Cuando hay un problema, la pregunta clave es si TI tiene monitores de aplicaciones que lo alerten del problema, y qué tan rápido puede resolverlo. También es importante entender quién se involucra en la investigación, el diagnóstico y la resolución del problema. Si los incidentes se extienden a los desarrolladores, estos problemas suelen tardar más tiempo y son más caros de resolver.

Los equipos de devops proactivos implementan más monitores, registran más datos e invierten en el manejo de excepciones a nivel de código para asegurarse de que haya suficientes indicadores y datos para detectar y diagnosticar problemas. Pero esto también puede abrumar a los equipos cuando una sola aplicación tiene varias alertas provenientes de diferentes herramientas que indican uno o más problemas.

Las herramientas de Nuevas operaciones digitales autónomas y AIops, de proveedores como BigPanda, BMC, HPE, IBM, y Splunk tienen el objetivo de simplificar la administración de las operaciones, y mejorar el tiempo de respuesta a incidentes mediante el aprendizaje automático. Estas herramientas correlacionan la información de múltiples monitores, ayudan a descubrir la causa raíz, pronostican preocupaciones futuras mediante el uso de análisis predictivos, y automatizan elementos de respuesta a incidentes. Las organizaciones que administran experiencias de usuario de misión crítica y aplicaciones a gran escala conectadas a múltiples fuentes de datos, microservicios y API de terceros deben beneficiarse de las herramientas respaldadas por el aprendizaje automático.

4. Desarrollar una visión holística del entorno operativo

El último aspecto del monitoreo requiere desarrollar una visión holística del uso, el entorno, la infraestructura y el ecosistema de las aplicaciones. Piense en ello como prácticas de administración de instalaciones llevadas a las aplicaciones, que muestran todos los activos, factores de mantenimiento de activos, como parches y alertas de seguridad, patrones de uso a largo plazo y actividades anómalas. Esta vista macro proporciona a los equipos de administración de devops un conjunto de indicadores y tareas para mantener mejor una cartera de aplicaciones.

Isaac Sacolick es el autor de Driving Digital: The Leader's Guide to Business Transformation Through Technology, que cubre prácticas tales como agile, devops y la ciencia de datos, que son fundamentales para los programas exitosos de transformación digital. Sacolick es uno de los principales CIO sociales reconocidos, un bloguero de larga data en Social, Agile and Transformation y CIO.com, y presidente de StarCIO.