Supervisión continua de aplicaciones y servicios

Completado

En esta unidad, aprenderá a:

  • Cómo la supervisión continua le ayuda a validar el estado, el rendimiento y la confiabilidad de la aplicación y la infraestructura.
  • Cómo la observabilidad hace que los datos estén disponibles desde los sistemas que debe supervisar.
  • Cómo Azure Monitor y Application Insights permiten implementar la supervisión continua.
  • Cómo el Conector de Administración de servicios de TI puede ayudarle a implementar un sistema de control de vales.

¿Qué es la supervisión continua?

El equipo quiere supervisar el sitio web y la infraestructura durante la prueba beta. Tim ha realizado algunas investigaciones y ha descubierto varias cosas.

La supervisión continua hace referencia a los procesos y las tecnologías que se pueden usar para supervisar cada fase del ciclo de vida de la aplicación. La supervisión continua le ayuda a validar la aplicación y el estado, el rendimiento y la confiabilidad de la infraestructura a medida que los cambios pasan del entorno de desarrollo al de producción.

La supervisión continua se basa en los conceptos de integración continua y entrega continua (CI/CD), que le ayudan a desarrollar y ofrecer software de manera más rápida y confiable a los usuarios con el fin de proporcionarles un valor continuo.

¿Qué es la observabilidad?

La observabilidad hace referencia a permitir que los datos estén disponibles desde dentro del sistema que quiere supervisar. La supervisión es la tarea real de recopilar y mostrar estos datos.

¿Qué es Azure Monitor?

Azure Monitor es un servicio de Azure que proporciona observabilidad de la pila completa entre las aplicaciones y la infraestructura tanto en la nube como en el entorno local.

Azure Monitor trabaja con herramientas de desarrollo, como Visual Studio y Visual Studio Code, de forma que puede usarlo durante las fases de desarrollo y pruebas. Se integra con Azure DevOps para proporcionar administración de versiones y administración de elementos de trabajo durante las fases de implementación.

Azure Monitor también se integra con las herramientas Administración de servicios de TI (ITSM) y Administración de eventos e información de seguridad (SIEM) para ayudarle a realizar el seguimiento de problemas e incidentes dentro de los procesos de TI existentes.

Habilitación de la supervisión en todas las aplicaciones

Las aplicaciones son complejas y tienen muchos componentes interconectados. Para visualizar las transacciones y conexiones de forma completa en todo el sistema, debe habilitar la supervisión en todas las aplicaciones y servicios web.

Si no tiene un proyecto en Azure DevOps, puede comenzar con Azure Developer CLI. Azure Developer CLI (azd) es una herramienta de código abierto que acelera el tiempo necesario para obtener la aplicación de un entorno de desarrollo local a Azure. azd proporciona procedimientos recomendados, comandos de fácil uso para desarrolladores que se asignan a las fases clave del flujo de trabajo, tanto si está trabajando en el terminal, el editor o en el entorno de desarrollo integrado (IDE) o CI/CD (integración continua/implementación continua).

Luego, puede combinar Azure Pipelines con Azure Application Insights para agregar la supervisión continua a la canalización de versión. Application Insights es una característica de Azure Monitor que se puede usar para supervisar las aplicaciones activas. En un rato examinaremos más a fondo Application Insights.

Habilitación de la supervisión en la infraestructura

Las aplicaciones solo son tan fiables como su infraestructura subyacente. Tener habilitada la supervisión en toda la infraestructura le ayuda a lograr una observabilidad completa y facilita la detección de las causas principales cuando se produce algún error.

Azure Monitor le ayuda a realizar un seguimiento del estado y el rendimiento de toda la infraestructura híbrida, lo que incluye las máquinas virtuales, los contenedores, el almacenamiento y las redes.

Con Azure Monitor, puede recopilar:

La infraestructura como código le permite describir, mediante código, la infraestructura que necesita para la aplicación. Dado que la infraestructura se describe mediante código, puede seguir los mismos esquemas de desarrollo, pruebas y control de versiones que usan los equipos de DevOps con las aplicaciones.

Para habilitar la supervisión mediante un enfoque de infraestructura como código, puede usar:

  • Plantillas de Resource Manager para habilitar la supervisión y configurar alertas sobre un gran conjunto de recursos.
  • Azure Policy para aplicar distintas reglas sobre los recursos. Azure Policy ayuda a garantizar que esos recursos mantienen la conformidad con los estándares corporativos y los contratos de nivel de servicio (SLA).

Uso de grupos de recursos de Azure para combinar recursos

Una aplicación típica en Azure incluye recursos de proceso, como máquinas virtuales, Azure App Service, microservicios, clústeres de Azure Kubernetes Service (AKS) y Azure Service Fabric. Estas aplicaciones suelen depender de los servicios de datos y de redes, como Azure Event Hubs, Azure Storage, Microsoft SQL Database y Azure Service Bus.

En Azure, un grupo de recursos contiene recursos de Azure relacionados. Combine los recursos de un grupo de recursos para obtener observabilidad completa de todos los recursos que componen las diferentes aplicaciones. Azure Monitor para grupos de recursos proporciona una forma básica de realizar el seguimiento del estado y el rendimiento de toda la aplicación y le permite profundizar en cada componente para que pueda solucionar los errores.

Garantía de calidad mediante la implementación continua

CI/CD permite integrar e implementar automáticamente los cambios de código en la aplicación, en función de los resultados de las pruebas automatizadas. CI/CD simplifica el proceso de implementación y comprueba la calidad del código antes de que los cambios se pasen a producción.

Estas son algunas de las formas recomendadas de garantizar la calidad durante el proceso de implementación:

  • Use Azure Pipelines para implementar una canalización de CI/CD que automatice todo el proceso, como la ejecución de pruebas automatizadas, desde el momento en que confirma el código hasta el paso al entorno de producción.

  • Use las puertas de implementación para agregar supervisión a los entornos anteriores y posteriores a la implementación.

    Las puertas de implementación ayudan a garantizar que se cumplan las métricas clave de estado y rendimiento (KPI) a medida que las aplicaciones pasan de desarrollo a producción. También le ayudan a asegurarse de que las diferencias en el entorno de infraestructura o la manera en que realice el escalado no afecten negativamente a los KPI.

  • Mantenga instancias de supervisión separadas entre sus distintos entornos de implementación, por ejemplo, desarrollo, pruebas, ensayo y producción.

    Tener instancias de supervisión separadas ayuda a garantizar que los datos que se recopilan son significativos en todas las aplicaciones y la infraestructura. Si debe poner datos en correlación entre entornos, puede usar gráficos de varios recursos en el Explorador de métricas o crear consultas de recursos cruzados en Log Analytics.

Creación de alertas sobre las que actuar

Para asegurarse de que los esfuerzos de supervisión sean efectivos, debe notificar a los administradores cualquier problema activo, así como los problemas que prevé que puedan pasar. Algunas maneras de lograrlo son:

  • Crear alertas en Azure Monitor basadas en registros y métricas para identificar los estados de error predecibles.

    El objetivo es asegurarse de que cada alerta represente una condición crítica sobre la que actuar. Se produce un falso positivo cuando la supervisión informa de un problema que no existe realmente. Usar umbrales dinámicos para calcular automáticamente las líneas de base de los datos de métricas en lugar de definir sus propios umbrales estáticos.

  • Definir las acciones de notificación de alertas más efectivas para los administradores.

    Entre las acciones de notificación disponibles de incluyen el servicio de mensajes cortos (SMS), el correo electrónico, las notificaciones push o las llamadas de voz.

  • Usar acciones más avanzadas para conectarse a la herramienta ITSM u otros sistemas de administración de alertas mediante webhooks.

  • Usar runbooks de Azure Automation o webhooks para corregir las condiciones de alerta.

  • Usar la escalabilidad automática para ajustar dinámicamente los recursos de proceso en función de las métricas que recopile.

Creación de paneles y libros

Cuando los equipos de operaciones y desarrollo tienen acceso garantizado a la misma telemetría y las mismas herramientas, pueden ver patrones en el entorno global y minimizar el tiempo medio de detección (MTTD) y el tiempo medio de restauración (MTTR). Para lograr este escenario, puede hacer lo siguiente:

  • Crear paneles personalizados basados en métricas y registros comunes para los diversos roles de su organización.

    Los paneles pueden combinar datos de varios recursos de Azure.

  • Crear libros de Azure Monitor para compartir conocimiento entre los equipos de desarrollo y operaciones.

    Puede preparar un libro a modo de un informe dinámico que contenga gráficos y resúmenes de registros. Los desarrolladores pueden crear guías de solución de problemas para ayudar al departamento de atención al cliente o al equipo de operaciones a solucionar problemas.

Optimización continua

La supervisión es uno de los aspectos fundamentales de la filosofía popular crear, medir y aprender, que recomienda realizar un seguimiento continuo de los indicadores KPI y de las métricas de comportamiento del usuario para posteriormente optimizarlos mediante ejercicios de planeamiento iterativos. Azure Monitor le ayuda a recopilar métricas y registros que son significativos para su negocio y a agregar nuevos puntos de datos en la siguiente implementación.

¿Qué es Azure Application Insights?

Application Insights es un servicio de Application Performance Management (APM) para desarrolladores web. Por ejemplo, puede:

  • Supervisar la aplicación web activa.
  • Detectar automáticamente las anomalías de rendimiento.
  • Diagnosticar errores y comprender lo que los usuarios hacen realmente con la aplicación.

Application Insights funciona con .NET, Node.js, Java y muchos otros lenguajes de programación y marcos de trabajo. Funciona con las aplicaciones hospedadas en la nube o de forma local.

Application Insights proporciona puntos de conexión que puede usar para realizar la integración con sus herramientas y procesos de DevOps existentes. También se integra con Visual Studio App Center, que permite supervisar y analizar la telemetría de las aplicaciones móviles.

¿Cómo funciona Application Insights?

Para empezar, agregue un pequeño paquete de instrumentación a la aplicación. Después, cree un recurso de Application Insights en Azure Portal. La instrumentación supervisa la aplicación y envía datos de telemetría a Azure, a los que puede acceder desde el portal. Recuerde que la aplicación se puede ejecutar en cualquier lugar; no es necesario que esté hospedada en Azure.

Además de las aplicaciones web, puede instrumentar casi cualquier tipo de componente en segundo plano. Incluso puede instrumentar código JavaScript.

Este es un diagrama que muestra el flujo de datos de supervisión de servicios activos hacia Application Insights. A continuación, Application Insights puede generar alertas o enviar datos a otra herramienta para que pueda visualizar y comprender las tendencias.

A diagram that shows the flow of monitoring data from live services into Application Insights.

También puede extraer datos de telemetría de los entornos de host. Estos datos incluyen contadores de rendimiento, Azure Diagnostics y registros de Docker. También puede configurar pruebas de supervisión sintética. La supervisión sintética usa un conjunto de transacciones para evaluar el rendimiento y la disponibilidad. Las transacciones sintéticas son pruebas predecibles que permiten comparar los resultados de una versión a otra.

¿Cuál es la sobrecarga? El impacto sobre el rendimiento de la aplicación suele ser pequeño. Las llamadas de seguimiento no son obstructivas, y se procesan por lotes y se envían en un subproceso independiente.

¿Qué supervisa Application Insights?

Application Insights ayuda a los equipos de desarrollo a comprender el rendimiento de una aplicación y cómo se utiliza.

Application Insights supervisa lo siguiente:

  • Tasas de solicitudes, tiempos de respuesta y tasas de error.

    averigüe qué páginas son las más populares, en qué momento del día y dónde están los usuarios. Vea qué páginas presentan mejor rendimiento. Cómo se comparan los tiempos de respuesta y las tasas de error con los niveles de tráfico.

  • Si los servicios externos están ralentizando las operaciones.

  • Excepciones de la aplicación.

    Analice las estadísticas agregadas o seleccione casos concretos e investigue el seguimiento de pila de solicitudes relacionadas. Application Insights informa de las excepciones que se producen tanto en el servidor como en el cliente.

  • Rendimiento de carga de la página web, notificado por el explorador web del usuario.

  • Llamadas AJAX desde páginas web, como tiempos de respuesta y tasas de error.

  • Recuentos de usuarios y sesiones.

  • Contadores de rendimiento de las máquinas de servidor de Windows o Linux, como CPU, memoria y uso de la red.

  • Diagnóstico de host de Docker o Azure.

  • Registros de seguimiento de diagnóstico de la aplicación. Esta información le permite correlacionar eventos de seguimiento con las solicitudes.

  • Eventos y métricas personalizados que escriba por su cuenta en el código de cliente o de servidor. Por ejemplo, podría realizar el seguimiento de eventos tales como artículos vendidos o partidas ganadas.

¿Dónde veo la telemetría?

Estas son las formas en que puede ver y realizar un seguimiento de los datos de telemetría:

  • Detección inteligente

    Las alertas automáticas se adaptan a los patrones normales de telemetría de la aplicación y se desencadenan cuando algo no responde al patrón habitual. También puede establecer alertas sobre niveles de métricas estándares o personalizadas.

    A screenshot showing Smart Detection in Application Insights.

  • Mapa de aplicación

    El mapa de aplicación le ayuda a detectar los cuellos de botella en el rendimiento o las zonas activas con error en todos los componentes de la aplicación distribuida.

    A screenshot showing the Application Map in Application Insights.

  • Generador de perfiles

    Puede ejecutar Profiler en aplicaciones ASP.NET y ASP.NET Core que funcionan en Azure App Service con el nivel de servicio Básico o superior.

    A screenshot showing the Profiler in Application Insights.

  • Análisis de uso

    Esta característica permite analizar la segmentación y la retención de usuarios.

    A screenshot showing Usage analysis in Application Insights.

  • Búsqueda

    La búsqueda le ayuda a buscar y explorar elementos de telemetría, como vistas de páginas, excepciones o solicitudes web.

    A screenshot showing Search in Application Insights.

  • Explorador de métricas

    Con el Explorador de métricas puede trazar gráficos, correlacionar visualmente tendencias e investigar picos y caídas en las métricas.

    A screenshot showing the Metrics Explorer in Azure Monitor.

  • Secuencia de métricas dinámicas

    Al implementar una nueva compilación, inspeccione los indicadores de rendimiento casi en tiempo real para asegurarse de que todo funciona según lo previsto.

    A screenshot showing the Live Metrics Stream in Application Insights,

  • Log Analytics

    Responda a preguntas complicadas sobre el rendimiento y el uso de la aplicación mediante un lenguaje de consulta eficaz.

    A screenshot showing the Log Analytics in Azure Monitor.

  • Depurador de instantáneas

    Recopile una instantánea de depuración de la aplicación web activa.

    A screenshot showing the Snapshot Debugger in Application Insights.

  • Power BI

    Integre métricas de uso con otra inteligencia empresarial.

    A screenshot showing Power BI.

  • Exportación continua

    Exporte datos sin procesar al almacenamiento tan pronto como lleguen.

    A screenshot showing Continuous Export in Application Insights.

¿Qué es el Conector de Administración de servicios de TI?

El Conector de administración de servicios de TI (ITSMC) para Azure proporciona una integración bidireccional entre las herramientas de supervisión de Azure y las herramientas de ITSM, entre las que se incluyen:

  • ServiceNow
  • Provance
  • Cherwell
  • System Center Service Manager

Puede integrar las herramientas de supervisión de Azure con ITSMC para:

  • Cree o actualice elementos de trabajo en las herramientas de ITSM, en función de las alertas de Azure.
  • Extraer datos de incidentes y solicitudes de cambio de las herramientas de ITSM en Azure Log Analytics.

Las herramientas de supervisión de Azure permiten identificar, analizar y solucionar problemas. Sin embargo, los elementos de trabajo relacionados con un problema normalmente se almacenan en una herramienta de ITSM. Tiene más sentido implementar un sistema de control de vales con ITSMC. De este modo, en lugar de cambiar una y otra vez entre la herramienta de ITSM y las herramientas de supervisión de Azure, puede obtener toda la información que necesita en un solo lugar. ITSMC mejora la experiencia de solución de problemas al reducir el tiempo necesario.