Des systèmes plus rapides et plus efficaces pour trouver et corriger les régressions

-

Chaque jour ouvrable, les ingénieurs de Facebook mettent en production des milliers de diffs (c’est-à-dire une modification composée d’un ou plusieurs fichiers). Cette vitesse de code nous permet d’expédier rapidement de nouvelles fonctionnalités, de fournir des corrections de bogues et des optimisations, et de mener des expériences. Cependant, un inconvénient naturel de la rapidité d’exécution dans n’importe quel secteur est le risque de provoquer par inadvertance des régressions de performance, de fiabilité ou de correction fonctionnelle.

Pour nous permettre d’adapter notre infrastructure de développement à ce volume – tout en atténuant et en minimisant les régressions – nous construisons des outils et des mécanismes pour aider les ingénieurs à comprendre si une différence a introduit (ou va introduire) une régression. Nous considérons les réactions que nous recevons de ces outils comme des signaux. Les signaux peuvent être générés par des tests automatisés, des cadres d’analyse statique, des journaux de performances, des crash dumps, des rapports de bogues, des alarmes de suivi de production et des dizaines d’autres sources. Ces signaux peuvent faire surface à n’importe quel stade du cycle de vie du développement. Une diff donnée peut générer des centaines de signaux – y compris des erreurs, des succès et des avertissements – qui peuvent aider un ingénieur à évaluer si cette diff est prête à être introduite dans une branche stable et à commencer à se frayer un chemin vers la production. Une fois qu’une diff a atterri, les signaux sont généralement transmis aux ingénieurs via notre système de gestion des tâches. Un ingénieur peut facilement avoir des centaines de tâches en attente.

Avec autant de signaux générés, les ingénieurs peuvent rapidement se sentir dépassés par le nombre de tâches qu’ils doivent accomplir. Un signal très important peut être négligé parce qu’il a été noyé par des signaux bruyants et de moindre priorité, ce qui rend plus difficile pour les ingénieurs d’évaluer rapidement ou facilement la priorité relative de chaque signal. Ils pouvaient passer des heures à déboguer un problème qui s’avérait être du bruit, ou ne pas disposer des informations nécessaires pour les aider à le diagnostiquer et à le résoudre.

Au fil du temps, à mesure que nous avons construit de nouveaux outils et systèmes de surveillance, le volume du signal a augmenté jusqu’à devenir une distraction persistante. Finalement, nous avons réalisé que nous avions besoin d’un moyen plus efficace pour aider les ingénieurs à voir facilement sur quoi travailler en premier, et à passer moins de temps à déboguer et à réparer les problèmes.

Lire l’article complet sur le site de Facebook.

Alfred
Alfredhttps://www.alfreddagenais.com
Salut ! Moi, c'est Alfred, développeur dans l’âme et explorateur de l'infini Web. Je suis constamment à la recherche de nouvelles idées et je pense que le développement web et l'informatique ont le pouvoir de transformer le monde. Je suis un grand admirateur de l'expérimentation, parce que c'est souvent de là que naissent les idées les plus créatives. Je suis convaincu que l'humour est un ingrédient clé de la vie, alors j'essaie toujours de glisser une blague ou deux dans mon code (pas toujours facile à comprendre, mais c'est le risque à prendre). En dehors de la programmation, j'aime passer du temps avec ma famille et mes amis, découvrir de nouveaux endroits et cuisiner des plats délicieux (du moins, j'essaie). Si vous voulez discuter de développement web, d'innovation, ou tout simplement échanger des blagues, n'hésitez pas à me contacter. Je suis toujours partant pour une bonne conversation !

Share this article

Recent posts

Popular categories

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Recent comments