Compartir a través de


Recomendaciones para mejorar la velocidad de compilación

Se aplica a esta recomendación de lista de comprobación de excelencia operativa de Azure Well-Architected Framework:

OE:04 Optimice los procesos de desarrollo de software y control de calidad siguiendo las prácticas probadas en el sector para el desarrollo y las pruebas. Para una designación de roles inequívoca, normalice las prácticas entre componentes, como herramientas, control de código fuente, patrones de diseño de aplicaciones, documentación y guías de estilo.

Guías relacionadas: Recomendaciones para estandarizar herramientas y procesos | Recomendaciones para usar la integración continua

En esta guía se describen las recomendaciones para mejorar el rendimiento de la infraestructura de implementación. Es importante tener un proceso de compilación en funcionamiento el primer día del desarrollo del producto. Las compilaciones son el latido del sistema de entrega continua porque el estado de compilación se muestra cuando se puede implementar el producto. Las compilaciones proporcionan información fundamental sobre el estado del producto, por lo que siempre debe esforzarse por crear rápidamente.

Es difícil corregir un problema de compilación si tarda más tiempo en compilarse. Cuando se producen retrasos y se normalizan, los equipos tienden a estar menos motivados para solucionar el problema.

Estrategias de diseño principales

Tiempos de compilación

Para realizar compilaciones más rápidas, puede hacer lo siguiente:

  • Elija los agentes que cumplan los requisitos de rendimiento: acelere las compilaciones seleccionando las máquinas de compilación adecuadas. Las máquinas rápidas pueden marcar la diferencia entre las horas y los minutos. Si las canalizaciones están en Azure Pipelines, puede ejecutar los trabajos mediante un agente hospedado por Microsoft. Cuando se usan agentes hospedados por Microsoft, el mantenimiento y las actualizaciones se encargan de usted. Para obtener más información, consulte Agentes hospedados por Microsoft.

  • Optimizar la ubicación del servidor de compilación: al compilar el código, los datos se envían a través de la conexión. Las entradas de las compilaciones se capturan desde un repositorio de control de código fuente y el repositorio de artefactos. La salida del proceso de compilación debe copiarse, incluidos los artefactos compilados, los informes de prueba, los resultados de cobertura de código y los símbolos de depuración. Es importante que estas acciones de copia se ejecuten rápidamente. Si usa su propio servidor de compilación, asegúrese de que el servidor de compilación se encuentra cerca de los orígenes y una ubicación de destino. Las cargas y descargas rápidas pueden reducir el tiempo de compilación general.

  • Escalado horizontal de servidores de compilación: un único servidor de compilación podría ser suficiente para un producto pequeño. A medida que aumenta el tamaño y el ámbito del producto y el número de equipos que trabajan en el producto, es posible que un único servidor no sea suficiente. Escale horizontalmente la infraestructura en varias máquinas cuando alcance el límite. Para más información, consulte Creación y administración de grupos de agentes.

  • Optimice la compilación:

    • Agregue trabajos paralelos para acelerar el proceso de compilación. Para más información, consulte Configuración y pago de trabajos paralelos.

    • Habilite las ejecuciones de conjuntos de pruebas en paralelo, lo que a menudo ahorra una gran cantidad de tiempo, especialmente cuando se ejecutan pruebas de integración e interfaz de usuario. Para más información, consulte Ejecución de pruebas en paralelo para cualquier ejecutor de pruebas.

    • Use la noción de un multiplicador, donde puede escalar horizontalmente las compilaciones en varios agentes de compilación. Para obtener más información, consulte Especificación de trabajos en la canalización.

    • Considere la posibilidad de mover la integración, la interfaz de usuario y las pruebas de humo a una canalización de versión. El traslado a una canalización de versión mejora la velocidad de compilación y la velocidad del bucle de comentarios de compilación.

    • Publique los artefactos de compilación en una solución de administración de paquetes, como NuGet o Maven. La publicación en una solución de administración de paquetes le permite reutilizar el artefacto de compilación con mayor facilidad.

Intervención humana

Su organización puede optar por crear varios tipos diferentes de compilaciones para optimizar los tiempos de compilación. Entre las compilaciones posibles se incluyen:

  • Compilación de integración continua (CI): el propósito de esta compilación es asegurarse de que se compila código y se ejecutan pruebas unitarias. Esta compilación se desencadena en cada confirmación. Actúa como latido del proyecto y proporciona comentarios de calidad al equipo inmediatamente. Para más información, consulte Especificación de eventos que desencadenan canalizaciones.

  • Compilación nocturna: el propósito de una compilación nocturna no solo es compilar el código, sino también para garantizar que los conjuntos de pruebas más grandes que se ejecuten ineficazmente en una cadencia regular para cada compilación. Normalmente, estas pruebas incluyen la integración, la interfaz de usuario o las pruebas de humo. Para más información, consulte Configuración de programaciones para las canalizaciones.

  • Compilación de versión: además de compilar y ejecutar pruebas, esta compilación también compila la documentación de la API, los informes de cumplimiento, la firma de código y otros pasos que no son necesarios cada vez que se compila el código. Esta compilación proporciona la copia maestra que se inserta en la canalización de versión para implementar finalmente en el entorno de producción.

Los tipos de compilaciones que necesita su organización dependen de factores como la madurez de su equipo y la organización, el tipo de producto en el que está trabajando y su estrategia de implementación.

Facilitación de Azure

Azure DevOps es una colección de servicios que le ayudan a crear una práctica de desarrollo colaborativa, eficaz y coherente.

Use Azure Pipelines para compilar y liberar servicios para admitir la integración continua y la entrega continua (CI/CD) de las aplicaciones.

Use Acciones de GitHub para Azure para automatizar los procesos de CI/CD e integrarlos directamente con Azure para simplificar las implementaciones. También puede crear flujos de trabajo que compilen y prueben cada solicitud de incorporación de cambios en el repositorio o implementar solicitudes de incorporación de cambios combinadas en producción mediante Acciones de GitHub para Azure.

Los agentes hospedados por Microsoft están disponibles de forma nativa en Azure Pipelines. Estos agentes son máquinas virtuales de uso único que solo se usan para un trabajo y, a continuación, se descartan, lo que proporciona una opción fácil de administrar para las compilaciones.

Lista de comprobación de excelencia operativa

Consulte el conjunto completo de recomendaciones.