Supervisión de DevOps

Lo que no se ve, no se puede medir. Lo que no se puede medir, no se puede mejorar. Este axioma de la administración clásica también se cumple en la nube. La supervisión tradicional de aplicaciones e infraestructuras se basa en si la aplicación se está ejecutando o no, o qué tiempo de respuesta ofrece. Sin embargo, la supervisión basada en la nube ofrece muchas más oportunidades que se deben aprovechar para ofrecer a los usuarios la mejor experiencia.

Supervisión de aplicaciones

Application Insights es el servicio de Azure que permite no solo verificar que la aplicación se ejecute correctamente, sino que facilita la solución de problemas de la aplicación y se puede usar para los datos de telemetría de negocio personalizados, que le indicará si la aplicación se está usando según lo previsto.

Asegúrese de aprovechar toda la información enriquecida que Application Insights puede proporcionar sobre su aplicación. Esta lista no es exhaustiva, pero aquí puede encontrar parte de la visibilidad que Application Insights puede brindarle:

  • Application Insights le ofrece un panel predeterminado con una estimación fundada de las métricas más importantes que le interesarán. Después, puede modificarlo y personalizarlo según sus necesidades.
  • Al instrumentar la aplicación correctamente, Application Insights le proporcionará estadísticas de rendimiento tanto desde la perspectiva del cliente como del servidor.
  • El mapa de aplicación mostrará las dependencias de la aplicación en otros servicios, como las API de back-end o las bases de datos, lo que permite determinar visualmente dónde se encuentran los problemas de rendimiento.
  • La detección inteligente le avisará cuando se produzcan anomalías en los patrones de uso o rendimiento.
  • El análisis de uso puede proporcionarle datos de telemetría sobre qué características de la aplicación se usan con mayor frecuencia, o si se usan todas las funcionalidades de la aplicación. Esta característica es especialmente útil después de los cambios en la funcionalidad de la aplicación, para verificar si los cambios se realizaron correctamente.
  • Las anotaciones de versión son indicadores visuales que se muestran en gráficos de Application Insights sobre nuevas compilaciones y otros eventos, de modo que pueda correlacionar visualmente los cambios en el rendimiento de la aplicación con las versiones de código, lo que permite detectar rápidamente los problemas de rendimiento.
  • El diagnóstico de transacciones entre componentes le permite seguir las transacciones erróneas para buscar el punto de la arquitectura donde se originó el error.
  • Snapshot Debugger, para recopilar automáticamente una instantánea de una aplicación activa en caso de que se produce una excepción, y analizarla en una etapa posterior.

Para usar Application Insights tiene dos opciones: puede usar la supervisión sin código, donde la incorporación de la aplicación en Application Insights no requiere ningún cambio en el código; o la supervisión basada en código, donde se instrumenta el código para enviar datos de telemetría a Application Insights mediante el kit de desarrollo de software para el lenguaje de programación que prefiera.

Por supuesto que puede usar otras herramientas de administración del rendimiento de aplicaciones para supervisar la aplicación en Azure, como NewRelic o AppDynamics, pero Application Insights le proporcionará la experiencia más fluida e integrada.

Supervisión de la plataforma

Application Insights es en realidad uno de los componentes de Azure Monitor, que proporciona métricas y registros completos para comprobar el estado de todo el entorno de Azure. Independientemente de si la aplicación se ejecuta en Virtual Machines, App Services o Kubernetes, Azure Monitor le ayudará a seguir el estado de la infraestructura y a reaccionar rápidamente si hay algún problema.

Asegúrese de supervisar no solo los elementos de proceso que admiten el código de aplicación, sino también la plataforma de datos —las bases de datos, las cuentas de almacenamiento o los lagos de datos deben supervisarse de cerca—, ya que un bajo rendimiento de la capa de datos de una aplicación podría tener consecuencias graves.

Container Insights

Si la aplicación se ejecuta en Azure Kubernetes Service, Azure Monitor le permite supervisar fácilmente el estado del clúster, los nodos y los pods. Container Insights es fácil de configurar para los clústeres de AKS y ofrece información rápida, visual y accionable: desde la presión de los nodos en la CPU y la memoria hasta los registros de los pods de Kubernetes individuales.

Además, para los operadores que prefieren usar la herramienta de supervisión de código abierto de Kubernetes, Prometheus, pero a la vez buscan la facilidad de uso de Container Insights de Azure Monitor, ambas soluciones se pueden integrar entre sí.

El patrón Sidecar agrega un contenedor independiente con las responsabilidades que necesita el contenedor principal. Un caso de uso común es para la ejecución de utilidades de registro y agentes de supervisión.

Supervisión de redes

Independientemente del factor de forma o del lenguaje de programación en el que se base la aplicación, la red que conecta el código a los usuarios puede hacer la experiencia que proporciona la aplicación sea un éxito o un fracaso. Como consecuencia, la supervisión y la solución de problemas de la red pueden ser decisivas para un equipo de operaciones. El componente de Azure Monitor que administra los componentes de red se denomina Network Watcher, una colección de herramientas de supervisión y solución de problemas de red. Algunas de estas herramientas son:

  • Análisis de tráfico le dará una visión general del tráfico en las redes virtuales, así como el porcentaje procedente de direcciones IP malintencionadas, aprovechando las bases de datos de inteligencia sobre amenazas de Microsoft. Esta herramienta le mostrará también los sistemas de las redes virtuales que generan la mayor cantidad de tráfico, de modo que pueda identificar visualmente los cuellos de botella antes de que se conviertan en problemas.
  • El administrador de rendimiento de la red puede generar tráfico sintético para medir el rendimiento de las conexiones de red a través de varios vínculos, lo que le proporciona una perspectiva sobre la evolución de las conexiones WAN y de Internet a lo largo del tiempo, así como ofrecer información de supervisión valiosa sobre los circuitos ExpressRoute de Microsoft.
  • El diagnóstico de VPN puede ayudar a solucionar problemas de conexiones VPN de sitio a sitio que conectan las aplicaciones a los usuarios locales.
  • Connection Monitor le permite medir la disponibilidad de la red entre conjuntos de puntos de conexión.

Otros orígenes de información

No solo los componente de la aplicación producen datos, sino que hay muchas otras señales que debe seguir para que un entorno de nube funcione de manera eficaz:

  • Registro de actividad: Se trata de una auditoría que le permite ver todos los cambios que se han producido en las API de Azure. Puede ser fundamental comprender los cambios o problemas repentinos en el rendimiento, que podrían deberse a una configuración incorrecta de la plataforma de Azure.
  • Azure Service Health: En ocasiones, las interrupciones no se deben a cambios de configuración, sino a problemas en la propia plataforma de Azure. Puede encontrar información sobre cualquier problema relacionado con Azure que afecte a la aplicación en los registros de Azure Service Health.
  • Azure Advisor: Busque aquí recomendaciones sobre cómo optimizar la plataforma Azure para reducir costos, mejorar la posición de seguridad o aumentar la disponibilidad del entorno.
  • Azure Security Center: No es tema de este pilar, pero debe incluirse con fines de exhaustividad: Azure Security Center puede ayudarle a entender si los recursos de Azure están configurados según los procedimientos recomendados de seguridad.

Supervisión de dependencias externas

Al igual que la supervisión de las aplicaciones y la infraestructura de Azure tiene una gran importante, la supervisión de las dependencias externas también es fundamental. Asegúrese de que dispone de soluciones para obtener información sobre el estado y la disponibilidad de las dependencias externas, como servicios de terceros, repositorios de paquetes y otras aplicaciones relacionadas.

Azure Monitor puede desempeñar un rol en la supervisión de dependencias externas. Azure Monitor puede ingerir datos de varios orígenes de datos personalizados, lo que proporciona cierta extensibilidad de lo que se puede supervisar. El uso de orígenes de datos personalizados para dependencias externas le proporciona las funcionalidades de Azure Monitor en prácticamente cualquier servicio, punto de conexión o solución de software.

Para más información sobre la ingesta de datos de orígenes personalizados, consulte los siguientes artículos.

Procedimientos recomendados de la supervisión

Correlación de eventos

Una ventaja fundamental de Azure Monitor es que es la herramienta de supervisión de toda la plataforma de Azure. Como se ha mostrado en las secciones anteriores, Azure Monitor conserva métricas y registros pertinentes para el código de la aplicación, la plataforma en la que se ejecuta, los componentes de datos, así como la red que conecta la aplicación con sus usuarios. Esto permite a los operadores comparar las métricas de diferentes componentes de la aplicación entre sí y descubrir las dependencias que podrían haber quedado ocultas en caso contrario.

Los paneles de Azure ofrecen una excelente manera de exponer a otros usuarios la información enriquecida contenida en Azure Monitor. Asegúrese de crear paneles compartidos para exponer la información pertinente a los distintos grupos implicados en el funcionamiento de la aplicación, incluidos los desarrolladores y operadores. Si se requieren visualizaciones más complejas, los datos de Azure Monitor se pueden exportar a Power BI para el análisis avanzado de datos.

Notificaciones

Ya sea para la supervisión de aplicaciones, de redes o de plataformas, no debe esperar que los operadores examinen los paneles constantemente. En su lugar, se deben usar alertas para enviar notificaciones proactivas a las personas correspondientes que reaccionarán ante ellas. Los grupos de acciones de Azure Monitor se pueden usar para notificar a varios destinatarios, para desencadenar acciones automatizadas o, incluso, para abrir automáticamente vales en herramientas de administración de servicios de TI, como ServiceNow.

La automatización de las alertas es fundamental debido a la naturaleza altamente colaborativa de DevOps y a la velocidad inherente necesaria para la administración eficaz de incidentes. A principios de este año, se publicó un informe de DevOps.com donde se indicaba que el 80 % de los equipos de TI recibe alerta sobre incidentes críticos por correo electrónico. El correo electrónico es una forma eficaz de comunicación, pero no debe ser el método de notificación más común para un problema crítico. En su lugar, si puede definir acciones para que se ejecuten al recibir ciertas alertas (por ejemplo, escalar o reducir verticalmente), el sistema se podrá recuperar automáticamente.

Otras tareas de supervisión

Más allá Azure Monitor, querrá estar atento a ciertos eventos para asegurarse de que la aplicación se ejecute sin problemas:

  • Revise los límites de suscripción de Azure para los recursos y asegúrese de que no estarse acercando demasiado.
  • Comprenda los planes de soporte técnico de Azure. Consulte las preguntas más frecuentes de soporte técnico de Azure. Haga que el equipo se familiarice con el soporte técnico de Azure.
  • Asegúrese de supervisar las fechas de expiración de los certificados digitales o, incluso mejor, configure la renovación automática de los certificados digitales con Azure Key Vault.

Resumen

Puede usar cualquier plataforma de supervisión para administrar los recursos de Azure. La oferta propia de Microsoft es Azure Monitor, una solución integral de métricas y registros, desde la infraestructura hasta el código de la aplicación, incluida la capacidad de desencadenar alertas y acciones automatizadas, además de permitir la visualización de datos.

Pasos siguientes