Exploración de las pruebas en producción

Completado

Como se explicó anteriormente en el curso, las pruebas en la administración del ciclo de vida de las aplicaciones son esenciales para maximizar la calidad del código y minimizar el riesgo operativo asociado a la implementación y actualización de software. Esta es la razón para aplicar el enfoque de desplazamiento a la izquierda, que introduce las actividades de prueba lo antes posible en la fase de desarrollo. Sin embargo, hay ciertos aspectos de las pruebas, que no son eficaces cuando se llevan a cabo de esta manera. En su lugar, para servir completamente su propósito, deben realizarse en el entorno de producción. Esto se conoce como enfoque de desplazamiento a la derecha. La organización de nuestro escenario de ejemplo tendría que usarla para evaluar correctamente la confiabilidad de sus sistemas en combinación con la inyección de errores. En esta unidad, examine este y otros criterios en los que se justifiquen las pruebas de desplazamiento a la derecha.

¿Cuáles son las razones para realizar pruebas de Shift-Right?

Aunque las pruebas de desplazamiento a la izquierda son ideales para las pruebas unitarias y de aceptación de la compilación, se realizan en condiciones que suelen diferir significativamente de las aplicables a los objetivos de entrega previstos. Incluso el control de calidad y los entornos de ensayo rara vez reflejan completamente las complejidades de sus homólogos de producción. De hecho, la mejor manera de examinar completamente el comportamiento de una carga de trabajo después de su implementación es probarlo en ese momento.

Las pruebas en producción proporcionan las siguientes ventajas:

  • Refleja las condiciones de trabajo reales, incluida la carga adicional asociada con el control de las solicitudes del usuario final.
  • Tenga en cuenta los factores, que serían difíciles de simular, como la conectividad a sistemas externos.
  • Refleja los cambios en la demanda de cargas de trabajo a lo largo del tiempo.

¿Cuáles son los escenarios típicos de prueba de desplazamiento a la derecha?

Aunque el enfoque de pruebas de desplazamiento a la derecha podría justificarse en muchos escenarios, hay pocos en los que es adecuado. Estos escenarios incluyen:

  • Implementaciones de microservicios: la arquitectura de microservicios normalmente consta de un gran número de componentes desarrollados de forma independiente. Un número máximo de combinaciones de estos servicios podría justificar las pruebas de desplazamiento a la derecha para centrarse en los escenarios más relevantes en el entorno de producción real (según su uso real).

  • Evaluación del impacto del ancho de banda de red y las condiciones de latencia: las condiciones de red tienden a ser difíciles de simular, por lo que si el rendimiento de una carga de trabajo depende de alta latencia o ancho de banda, las pruebas de desplazamiento a la derecha pueden ser la opción más adecuada.

  • Pruebas de aceptación del usuario: los comentarios reales de los usuarios pueden ser esenciales para validar el rendimiento y la facilidad de uso de la carga de trabajo.

  • Procedimientos de conmutación por error de validación en configuraciones redundantes: las pruebas de inserción de errores y recuperación ante desastres están diseñadas para evaluar la resistencia de las cargas de trabajo de producción. La inyección de errores implica introducir intencionadamente errores en componentes individuales de una carga de trabajo durante su ejecución para identificar cualquier debilidades y mitigarlos, lo que aumenta la confiabilidad general.

    Nota

    La ingeniería de caos es otro concepto en el área de pruebas de confiabilidad de DevOps. Al igual que con la inyección de errores, implica simular errores (en este caso, para crear un caos controlado en el sistema que se está probando). Sin embargo, su ámbito suele ser más amplio, dirigido a todo el sistema, en lugar de solo sus componentes individuales, y sus escenarios de prueba tienden a ser más completos. De hecho, la ingeniería del caos se limita normalmente a entornos controlados que no tienen ningún impacto o un impacto muy limitado en la producción.

    Nota

    Puede usar Azure Chaos Studio para implementar experimentos de ingeniería de caos que tienen como destino soluciones hospedadas en Microsoft Azure. Recorrerá un ejemplo de estos experimentos en el laboratorio de este módulo.