Recommandations pour améliorer la vitesse de build

S’applique à cette recommandation de liste de contrôle d’excellence opérationnelle Azure Well-Architected Framework :

OE :04 Optimisez les processus de développement logiciel et d’assurance qualité en suivant des pratiques éprouvées dans le secteur en matière de développement et de test. Pour la désignation de rôle sans ambiguïté, standardisez les pratiques entre les composants tels que les outils, le contrôle de code source, les modèles de conception d’application, la documentation et les guides de style.

Guides associés : Recommandations pour la normalisation des outils et des processus | Recommandations pour l’utilisation de l’intégration continue

Ce guide décrit les recommandations pour améliorer les performances de votre infrastructure de déploiement. Il est important d’avoir un processus de build opérationnel le premier jour du développement de votre produit. Les builds sont le cœur de votre système de livraison continue, car la status de build indique quand votre produit est déployable. Les builds fournissent des informations cruciales sur la status de votre produit. Vous devez donc toujours rechercher des builds rapides.

Il est difficile de résoudre un problème de build si la génération prend plus de temps. Lorsque des retards se produisent et deviennent normalisés, les équipes ont tendance à devenir moins motivées à résoudre le problème.

Stratégies de conception

Durées de build

Pour effectuer des builds plus rapides, vous pouvez :

  • Choisissez des agents qui répondent à vos besoins en matière de performances : Accélérez vos builds en sélectionnant les machines de build appropriées. Les machines rapides peuvent faire la différence entre les heures et les minutes. Si vos pipelines se trouvent dans Azure Pipelines, vous pouvez exécuter vos travaux à l’aide d’un agent hébergé par Microsoft. Lorsque vous utilisez des agents hébergés par Microsoft, la maintenance et les mises à niveau sont prises en charge pour vous. Pour plus d’informations, consultez Agents hébergés par Microsoft.

  • Optimiser l’emplacement du serveur de build : lorsque vous générez votre code, les données sont envoyées sur le réseau. Les entrées des builds sont extraites d’un référentiel de contrôle de code source et du référentiel d’artefacts. La sortie du processus de génération doit être copiée, y compris les artefacts compilés, les rapports de test, les résultats de la couverture du code et les symboles de débogage. Il est important que ces actions de copie soient exécutées rapidement. Si vous utilisez votre propre serveur de build, assurez-vous que le serveur de build se trouve à proximité des sources et d’un emplacement cible. Les chargements et téléchargements rapides peuvent réduire le temps de génération global.

  • Serveurs de build scale-out : un serveur de build unique peut suffire pour un petit produit. À mesure que la taille et l’étendue du produit et le nombre d’équipes travaillant sur le produit augmentent, un serveur unique peut ne pas suffire. Mettez à l’échelle votre infrastructure horizontalement sur plusieurs machines quand vous atteignez la limite. Pour plus d’informations, consultez Créer et gérer des pools d’agents.

  • Optimisez la build :

    • Ajoutez des travaux parallèles pour accélérer le processus de génération. Pour plus d’informations, consultez Configurer et payer des travaux parallèles.

    • Activez les exécutions de suite de tests parallèles, ce qui permet souvent de gagner beaucoup de temps, en particulier lors de l’exécution de tests d’intégration et d’interface utilisateur. Pour plus d’informations, consultez Exécuter des tests en parallèle pour n’importe quel exécuteur de tests.

    • Utilisez la notion de multiplicateur, où vous pouvez effectuer un scale-out de vos builds sur plusieurs agents de build. Pour plus d’informations, consultez Spécifier des travaux dans votre pipeline.

    • Envisagez de déplacer les tests d’intégration, d’interface utilisateur et de fumée vers un pipeline de mise en production. Le passage à un pipeline de mise en production améliore la vitesse de génération et la vitesse de la boucle de commentaires de build.

    • Publiez les artefacts de build dans une solution de gestion de package, telle que NuGet ou Maven. La publication dans une solution de gestion de package vous permet de réutiliser plus facilement votre artefact de build.

Intervention humaine

Votre organization peut choisir de créer plusieurs types de builds différents pour optimiser les temps de génération. Les builds possibles sont les suivantes :

  • Build d’intégration continue (CI) : l’objectif de cette build est de s’assurer que le code est compilé et que les tests unitaires sont exécutés. Cette build est déclenchée à chaque validation. Il sert de pulsation du projet et fournit immédiatement des commentaires de qualité à l’équipe. Pour plus d’informations, consultez Spécifier les événements qui déclenchent des pipelines.

  • Build nocturne : l’objectif d’une build nocturne n’est pas seulement de compiler le code, mais également de garantir que les suites de tests plus volumineuses qui sont inefficaces s’exécutent à une cadence régulière pour chaque build. Généralement, ces tests incluent des tests d’intégration, d’interface utilisateur ou de fumée. Pour en savoir plus, consultez Configurer les planifications pour les pipelines.

  • Version de version : en plus de compiler et d’exécuter des tests, cette build compile également la documentation de l’API, les rapports de conformité, la signature du code et d’autres étapes qui ne sont pas nécessaires chaque fois que le code est généré. Cette build fournit la copie d’or qui est envoyée au pipeline de mise en production pour finalement être déployée dans l’environnement de production.

Les types de builds nécessaires à votre organization dépendent de facteurs tels que la maturité de votre équipe et de organization, le type de produit sur lequel vous travaillez et votre stratégie de déploiement.

Facilitation Azure

Azure DevOps est une collection de services qui vous aident à créer une pratique de développement collaborative, efficace et cohérente.

Utilisez Azure Pipelines pour créer et publier des services afin de prendre en charge l’intégration continue et la livraison continue (CI/CD) de vos applications.

Utilisez GitHub Actions pour Azure pour automatiser les processus CI/CD et s’intégrer directement à Azure pour simplifier les déploiements. Vous pouvez également créer des flux de travail qui créent et testent chaque demande de tirage dans votre dépôt, ou déployer des demandes de tirage fusionnées en production à l’aide de GitHub Actions pour Azure.

Les agents hébergés par Microsoft sont disponibles en mode natif dans Azure Pipelines. Ces agents sont des machines virtuelles à usage unique qui ne sont utilisées que pour un seul travail, puis ignorées, ce qui fournit une option facile à gérer pour vos builds.

Liste de contrôle de l’excellence opérationnelle

Reportez-vous à l’ensemble complet de recommandations.