← L'édition
DevNouveau2 min de lecture

Vercel affine ses machines de build élastiques grâce aux succès de cache Turborepo

Vercel fait évoluer l'algorithme d'ajustement automatique de ses machines de build élastiques pour éviter les dégradations de performances inattendues. Désormais, la plateforme prend en compte les succès de cache de Turborepo pour ne plus réduire inutilement les ressources allouées. Cette mise à jour s'applique automatiquement à tous les projets concernés.

Fil « Optimisation des machines de build Vercel avec Turborepo »

Illustration de l'article — vercel.com
Image : vercel.com

Une gestion plus fine des ressources de compilation

Sur la plateforme d'hébergement Vercel, les machines de build élastiques (des serveurs de compilation cloud dont la puissance processeur et mémoire s'adapte automatiquement selon l'historique de consommation) ajustaient jusqu'ici leurs capacités en analysant uniquement l'usage brut des ressources lors des exécutions précédentes.

Cependant, l'utilisation de Turborepo (un outil d'optimisation de build pour les monorepos JavaScript et TypeScript) créait un effet de bord indésirable. Lorsqu'un build bénéficie d'un cache hit (un succès de cache, c'est-à-dire le réemploi direct d'un résultat de compilation précédent), la consommation de ressources chute drastiquement. On parle alors d'un build avec warm cache (cache chaud, évitant de recompiler le code inchangé).

Le piège de la rétrogradation prématurée

Auparavant, l'algorithme de Vercel interprétait cette faible consommation temporaire comme une baisse permanente des besoins du projet. Il effectuait alors un downgrade (une rétrogradation automatique vers une machine de taille inférieure et moins puissante).

Ce comportement posait un problème critique lors du build suivant en cas de cold cache (cache froid, quand le code a suffisamment changé pour imposer une recompilation intégrale) :

  • La machine rétrogradée ne disposait plus d'assez de mémoire ou de puissance processeur.
  • La compilation risquait de ralentir fortement ou d'échouer par manque de ressources.
  • L'expérience de déploiement devenait instable d'un commit à l'autre.

Déploiement automatique sans intervention

Pour corriger ce problème, Vercel prend désormais en compte les indicateurs de cache de Turborepo avant de décider d'une réduction de machine. Si un build consomme peu de CPU ou de mémoire uniquement parce que le cache a fait son travail, la taille de la machine est maintenue.

{
  "build": {
    "elastic_machines": true,
    "cache_aware_downgrade": true
  }
}

Ce changement s'applique automatiquement à l'ensemble des projets exécutés sur des machines de build élastiques. Aucune modification de configuration ni action manuelle n'est requise de la part des équipes de développement.