Partager via


Recommandations pour améliorer la vitesse de construction

S’applique à cette recommandation de liste de contrôle Azure Well-Architected Framework Operational Excellence :

OE :04 Optimisez les processus de développement de logiciels et d'assurance qualité en suivant les pratiques éprouvées du secteur d’activité pour les tests et le développement. Pour une désignation de rôle non ambiguë, normaliser 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 connexes : 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 génération opérationnel le premier jour du développement de votre produit. Les builds sont les pulsations de votre système de livraison continue, car l’état de la build indique quand votre produit est déployable. Les builds fournissent des informations cruciales sur l’état de votre produit. Vous devez donc toujours rechercher des builds rapides.

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

Stratégies de conception

Optimisation de la durée de génération

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.

  • Optimisez 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 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 près des sources et d’un emplacement cible. Les chargements et téléchargements rapides peuvent réduire le temps de génération global.

  • Effectuer un scale-out des serveurs de build : un seul serveur de build peut être suffisant pour un petit produit. À mesure que la taille et l’étendue du produit et du nombre d’équipes travaillant sur le produit augmentent, un seul serveur 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 d’économiser 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 test.

    • 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 des 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.

Réduire l’intervention humaine

Votre organisation 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 des é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 test plus volumineuses qui sont inefficaces s’exécutent à une cadence régulière pour chaque build. En règle générale, ces tests incluent l’intégration, l’interface utilisateur ou les tests de fumée. Pour en savoir plus, consultez Configurer les planifications pour les pipelines.

  • Build de mise en production : outre la compilation et l’exécution de tests, cette build compile également la documentation de l’API, les rapports de conformité, la signature de 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 envoyée au pipeline de mise en production pour enfin effectuer le déploiement dans l’environnement de production.

Les types de builds nécessaires à votre organisation dépendent de facteurs, notamment de la maturité de votre équipe et de l’organisation, du type de produit sur lequel vous travaillez et de 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 pour 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 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 sur votre référentiel, 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 d’excellence opérationnelle

Reportez-vous à l’ensemble complet de recommandations.