Compartir a través de


Consideraciones de prueba para cargas de trabajo sostenibles en Azure

Las organizaciones que desarrollan e implementan soluciones en la nube también necesitan pruebas confiables. Obtenga información sobre las consideraciones y recomendaciones para ejecutar pruebas de carga de trabajo y cómo optimizar un modelo de pruebas más sostenible.

Importante

Este artículo forma parte de la serie de cargas de trabajo sostenible de Azure Well-Architected . Si no está familiarizado con esta serie, se recomienda empezar con lo que es una carga de trabajo sostenible.

Eficacia de las pruebas

Ejecutar la integración, el rendimiento, la carga o cualquier otra prueba intensa durante períodos de bajo carbono

La ejecución de la integración, el rendimiento, la carga o cualquier otra funcionalidad de prueba intensa puede dar lugar a un gran procesamiento. Un diseño bien diseñado para probar las cargas de trabajo implementadas puede ayudar a garantizar el uso total de los recursos disponibles, lo que reduce las emisiones de carbono.

Alineación de Green Software Foundation: Reconocimiento del carbono

Recomendación:

  • Cuando tenga los datos disponibles, planee la ejecución de pruebas cuando la combinación de energía del centro de datos use principalmente energía renovable. Por ejemplo, puede ser más beneficioso ejecutar pruebas durante la noche en algunas regiones.

Automatización de CI/CD para escalar agentes de trabajo según sea necesario

La ejecución de agentes de CI/CD inactivos o infrautilizados da lugar a más emisiones.

Alineación de Green Software Foundation: Eficiencia de hardware

Recomendación:

  • Mantiene el uso de proceso elevado, en función de la demanda actual, lo que evita la asignación de capacidad innecesaria.
  • Escalar horizontalmente solo cuando sea necesario y, cuando no sea necesario, escalar horizontalmente. En última instancia, esto garantiza que no haya recursos de proceso inactivos en entornos de prueba.
  • Considere la posibilidad de optimizar los servicios de plataforma, como los contenedores a través de las pruebas en una máquina virtual, utilizando la plataforma para reducir el mantenimiento.

Considere la posibilidad de almacenar en caché al usar agentes de CI/CD

El uso de mecanismos de almacenamiento en caché durante CI/CD puede reducir el tiempo de proceso y, por tanto, las emisiones de carbono.

Alineación de Green Software Foundation: Eficiencia energética

Recomendación:

  • Almacene los resultados de los pasos de una memoria caché y vuelva a usarlos entre distintas ejecuciones de CI/CD cuando sea posible: cuando haya pasos que tarden tiempo en la CPU para generar un artefacto que no cambie a menudo entre distintas ejecuciones, es aconsejable guardarlo para su uso futuro, de modo que el tiempo de CPU no se desperdicia en cada ejecución que genere el mismo artefacto, de vez en cuando.
  • Si el agente de CI/CD está autohospedado, use una memoria caché local para el agente para reducir aún más las transferencias de datos y las emisiones. Esto garantiza que la memoria caché no se transfiera a través de la red, lo que puede ser una fuente significativa de emisiones.

División de repositorios de código grandes

La división de repositorios grandes puede ayudar a las fases de CI/CD, donde solo se compilan las partes del código que han cambiado. Esto reduce el tiempo de proceso, lo que reduce en última instancia las emisiones de carbono.

Alineación de Green Software Foundation: Eficiencia energética

Recomendación:

  • Divida repositorios de código grandes, separando el código principal de las bibliotecas y las dependencias.
  • Publique y vuelva a usar artefactos y bibliotecas de código que son comunes en varios repositorios.

Recomendación:

  • Divida grandes repositorios de código en otros más pequeños, separando el código principal de las bibliotecas y las dependencias.
  • Publique y vuelva a usar artefactos y bibliotecas de código que son comunes en varios repositorios.

Generación de perfiles y medición

La medición, la generación de perfiles y las cargas de trabajo de prueba son imprescindibles para comprender cómo usar mejor los recursos asignados.

Evaluar dónde es posible la paralelización

Sin generar perfiles y probar correctamente las cargas de trabajo, es difícil saber si está haciendo el mejor uso de la plataforma subyacente y los recursos implementados.

Alineación de Green Software Foundation: Medición de la sostenibilidad

Recomendación:

  • Pruebe las aplicaciones para comprender las solicitudes simultáneas, el procesamiento simultáneo y mucho más.
  • Si está ejecutando Machine Learning (ML) para pruebas, considere la posibilidad de que las máquinas con una GPU obtengan una mejora de la eficacia.
  • Identifique si la carga de trabajo consume mucho rendimiento y trabaja hacia la optimización.
  • Tenga en cuenta este equilibrio: La ejecución de máquinas basadas en GPU para pruebas de ML puede aumentar el costo.

Evaluación con ingeniería de caos

La ejecución de pruebas de integración, rendimiento y carga aumenta la confiabilidad de una carga de trabajo. Sin embargo, la introducción de la ingeniería de caos puede ayudar significativamente a mejorar la confiabilidad y la resistencia y cómo reaccionan las aplicaciones a los errores. Al hacerlo, la carga de trabajo se puede optimizar para controlar los errores correctamente y con menos recursos desperdiciados.

Alineación de Green Software Foundation: Medición de la sostenibilidad

Recomendación:

  • Use pruebas de carga o ingeniería de caos para evaluar cómo controla la carga de trabajo las interrupciones de la plataforma y los picos o caídas del tráfico. Esto ayuda a aumentar la resistencia del servicio y la capacidad de reaccionar ante errores, lo que permite un control de errores más optimizado.
  • Tenga en cuenta este equilibrio: La inyección de errores durante la ingeniería del caos y el aumento de la carga en cualquier sistema también aumenta las emisiones usadas para los recursos de prueba. Evalúe cómo y cuándo puede usar la ingeniería de caos para aumentar la confiabilidad de la carga de trabajo mientras se tiene en cuenta el impacto climático de la ejecución de sesiones de pruebas innecesarias.
  • Otro ángulo de esto es el uso de la ingeniería de caos para probar errores de energía o momentos con mayores emisiones de carbono: considere la posibilidad de configurar pruebas que desafiarán a la aplicación a consumir la energía mínima posible. Defina cómo reaccionará la aplicación a tales condiciones con una versión "eco" específica que informa a los usuarios de que están emitiendo el mínimo posible carbono sacrificando algunas características y posiblemente algún rendimiento. Esto también puede ser su aplicación comparativa para puntuar su sostenibilidad.

Establecimiento de umbrales de CPU y memoria en las pruebas

Ayuda a crear pruebas para probar la sostenibilidad en la aplicación. Considere la posibilidad de tener una medida de uso de CPU de línea base y detectar cambios anómalos en la línea base de uso de CPU cuando se ejecuten pruebas. Con una línea base, las decisiones poco óptimas tomadas en los cambios de código recientes se pueden detectar anteriormente.

Agregar pruebas y puertas de calidad a la canalización de implementación y pruebas ayuda a evitar la implementación de soluciones no sostenibles, lo que contribuye a reducir las emisiones.

Alineación de Green Software Foundation: Eficiencia energética

Recomendación:

  • Supervise las asignaciones de CPU y memoria al ejecutar pruebas de integración o pruebas unitarias.
  • Busque áreas de consumo de recursos anormalmente elevadas en el código de la aplicación y céntrese en mitigarlas primero.
  • Configure alertas o errores de prueba si supera los valores de línea base establecidos, lo que ayuda a evitar la implementación de cargas de trabajo no sostenibles.
  • Tenga en cuenta este equilibrio: a medida que crecen las aplicaciones, es posible que la línea base tenga que cambiar en consecuencia para evitar que se produzcan errores en las pruebas al introducir nuevas características.

Paso siguiente

Revise las consideraciones de diseño para los procedimientos operativos.