Compartir vía


Recomendaciones para diseñar una estrategia de pruebas de fiabilidad

Se aplica a esta recomendación de la lista de verificación de confiabilidad bien diseñada: Power Platform

RE:06 Pruebe escenarios de resiliencia y disponibilidad aplicando los principios de ingeniería del caos en sus entornos de prueba y producción. Use las pruebas para asegurarse de que sus estrategias de implementación de la degradación correcta son efectivas realizando pruebas de funcionamiento incorrecto activo y de carga simulada.

Esta guía describe las recomendaciones para diseñar una estrategia de pruebas de fiabilidad para validar y optimizar la fiabilidad de su carga de trabajo. Las pruebas de fiabilidad se centran en la resiliencia y la disponibilidad de su carga de trabajo, específicamente los flujos críticos que identifica cuando diseña su solución. Esta guía proporciona instrucciones general de prueba e instrucciones específicas para la inyección de errores e ingeniería del caos.

Definiciones

Término Definición
Disponibilidad La cantidad de tiempo que la carga de trabajo de una aplicación se ejecuta en buen estado sin un tiempo de inactividad significativo.
Ingeniería del caos La práctica de someter a las aplicaciones y los servicios a tensiones y fallos del mundo real. El objetivo de la ingeniería del caos es desarrollar y validar resiliencia ante condiciones poco fiables y dependencias que faltan.
Inyección de errores El acto de introducir un error en un sistema para probar la resiliencia del sistema.
Capacidad de recuperación Sinónimo de resiliencia.
Resistencia Capacidad de la carga de trabajo de una aplicación para resistir y recuperarse de modos de error.

Estrategias clave de diseño

Las pruebas son esenciales para garantizar que su carga de trabajo cumple sus objetivos de fiabilidad y pueda gestionar errores correctamente. La inyección de errores es un tipo de prueba que introduce deliberadamente errores o tensión en el sistema para simular escenarios del mundo real. Utilice técnicas de inyección de errores e ingeniería del caos para descubrir y solucionar problemas de manera proactiva antes de que afecten a su entorno de producción. Esta sección proporciona orientación general sobre pruebas, inyección de errores e ingeniería del caos para su carga de trabajo.

Instrucciones generales de prueba

Realice pruebas de forma rutinaria para validar umbrales, objetivos y supuestos existentes. Cuando se produzca un cambio importante en su carga de trabajo, realice pruebas periódicas. Realice la mayoría de las pruebas en entornos de prueba y preparación. También es beneficioso ejecutar un subconjunto de pruebas en el sistema de producción.

Automatice las pruebas para ayudar a garantizar una cobertura y reproducibilidad consistentes de las pruebas. Automatice tareas de prueba comunes e intégrelas en sus procesos de compilación. Probar software manualmente resulta tedioso y susceptible a errores, pero puede realizar pruebas exploratorias manuales. Para aquellos casos en los que necesite desarrollar pruebas automatizadas, utilice pruebas manuales para determinar el alcance de las pruebas a desarrollar.

Adopte un enfoque de prueba de desplazamiento a la izquierda para realizar pruebas de resiliencia y disponibilidad en las primeras etapas del ciclo de desarrollo.

Adapte un formato de documentación simple para que todos puedan comprender fácilmente el proceso y los resultados de cada prueba periódica.

Comparta los resultados documentados con los equipos adecuados, como equipos operativos, líderes tecnológicos, partes interesadas del negocio y partes interesadas en la recuperación ante desastres. Los resultados deben informar el refinamiento de los objetivos de fiabilidad, como los objetivos de nivel de servicio (SLO), los contratos de nivel de servicio (SLA), los objetivos de tiempo de recuperación (RTO) y los objetivos de punto de recuperación (RPO).

Cree una cadencia de prueba regular para sus copias de seguridad. Restaure los datos en sistemas aislados para ayudar a garantizar que las copias de seguridad sean válidas y que las restauraciones sean funcionales.

Documente y comparta métricas de tiempo de recuperación con las partes interesadas en la recuperación ante desastres para garantizar que las expectativas de recuperación sean apropiadas.

Utilice procedimientos de prueba de implementación estándar de la industria para asegurarse de tener un proceso de implementación automatizado, predecible y eficiente.

Pruebe la capacidad de su carga de trabajo para resistir errores transitorios. Para más información, vea Recomendaciones para gestionar errores temporales.

Pruebe cómo su carga de trabajo gestiona errores en servicios dependientes u otras dependencias mediante la inyección de errores.

Pruebe su plan de recuperación ante desastres para responder a errores catastróficos y otros incidentes importantes.

Pruebe la capacidad de su carga de trabajo para degradarse correctamente y minimizar el radio afectado de error de los componentes mediante el uso de inyección de errores.

Aproveche las interrupciones planificadas y no planificadas

Cuando su carga de trabajo está sin conexión por mantenimiento planificado o por una interrupción no planificada, tiene una oportunidad única de realizar pruebas y mejorar la comprensión de su carga de trabajo. En las siguientes secciones se proporcionan recomendaciones para cada escenario.

Mantenimiento planeado

Si tiene ventanas de mantenimiento planeado para actualizaciones o parches, puede probar los componentes y flujos que no intervienen en el trabajo de mantenimiento. Realice pruebas sin el riesgo potencial de degradación inesperada de la carga de trabajo o de completa desconexión. Si tiene suficiente tiempo durante su ventana de mantenimiento, también puede probar los componentes y flujos que participan en el mantenimiento una vez finalizado el trabajo de mantenimiento.

Interrupción no planificada

Aproveche cada incidente de interrupción como una oportunidad para aprender más sobre su carga de trabajo y mejorar su resiliencia siguiendo estos pasos, ordenados por prioridad:

  1. Vuelva a conectar la carga de trabajo para sus usuarios. Es posible que deba aplicar una solución alternativa al problema, resolverlo o iniciar los procesos de recuperación.

  2. Determine la causa raíz de la interrupción y soluciónela. Si puede solucionar la causa raíz como parte de la investigación, documente la causa raíz y las medidas que tomó para solucionarla. Si el problema requiere tomar otra ventana mantenimiento más adelante, asegúrese de que sus medidas de mitigación puedan manejar la carga esperada probándolas exhaustivamente. Asegúrese de haber establecido una supervisión suficiente para cubrir sus medidas de mitigación.

  3. Si corresponde, busque el mismo problema o debilidades de configuración que puedan verse afectadas por problemas similares en todos los componentes de su carga de trabajo. Aproveche esta oportunidad para abordar proactivamente esos componentes. Consulte su historial de incidentes para detectar patrones de problemas similares en su carga de trabajo.

  4. Utilice sus hallazgos para mejorar su estrategia de prueba. Asegúrese de haber abordado con éxito la causa raíz y problemas similares probando directamente el mismo error.

Guía de inyección de errores e ingeniería del caos

Las pruebas de inyección de errores siguen los principios de la ingeniería del caos resaltando la capacidad de la carga de trabajo para reaccionar ante errores de los componentes. Realizar pruebas de inyección de errores en entornos de preproducción y producción. Aplique la información que aprendió al realizar el análisis del modo de errores para asegurarse de que prueba solo los errores que priorice y de que tiene estrategias de mitigación que abordan los errores.

Las pautas clave de la ingeniería del caos son:

  • Sea proactivo. No espere a que se produzcan errores. Intente anticipar errores realizando experimentos de caos para descubrir y solucionar problemas antes de que afecten a su entorno de producción.

  • Acepta los errores. Acepte y aprenda de los errores que se producen en tu sistema. Considere los errores como una parte natural de sistemas complejos y utilícelos como oportunidades para aprender y mejorar la fiabilidad del sistema.

  • Rompa el sistema. Inyecte deliberadamente errores o estrés en el sistema para probar su resiliencia. Simule errores o interrupciones reales para probar y mejorar las capacidades de recuperación de su carga de trabajo.

  • Desarrolle inmunidad. Utilice experimentos de ingeniería del caos para mejorar la capacidad de su carga de trabajo y prevenir errores y recuperarse.

La ingeniería del caos es una parte integral de la cultura del equipo de carga de trabajo y una práctica continua, no un esfuerzo táctico a corto plazo en respuesta a una interrupción concreta. Siga este método estándar cuando diseñe sus experimentos de caos:

  1. Comience con una hipótesis. Cada experimento debe tener un objetivo claro, como probar la capacidad de un flujo para resistir la pérdida de un componente concreto.

  2. Mida el comportamiento base. Asegúrese de tener métricas de fiabilidad y rendimiento coherentes para el flujo y los componentes involucrados en un experimento para compararlas con el estado degradado al ejecutar su experimento.

  3. Inyectar uno o varios errores. El experimento debe apuntar intencionalmente a componentes específicos que se puedan recuperar rápidamente, y usted debe tener una expectativa informada del efecto que causará la inyección de errores para ayudar a controlar el radio afectado del experimento.

  4. Supervise el comportamiento resultante. Recopile telemetría sobre los componentes individuales del flujo y el comportamiento del flujo de un extremo a otro al que apunta el experimento para comprender adecuadamente los efectos del error. Compare las métricas que recopile con las métricas de línea base para obtener una imagen completa de los resultados de la inyección de errores.

  5. Documente el proceso y las observaciones. Mantenga registros detallados de sus experimentos para informar decisiones futuras sobre el diseño de la carga de trabajo, lo que garantizará que se aborden las infracciones que se han detectado a lo largo del tiempo.

  6. Identifique y actúe sobre el resultado. Planifique los pasos de corrección que se pueden agregar a su carga de trabajo pendiente como mejoras. Asegúrese de que los planes de mejora del diseño se revisen y prueben en entornos que no son de producción de acuerdo con los mismos procesos que otras implementaciones.

Valide periódicamente su proceso, opciones de arquitectura y código para detectar rápidamente deuda técnica, integrar nuevas tecnologías y adaptarse a los requisitos cambiantes.

Cuando realice experimentos de inyección de errores:

  • Confirme que la supervisión se implementa y que las alertas estén configuradas.

  • Valide su proceso de asignación de una persona directamente responsable (DRI) para que se haga cargo de un incidente.

  • Asegúrese de que su documentación y procesos de investigación estén actualizados.

Integre las siguientes recomendaciones y consideraciones para optimizar su estrategia de pruebas de caos:

  • Cuestione los supuestos del sistema. Con las pruebas, usted intenta mejorar la resiliencia de su carga de trabajo y sus estrategias de diseño de carga de trabajo. Busque oportunidades para inyectar errores en componentes y flujos que da por sentado que son fiables de acuerdo con experiencias pasadas. Es posible que no sean fiables para su nueva carga de trabajo.

  • Valide el cambio. Sin pruebas exhaustivas, incluidas las pruebas de inyección de errores, es posible que tenga una imagen incompleta de su carga de trabajo después de realizar los cambios. Por ejemplo, es posible que introduzca nuevas dependencias que no sean evidentes de inmediato.

  • Utilice búferes de SLA. Limite las pruebas de caos para cumplir sus SLA y evitar posibles efectos adversos de las interrupciones. Sus objetivos de recuperación de flujos y componentes ayudan a definir el ámbito de las pruebas.

  • Establezca un presupuesto de errores como inversión en inyección de errores y caos. Su presupuesto de error es la diferencia entre lograr el 100 % del SLO y lograr el SLO acordado.

  • Detenga el experimento si se sale del ámbito. Los resultados desconocidos son consecuencia esperada de los experimentos del caos. Esfuércese por lograr un equilibrio entre la recopilación de datos sustanciales de resultados y afectar al menor número posible de usuarios de producción.

  • Trabaje en estrecha colaboración con los equipos de desarrollo para garantizar la relevancia de los errores inyectados. Utilice incidentes o problemas pasados ​​como guía. Examine las dependencias y evalúe los resultados cuando las elimine.

  • Identifique y documente dependencias no descubiertas previamente entre diferentes componentes dentro de su carga de trabajo que se revelen mediante pruebas de caos.

  • Ajuste los planes de recuperación según sea necesario para tener en cuenta las dependencias que se descubren durante las pruebas de caos.

  • Utilice los resultados de sus experimentos y pruebas como base para nuevos experimentos y pruebas. A medida que se producen comportamientos inesperados, nuevas pruebas pueden apuntar directamente a esos comportamientos y brindarle la oportunidad de diseñar estrategias de corrección para ellos.

Compensación: Las pruebas de inyección de fallas en producción pueden ser disruptivas y potencialmente causar tiempo de inactividad. Sea transparente con las partes interesadas sobre esta posibilidad y asegúrese de contar con salvaguardas para finalizar experimentos y planes de reversión para revertir rápidamente los errores que introduzca.

Facilitación de Power Platform

Puede utilizar resultados estáticos en Power Automate para devolver un resultado fijo para probar su carga de trabajo.

Power Apps Test Engine (versión preliminar) es un Power Platform componente CLI que puedes usar para probar aplicaciones de lienzo independientes en Power Apps.

Planes de prueba de Azure es una solución de gestión de pruebas basada en navegador, fácil de usar, que proporciona todas las capacidades necesarias para pruebas manuales planificadas, pruebas de aceptación del usuario, pruebas exploratorias y recopilación de comentarios de las partes interesadas.

Si su carga de trabajo incluye recursos de Azure, puede usar Azure Chaos Studio, un servicio administrado que utiliza ingeniería del caos para ayudarlo a medir, comprender y mejorar la resiliencia de sus aplicaciones y servicios en la nube.

Si su carga de trabajo incluye una Microsoft Copilot Studio copiloto, puedes utilizar el Gato de potencia Copilot Studio Equipo para configurar copilotos y pruebas. Al ejecutar pruebas individuales contra las Copilot Studio API (Direct Line), las respuestas del copiloto se evalúan en comparación con los resultados esperados.

Lista de comprobación de fiabilidad

Consulte el conjunto completo de recomendaciones.