Diseño para operaciones

Completado
Desplazarse a la izquierda en las operaciones para anticiparse a las condiciones de error.

Realice pruebas de errores en una fase temprana y frecuente del ciclo de vida del desarrollo, y determine el impacto del rendimiento en la fiabilidad. Para el análisis de la causa raíz y los análisis finales, es necesario tener una visibilidad compartida, en todos los equipos, del estado de las dependencias y los errores en curso. La información, el diagnóstico y las alertas de los sistemas observables son fundamentales para la administración eficaz de incidentes y la mejora continua.

Contoso University ejecuta una aplicación web basada en microservicios que proporciona servicios educativos, como clases en línea, para profesores y estudiantes de Contoso. La carga de trabajo se basa en Azure App Service, Azure SQL Database, Microsoft Entra ID, Azure Key Vault, Azure Service Bus, Azure Monitor y Azure DevOps.

Implementar una supervisión sólida

Crear sistemas observables que puedan correlacionar la telemetría.

La supervisión y el diagnóstico son operaciones fundamentales. En caso de que se produzca algún error, es necesario saber que se ha producido un error, cuándo y por qué. La observabilidad en el nivel de componente es fundamental, pero la observabilidad agregada de los componentes y los flujos correlacionados proporciona una vista holística del estado de mantenimiento. Estos datos son necesarios para permitir que los ingenieros de confiabilidad del sitio prioricen sus esfuerzos para la corrección.

Desafío de Contoso

  • La aplicación de carga de trabajo se implementa como parte de un conjunto de cinco servicios desacoplados en varios niveles funcionales.
  • Al equipo le gustaría poder analizar las transacciones y las solicitudes de los usuarios a medida que atraviesan los distintos niveles de la solución para identificar los cuellos de botella que puedan provocar inestabilidad y realizar una solución de problemas más eficaz cuando surjan problemas.

Aplicación del enfoque y los resultados

  • El equipo de cargas de trabajo instrumenta los componentes para capturar registros y métricas con Application Insights y configura el registro para todos los servicios de plataforma. Todos los registros se reenviaron al área de trabajo de Azure Monitor de la carga de trabajo.
  • Los datos del área de trabajo de AzM se pueden usar para analizar el estado de los componentes individuales de la solución y los flujos agregados y el estado de la solución.
  • La correlación de entradas que pertenecen a la misma solicitud entre componentes y niveles ayuda al equipo a determinar el estado de la carga de trabajo y facilita sus procesos de solución de problemas.

Predicción de posibles errores de funcionamiento y comportamiento anómalo

Haga que los errores de confiabilidad activos sean visibles mediante alertas prioritarias y accionables. Invierta en procesos e infraestructura confiables que permitan una evaluación de prioridades más rápida.

Los ingenieros de confiabilidad del sitio se pueden notificar inmediatamente para que puedan mitigar los incidentes de sitio en directo en curso y mitigar proactivamente los posibles errores identificados por las alertas predictivas antes de convertirse en incidentes en directo.

Desafío de Contoso

  • El equipo espera un aumento significativo del tráfico al principio de cada trimestre, cuando los estudiantes se registran en las clases, acceden a los programas y compran los libros de texto.
  • Durante este período crítico del curso académico, el equipo debe asegurarse de que haya suficiente capacidad para el aumento de la carga esperada. El equipo también debe poder reaccionar rápidamente a otros posibles problemas de disponibilidad que pueden surgir.

Aplicación del enfoque y los resultados

  • El equipo configura los niveles Web y Base de datos para escalar horizontalmente de forma automática a fin de disponer de capacidad adicional antes del aumento previsto de la demanda y seguir asignando capacidad a medida que aumenta la carga.
  • El plan de respuesta a emergencias se ajusta para determinar que el equipo de respuesta a incidentes dé prioridad a las alertas relacionadas con los flujos bajo estrés durante este período.

Prueba de riesgos de confiabilidad

Simular errores y ejecutar pruebas en entornos de producción y preproducción.

Es beneficioso experimentar errores en producción para que pueda establecer expectativas realistas para la recuperación. Esto le permite tomar decisiones de diseño que respondan correctamente a errores. Además, le permite probar los umbrales establecidos para las métricas empresariales.

Desafío de Contoso

  • La comunicación entre el nivel web y el servicio REST de registro de alumnos en esta carga de trabajo se basa en los certificados de cliente.
  • Dado que la funcionalidad de registro de estudiantes no se utiliza mucho una vez comenzado el trimestre, si el certificado utilizado por el servicio de registro de estudiantes expira, el problema puede pasar desapercibido durante algún tiempo.
  • Además, durante el último período de registro se produjeron varias interrupciones en el servicio debido a que el sistema controla incorrectamente los errores de conectividad transitorios. El equipo ha realizado algunas mejoras de código para controlar los errores transitorios, pero no está seguro de cómo se comportará la funcionalidad en escenarios de producción reales.

Aplicación del enfoque y los resultados

  • El equipo desarrolla pruebas de transacción sintéticas que se ejecutarán en producción según una programación mensual para simular varios flujos, incluido el flujo de registro.
  • Las alertas están configuradas para las pruebas de transacción sintéticas, por lo que el equipo recibirá una notificación en caso de que se produzcan errores, cubriendo así el riesgo de expiración de los certificados.
  • Además, el equipo ha invertido en crear pruebas de caos en su SDLC, realizando pruebas rutinarias de caos y capturando los resultados para validar técnicas de autoconservación y para ayudar a descubrir problemas de confiabilidad desconocidos hasta ahora.

Comprobación de conocimientos

1.

Verdadero o falso: un ejemplo de hacer que una carga de trabajo sea observable es instrumentar la aplicación para emitir datos de telemetría.

2.

¿Qué es un atributo de una estrategia de alertas bien diseñada?

3.

¿Cuál es la forma en que Contoso puede demostrar que su carga de trabajo puede funcionar en un estado degradado?