Supervisión de aplicaciones web en Azure

Azure App Service
Azure Log Analytics
Azure Monitor

Este escenario aborda los servicios de supervisión que puede usar y describe un modelo de flujo de datos para su uso con varios orígenes de datos. Cuando se trata de supervisión, muchas herramientas y servicios funcionan con implementaciones de Azure. En este escenario, hemos elegido servicios disponibles precisamente porque son fáciles de consumir. Más adelante en este artículo se tratan otras opciones de supervisión.

Architecture

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

Este escenario usa un entorno administrado de Azure para hospedar una aplicación y la capa de datos. Los datos fluyen por el escenario de la siguiente manera:

  1. Un usuario interactúa con la aplicación.
  2. El explorador y el servicio de aplicaciones emiten datos de telemetría.
  3. Application Insights recopila y analiza datos de mantenimiento, rendimiento y uso de la aplicación.
  4. Los desarrolladores y los administradores pueden revisar la información de mantenimiento, rendimiento y uso.
  5. Azure SQL Database emite datos de telemetría.
  6. Azure Monitor recopila y analiza las cuotas y métricas de la infraestructura.
  7. Log Analytics recopila y analiza registros y métricas.
  8. Los desarrolladores y los administradores pueden revisar la información de mantenimiento, rendimiento y uso.

Componentes

  • Azure App Service es un servicio de PaaS para crear y hospedar aplicaciones en máquinas virtuales administradas. La infraestructura de proceso subyacente en la que se ejecutan las aplicaciones se administra automáticamente. App Service proporciona supervisión de las cuotas de uso de los recursos y las métricas de la aplicación, registro de la información de diagnóstico y alertas basadas en métricas. Mejor aún, puede usar Application Insights para crear pruebas de disponibilidad para probar la aplicación desde distintas regiones.
  • Application Insights es un servicio de administración del rendimiento de las aplicaciones (APM) extensible para desarrolladores y admite varias plataformas. Supervisa la aplicación, detecta anomalías de la aplicación como un rendimiento deficiente o errores y envía datos de telemetría a Azure Portal. Application Insights se puede utilizar también para el registro, el seguimiento distribuido y las métricas de aplicación personalizadas.
  • Azure Monitor ofrece métricas y registros de las infraestructuras de base para la mayoría de los servicios de Azure. Puede interactuar con las métricas de varias maneras, como la representación en gráficos en Azure Portal, el acceso a ellas mediante la API REST o consultarlas con PowerShell o la CLI. Azure Monitor también ofrece sus datos directamente en Log Analytics y otros servicios, donde los puede consultar y combinar con datos de otros orígenes del entorno local o la nube.
  • Log Analytics ayuda a poner en correlación los datos de uso y rendimiento recopilados por Application Insights con los datos de configuración y rendimiento de los recursos de Azure que respaldan la aplicación. Este escenario utiliza el agente de Azure Log Analytics para insertar los registros de auditoría de SQL Server en Log Analytics. Puede escribir consultas y visualizar los datos en la hoja Log Analytics de Azure Portal.

Detalles del escenario

Las ofertas de Plataforma como servicio (PaaS) de Azure administran automáticamente los recursos de proceso y afectan a la forma de supervisar las implementaciones. Azure incluye varios servicios de supervisión, cada uno de los cuales realiza una función específica. Juntos, estos servicios ofrecen una solución completa para recopilar, analizar y actuar sobre los datos de telemetría de las aplicaciones y los recursos de Azure que consumen.

Este escenario aborda los servicios de supervisión que puede usar y describe un modelo de flujo de datos para su uso con varios orígenes de datos. Cuando se trata de supervisión, muchas herramientas y servicios funcionan con implementaciones de Azure. En este escenario, hemos elegido servicios disponibles precisamente porque son fáciles de consumir. Más adelante en este artículo se tratan otras opciones de supervisión.

Posibles casos de uso

Otros casos de uso pertinentes incluyen:

  • Instrumentación de una aplicación web para la supervisión de la telemetría.
  • Recopilación de datos de telemetría de front-end y de back-end de una aplicación implementada en Azure.
  • Supervisión de las métricas y las cuotas asociadas con los servicios de Azure.

Consideraciones

Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Excelencia operativa

La excelencia operativa abarca los procesos de las operaciones que implementan una aplicación y la mantienen en ejecución en producción. Para más información, consulte Introducción al pilar de excelencia operativa.

Supervisión

Un procedimiento recomendado consiste en agregar Application Insights al código durante la etapa de desarrollo mediante los SDK de Application Insights y realizar la personalización pertinente por aplicación. Estos SDK de código abierto están disponibles para la mayoría de los marcos de la aplicación. Para enriquecer y controlar los datos recopilados, incorpore el uso de los SDK para las implementaciones de pruebas y de producción en el proceso de desarrollo. El requisito principal es que la aplicación tenga una línea de visión directa o indirecta al punto de conexión de ingesta de Application Insights hospedado con una dirección con conexión a Internet. A continuación, puede agregar datos de telemetría o enriquecer una colección de telemetría existente.

La supervisión en tiempo de ejecución es otra manera fácil de empezar a trabajar. Los datos de telemetría recopilados se deben controlar mediante archivos de configuración. Por ejemplo, puede incluir métodos en tiempo de ejecución que habiliten herramientas como el Monitor de estado de Application Insights para implementar los SDK en la carpeta correcta y agregar las configuraciones adecuadas para comenzar la supervisión.

Al igual que Application Insights, Log Analytics proporciona herramientas para analizar datos en orígenes, crear consultas complejas y enviar alertas proactivas sobre condiciones especificadas. También puede visualizar los datos de telemetría en Azure Portal. Log Analytics agrega valor a servicios de supervisión existentes como Azure Monitor y también puede supervisar entornos locales.

Tanto Application Insights como Log Analytics utilizan el lenguaje de consulta de Azure Log Analytics. También puede usar consultas entre recursos para analizar los datos de telemetría recopilados por Application Insights y Log Analytics en una sola consulta.

Azure Monitor, Application Insights y Log Analytics envían alertas. Por ejemplo, Azure Monitor alerta sobre métricas de nivel de plataforma como el uso de CPU, mientras que Application Insights alerta sobre métricas de nivel de aplicación como el tiempo de respuesta del servidor. Azure Monitor alerta sobre nuevos eventos en el registro de actividad de Azure, mientras que Log Analytics puede emitir alertas sobre datos de métricas o eventos de los servicios configurados para usarlo. Las alertas unificadas de Azure Monitor son una nueva experiencia unificada de alertas de Azure que usa una taxonomía diferente.

Alternativas

En este artículo se describen las opciones de supervisión disponibles con características populares, pero dispone de muchas opciones, incluida la opción de crear sus propios mecanismos de registro. Un procedimiento recomendado consiste en agregar servicios de supervisión a medida que crean las capas de una solución. Estas son algunas posibles extensiones y alternativas:

Para más información, consulte la sección Supervisión de DevOps en el Marco de buena arquitectura de Microsoft Azure.

Escalabilidad y disponibilidad

Este escenario se centra en soluciones de PaaS para la supervisión en gran parte porque administran adecuadamente la disponibilidad y la escalabilidad y están respaldadas por contratos de nivel de servicio (SLA). Por ejemplo, App Services proporciona un SLA garantizado para su disponibilidad.

Application Insights tiene límites en cuanto al número de solicitudes que se pueden procesar por segundo. Si se supera el límite de solicitudes, puede experimentar limitación de mensajes. Para evitar dicha limitación, implemente el filtrado o el muestreo para reducir la velocidad de los datos.

Sin embargo, las consideraciones sobre alta disponibilidad para la aplicación que se va a ejecutar son responsabilidad del desarrollador. Para obtener información sobre la escala, por ejemplo, consulte Consideraciones sobre escalabilidad en la arquitectura de referencia de una aplicación web básica. Después de implementar una aplicación, puede configurar pruebas para supervisar su disponibilidad con Application Insights.

Seguridad

La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.

La información confidencial y los requisitos de cumplimiento afectan a la recopilación, retención y almacenamiento de los datos. Obtenga más información acerca de cómo controlan Application Insights y Log Analytics los datos de telemetría.

También se pueden aplicar las siguientes consideraciones de seguridad:

  • Desarrolle un plan para controlar la información personal si se permite a los desarrolladores recopilar sus propios datos o enriquecer los datos de telemetría existentes.
  • Tenga en cuenta la retención de datos. Por ejemplo, Application Insights conserva los datos de telemetría durante 90 días. Archive los datos a los que desea tener acceso durante períodos más largos con Microsoft Power BI, la exportación continua o la API REST. Se aplican tarifas de almacenamiento.
  • Limite el acceso a los recursos de Azure para controlar el acceso a los datos y quién puede ver los datos de telemetría de una aplicación específica. Para ayudar a bloquear el acceso a los datos de telemetría de supervisión, consulte Recursos, roles y control de acceso en Application Insights.
  • Considere la posibilidad de controlar el acceso de lectura y escritura al código de la aplicación para impedir que los usuarios puedan agregar marcadores de versión o de etiqueta que limiten la ingesta de datos de la aplicación. Con Application Insights, no hay control sobre los elementos individuales de datos una vez que se envían a un recurso, por lo que si un usuario tiene acceso a algún dato, tendrá acceso a todos los datos de un recurso individual.
  • Si es necesario, agregue mecanismos de gobernanza para aplicar controles de directivas y costos a los recursos de Azure. Por ejemplo, puede utilizar Log Analytics para la supervisión relacionada con la seguridad como las directivas y el control de acceso basado en rol o usar Azure Policy para crear, asignar y administrar definiciones de directivas.
  • Para supervisar posibles problemas de seguridad y obtener una visión centralizada del estado de seguridad de los recursos de Azure, considere el uso de Microsoft Defender for Cloud.

Optimización de costos

La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.

Los cargos de supervisión pueden aumentar rápidamente. Considere la posibilidad de los pagos por adelantado, comprenda lo que se va a supervisar y compruebe las cuotas asociadas a cada servicio. Azure Monitor proporciona métricas básicas sin costo alguno, en tanto que la supervisión de los costos de Application Insights y Log Analytics se basa en la cantidad de datos ingeridos y el número de pruebas ejecutadas.

Para comenzar, utilice la calculadora de precios para estimar los costos. Cambie las distintas opciones de precios para que coincidan con la implementación esperada.

Los datos de telemetría de Application Insights se envían a Azure Portal durante la depuración y después de que se haya publicado la aplicación. Con fines de prueba y para evitar cargos, se instrumenta un volumen limitado de datos de telemetría. Para agregar más indicadores, puede aumentar el límite de datos de telemetría. Para un control más granular, consulte Muestreo en Application Insights.

Después de la implementación, puede ver un Live Metrics Stream de indicadores de rendimiento. Estos datos no se almacenan (está viendo métricas en tiempo real), pero los datos de telemetría se pueden recopilar y analizar posteriormente. No se efectúa ningún cargo por los datos de Live Stream.

Log Analytics se factura por gigabyte (GB) de datos ingeridos en el servicio. Los primeros 5 GB de datos ingeridos en el servicio Azure Log Analytics cada mes se ofrecen de forma gratuita y los datos se conservan sin ningún costo los primeros 31 días en el área de trabajo de Log Analytics.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes

Consulte estos recursos diseñados para ayudarle a empezar a trabajar con su propia solución de supervisión: