Meilleures pratiques d’intégration

Azure DevOps Services

Les outils et les intégrations entre les services améliorent l’efficacité d’Azure DevOps Services. Si vous n’êtes pas prudent, les outils automatisés peuvent sortir du contrôle en exécutant un taux élevé de requêtes. Les demandes entraînent l’application de limites de débit à votre organisation par Azure DevOps. Pour réduire vos risques d’atteinte aux limites de débit, suivez ces bonnes pratiques lorsque vous utilisez les API REST pour l’intégrer à Azure DevOps.

Envoyer (push) uniquement des éléments de travail actionnables

Envoyez uniquement des éléments actionnables dans Azure DevOps que votre équipe prévoit d’engager ou d’adresser à l’avenir. Conservez les éléments de travail hors d’Azure DevOps jusqu’à ce que cela soit nécessaire. Par exemple, ne tentez pas de stocker les données de télémétrie dans Azure DevOps.

Gérer votre propre magasin de données

N’ajoutez pas d’éléments de travail dans Azure DevOps pour les avoir tous dans un seul endroit. Azure DevOps Services n’est pas conçu comme un service de stockage de données. Conservez votre propre magasin de données.

Traitement par lots de vos modifications

L’exécution d’opérations uniques est lente et coûteuse, ce qui est la cause principale des problèmes de performances et de la limitation du débit. Traitement par lots de vos modifications en un seul appel. Pour plus d’informations, consultez notre documentation par lots et notre exemple de code.

Limiter vos révisions

De nombreuses révisions sur un seul élément de travail créent des ballonnements et provoquent des problèmes de performances. Nous vous recommandons d’effectuer les tâches suivantes :

  • Réduisez vos mises à jour en batchant vos modifications de champ. Ne mettez pas à jour un seul champ à la fois.
  • Si vous avez des modifications apportées à plusieurs éléments de travail, effectuez un lot de ces modifications en une seule action.
  • Conservez au minimum le nombre de révisions pour éviter les limites de révision.

Remarque

Une limite de révision d’élément de travail de 10 000 est appliquée aux mises à jour effectuées via l’API REST. Cette limite limite limite les mises à jour de l’API REST, mais les mises à jour du portail web ne sont pas affectées.

Optimiser les requêtes

Optimisez vos requêtes pour retourner un nombre modeste de résultats. Des conditions et des filtres complexes peuvent entraîner des requêtes longues. Conservez le temps d’exécution de vos requêtes sous 30 secondes pour éviter les échecs de seuil.

Conseils sur les performances des requêtes

  • Placez une clause de limitation de date ou de plage en haut d’une requête dans la mesure du possible.
  • Réduisez le nombre de clauses qui utilisent l’opérateur Ever .
  • Réduisez le nombre de clauses qui utilisent l’opérateur Contains , à l’exception des balises.
    • Utilisez l’opérateur Contains Words lorsqu’il est disponible.
    • N’utilisez pas l’opérateur Contains sur les champs de texte longs, car il est coûteux.
  • Évitez les opérateurs «<> » et non les opérateurs lorsque cela est possible.
  • Évitez d’utiliser l’opérateur In Group pour les grands groupes.
  • Réduisez le nombre d’opérateurs Or et vérifiez que vous disposez toujours d’une étendue de niveau supérieur avant d’utiliser.
  • Évitez d’utiliser une clause OR entre un opérateur De groupe et des chemins d’itération ou de zone.
  • Réduisez le nombre de clauses globales pour atteindre votre objectif lorsque cela est possible.
  • Évitez de trier sur tout autre type que les champs principaux, tels que l’ID, lorsque cela est possible.
  • Utilisez un champ personnalisé dans vos filtres si vous souhaitez trier sur un champ personnalisé.
  • Spécifiez un projet si possible. Sinon, la requête est étendue à l’ensemble de la collection et peut prendre beaucoup plus de temps que nécessaire. Un case activée « Interroger entre les projets en haut à droite » de l’éditeur de requête.

Requête sur plusieurs projets

  • Spécifiez le projet que vous recherchez si la requête nécessite une recherche dans plusieurs projets.
  • Utilisez des balises au lieu de mot clé lorsque cela est possible, sauf si vous recherchez du texte partiel d’une chaîne.

Gérer correctement les défaillances

Mises à jour et les requêtes échouent lorsque les limites de ressources ou la fréquence d’utilisation dépassent le seuil de limite. Par exemple, une requête qui s’exécute plus de 30 secondes retourne l’erreur suivante :

VS402335: The timeout period (30 seconds) elapsed prior to completion of the query or the server is not responding.

Lorsque vous consommez les API REST, veillez à concevoir votre code pour gérer les défaillances de manière appropriée.

Limitez le nombre de liens par élément de travail autant que possible, afin d’éviter l’application des limites de liens.

Important

Nous prévoyons d’appliquer la révision des éléments de travail et les limites de liaison dans un avenir proche. Ces limites sont déterminées par la supervision des performances et les commentaires des clients.

N’utilisez pas de requêtes pour la création de rapports

L’utilisation de requêtes et d’appels d’éléments de travail individuels est la meilleure façon d’obtenir les limites de débit appliquées à votre organisation. N’exécutez pas de requêtes pour retourner de grandes listes d’éléments de travail. Utilisez les liens d’élément de travail de création de rapports et les révisions d’éléments de travail REST à la place.

Pour plus d’informations, consultez notre exemple C# sur GitHub.