Contexte et problème
Anthropic a observé, sur une période de six mois, une multiplication par 25 du nombre de jobs exécutés dans son pipeline d’intégration continue (CI). Cette hausse provient de l’adoption massive d’agents codants capables de générer, tester et valider du code de façon autonome. Le service de sélection de tests, initialement conçu comme un composant singleton, n’a pas pu absorber ce pic d’activité malgré l’augmentation de la puissance des machines, le découpage des paquets (package sharding) et les redémarrages quotidiens.
Le goulot d’étranglement a entraîné des temps d’attente prolongés, des échecs de planification et une instabilité générale du pipeline, menaçant la cadence de livraison des équipes de recherche.
Architecture mise en place
Pour restaurer la scalabilité, Anthropic a remplacé le sélecteur de tests par une chaîne de composants sans état. Le nouveau flux comprend trois éléments clés :
- Listeners workers : processus légers, sans état, qui consomment les événements de création de jobs depuis une file de messages. Leur nature stateless permet d’ajouter ou de retirer des instances à la volée selon la charge.
- Journal en mémoire : un magasin clé‑valeur volatile conserve les métadonnées de chaque job (identifiant, statut, dépendances) pendant la durée de vie du traitement. Cette approche évite les accès disque coûteux et garantit une latence minimale.
- Rollup consumer : service dédié qui agrège les résultats des workers, met à jour le journal et déclenche les étapes suivantes du pipeline (build, test, déploiement).
Le découplage des responsabilités et l’utilisation d’une file de messages (ex. Kafka) assurent une distribution uniforme de la charge et éliminent le point unique de défaillance.
Résultats et impact
Après le déploiement, le système a maintenu une stabilité constante même lorsque le volume de jobs a continué à croître. Les métriques observées incluent :
- Temps moyen de mise en file d’attente réduit de plus de 80 %.
- Utilisation CPU des workers stabilisée autour de 60 % grâce à l’équilibrage dynamique.
- Absence de pannes liées au sélecteur de tests pendant les trois mois suivants.
Parallèlement, d’autres études citées dans la newsletter montrent que les pull‑requests initiés par des agents sont passés de 20 % à 70 % en quatre mois, tandis que le volume de PR fusionnées a triplé avec seulement 10 % d’augmentation d’effectif. Ces chiffres corroborent l’effet multiplicateur des agents sur la productivité, à condition que l’infrastructure CI soit adaptée.
Perspectives et limites
La solution sans état repose sur la persistance en mémoire ; en cas de redémarrage du service, le journal est perdu, ce qui nécessite des mécanismes de réplication ou de sauvegarde pour les environnements critiques. De plus, la scalabilité horizontale augmente la complexité opérationnelle (gestion de la file, monitoring des workers). Enfin, l’augmentation du nombre de jobs générés par les agents accentue la pression sur les étapes de compilation et de test, comme le souligne le volet « Slow Developer Experience Will Bottleneck Fast Models », indiquant que les goulets d’étranglement futurs se déplaceront vers le stockage de fichiers et les compilateurs.