Supervisión del mantenimiento de aplicaciones para la confiabilidad

La supervisión y el diagnóstico son fundamentales para la disponibilidad y la resistencia. En caso de error, es necesario saber que se ha producido, cuándo y por qué.

La supervisión no es lo mismo que la detección de errores. Por ejemplo, la aplicación podría detectar un error transitorio y volver a intentarlo, evitando el tiempo de inactividad. Pero también debe registrar la operación de reintento, para que pueda supervisar la tasa de errores y obtener una imagen general del mantenimiento de la aplicación.

Puntos clave

  • Defina alertas que sean accionables y con una prioridad efectiva.
  • Cree alertas que sondeen los servicios que están cerca de sus límites y cuotas.
  • Use la instrumentación de la aplicación para detectar y resolver anomalías de rendimiento.
  • Realice un seguimiento del progreso de los procesos de ejecución prolongada.
  • Solucione los problemas para obtener una visión general del estado de la aplicación.

Alertas

Las alertas son notificaciones de problemas de mantenimiento del sistema que se encuentran durante la supervisión. Las alertas solo ofrecen valor si son accionables y tienen una prioridad efectiva por parte de ingenieros de guardia mediante procedimientos operativos definidos. Presente los datos de telemetría en un formato que sea fácil para que un operador pueda reconocer problemas o tendencias con rapidez, como un panel o una alerta de correo electrónico.

Alertas de nivel de servicio

Utilice Azure Service Health para responder a los eventos de nivel de servicio. Azure Service Health proporciona una vista del estado de los servicios y las regiones de Azure. Emite comunicaciones que afectan a los siguientes servicios:

  • Interrupciones
  • Actividades de mantenimiento automatizado
  • Otras advertencias de mantenimiento

Las alertas de Azure Service Health deben configurarse para que se pongan en marcha durante los eventos de Service Health. Sin embargo, no se deben usar las alertas de Service Health para detectar problemas debidos a latencias asociadas. Hay un objetivo de nivel de servicio (SLO) de 5 minutos para los problemas automatizados, pero muchos problemas requieren realizar una interpretación manual para definir un análisis de causa raíz (RCA). En su lugar, las alertas deben usarse para proporcionar información útil que le permita interpretar los problemas que se hayan detectado y surgido a través del modelo de estado, para informar sobre una respuesta operativa.

Para obtener más información, consulte Azure Service Health.

Alertas de nivel de recurso

Use Azure Resource Health para responder a los eventos de nivel de recurso. Azure Resource Health proporciona información sobre el estado de los recursos individuales, como una máquina virtual específica, y es muy útil para diagnosticar recursos no disponibles.

Las alertas de Azure Resource Health deben configurarse para grupos y tipos de recursos específicos. Estas alertas deben ajustarse para maximizar las relaciones de señal y ruido. Por ejemplo, distribuya solo una notificación cuando un recurso pasa a estado incorrecto según el modelo de estado de la aplicación o debido a un evento iniciado por la plataforma Azure. Es importante tener en cuenta los problemas transitorios al establecer un umbral adecuado para la falta de disponibilidad de los recursos. Por ejemplo, configure una alerta para una máquina virtual con un umbral de 1 minuto para la falta de disponibilidad antes de que se desencadene una alerta.

Para obtener más información, consulte Azure Resource Health.

Paneles

También puede obtener una vista de pila completa del estado de la aplicación mediante los paneles de Azure; así podrá crear una vista combinada de los gráficos de supervisión a partir de lo siguiente:

  • Application Insights
  • Log Analytics
  • Métricas de Azure Monitor
  • Service Health

Ejemplos

A continuación, se muestran algunos ejemplos sobre la creación y consulta de alertas:

  • HealthAlert: ejemplo sobre cómo crear alertas de registro de actividades de mantenimiento de nivel de recurso. En el ejemplo se usa Azure Resource Manager para crear alertas.
  • GraphAlertsPsSample: conjunto de comandos de PowerShell que consulta las alertas generadas en la suscripción.

Límites del servicio y la suscripción de Azure

Las suscripciones a Azure tienen límites en ciertos tipos de recursos, como el número de grupos de recursos, núcleos y cuentas de almacenamiento. Para asegurarse de que la aplicación no se encuentre con los límites de suscripción a Azure, cree alertas que sondeen los servicios que están cerca de sus límites y cuotas.

Solucione los siguientes límites de suscripción con alertas.

Servicios individuales

Los servicios individuales de Azure tienen límites de consumo en:

  • Storage
  • Throughput
  • Número de conexiones
  • Solicitudes por segundo

Se producirá un error en la aplicación si intenta usar recursos más allá de estos límites, lo que provocará una limitación del servicio y un posible tiempo de inactividad.

En función de los requisitos específicos del servicio y su aplicación, podrá permanecer a menudo bajo estos límites escalando verticalmente (por ejemplo, si selecciona otro plan de tarifas) u horizontalmente (mediante la agregación de nuevas instancias).

Objetivos de escalabilidad y rendimiento de Azure Storage

Azure permite un número máximo de cuentas de almacenamiento por suscripción. Si la aplicación requiere más cuentas de almacenamiento que las disponibles actualmente en la suscripción, cree una nueva suscripción con cuentas de almacenamiento adicionales. Para obtener más información, consulte Límites, cuotas y restricciones de suscripción y servicios de Azure.

Objetivos de escalabilidad para discos de máquinas virtuales

Las máquinas virtuales de infraestructura como servicio (IaaS) de Azure permiten asociar multitud de discos de datos, en función de varios factores, como el tamaño de la máquina virtual y el tipo de cuenta de almacenamiento. Si la aplicación supera los objetivos de escalabilidad para los discos de máquinas virtuales, aprovisione cuentas de almacenamiento adicionales y cree allí los discos de máquinas virtuales. Para obtener más información, consulte Objetivos de escalabilidad y rendimiento para discos de VM.

Tamaño de la máquina virtual

Si la CPU, la memoria, el disco y la E/S reales de las máquinas virtuales se aproximan a los límites del tamaño de la máquina virtual, la aplicación puede experimentar problemas de capacidad. Para corregir los problemas, aumente el tamaño de la máquina virtual.

Si la carga de trabajo fluctúa con el tiempo, considere la posibilidad de usar conjuntos de escalado de máquinas virtuales para escalar automáticamente el número de instancias de máquinas virtuales. De lo contrario, debe aumentar o disminuir de manera manual el número de máquinas virtuales.

Azure SQL Database

Si selecciona un nivel de Azure SQL Database que no es adecuado para controlar los requisitos de la unidad de transacción de base de datos (DTU) de la aplicación, el uso de datos estará limitado. Para obtener más información sobre la selección del plan de servicio correcto, consulte Modelos de compra de Azure SQL Database.

Instrumentación

Instrumente las aplicaciones para medir la experiencia del cliente. La instrumentación efectiva es fundamental para detectar y resolver las anomalías de rendimiento que puedan afectar a la experiencia del cliente y la disponibilidad de las aplicaciones. Para crear un modelo sólido de estado de las aplicaciones, es vital obtener visibilidad sobre el estado de funcionamiento de las dependencias internas críticas, como una conexión de NVA o ExpressRoute compartidas.

La conmutación por error automatizada y los sistemas de conmutación por recuperación dependen del funcionamiento correcto de la supervisión y la instrumentación. Los paneles para visualizar el mantenimiento del sistema y las alertas de operador también deben tener una supervisión e instrumentación precisas. Si estos elementos generan un error, pierden información fundamental o informan de datos imprecisos, es posible que un operador no se dé cuenta de que el sistema está en mal estado o de que tiene errores. Asegúrese de incluir sistemas de supervisión en el plan de pruebas.

Instrumente aplicaciones para realizar un seguimiento de las llamadas a servicios dependientes. El seguimiento de dependencias y la medición de la duración y el estado de las llamadas de dependencia también es fundamental para medir el estado general de la aplicación. Se debe utilizar para conformar un modelo de estado para la aplicación.

Microsoft recomienda recopilar y almacenar registros y métricas clave de componentes críticos.

Proporcione instrumentación enriquecida:

  • En cuanto a los errores probables, pero que no se han producido todavía, proporcione datos suficientes para determinar la causa, mitigar la situación y garantizar que el sistema sigue disponible.
  • Para los errores que ya se han producido, la aplicación debe devolver un mensaje de error adecuado al usuario, pero debe intentar continuar ejecutándose, aunque con funcionalidad reducida.

Los sistemas de supervisión deben capturar los detalles completos para que las aplicaciones se puedan restaurar de forma eficaz y, si es necesario, los diseñadores y los desarrolladores pueden modificar el sistema para evitar que se repita la situación.

Errores de flujo de trabajo de larga ejecución

Los flujos de trabajo de larga ejecución suelen incluir varios pasos, cada uno de los cuales debe ser independiente.

Haga el seguimiento de los procesos de larga ejecución para minimizar la posibilidad de que se tenga que revertir todo el flujo de trabajo o de que se tengan que ejecutar varias transacciones de compensación.

Sugerencia

Supervise y administre el progreso de los flujos de trabajo de larga ejecución implementando un patrón, como supervisor de agente de programador.

Análisis y diagnóstico

Analice los datos combinados en estos almacenes de datos para solucionar problemas y obtener una visión general del mantenimiento de las aplicaciones. Por lo general, puede buscar y analizar los datos en Application Insights y Log Analytics mediante consultas Kusto o ver gráficos preconfigurados mediante soluciones de administración. También puede usar Azure Advisor para ver recomendaciones centradas en la resistencia y el rendimiento.

Volver al artículo principal: Supervisión

Paso siguiente