ingénierie
Un travail, une VM : comment nous isolons les charges de travail CI
Pourquoi nous n'exécutons pas les tâches CI dans des conteneurs sur un noyau partagé et ce que cela nous coûte.
{auteur} · {rôle} · 2026-03-18 · 8 min de lecture
Un exécuteur CI exécute du code arbitraire à partir de votre référentiel avec accès à vos secrets. L'isolation des conteneurs sur un noyau partagé ne constitue pas une limite suffisante pour cela, car une vulnérabilité du noyau est une vulnérabilité de limite de locataire.
Ce que nous faisons
- Chaque tâche obtient sa propre microVM avec son propre noyau
- La VM est détruite à la fin du travail – jamais réutilisée, jamais recyclée
- Les disques sont effacés cryptographiquement plutôt que détachés et renvoyés dans un pool
- Les objets du cache sont chiffrés par référentiel, de sorte qu'une lecture du cache ne peut pas traverser les locataires
- Aucun opérateur n'a accès au shell à une VM de tâche en cours d'exécution
Ce que ça coûte
Une microVM démarre plus lentement qu’un conteneur ne démarre. Nous déployons de réels efforts d'ingénierie sur les pools chauds et la restauration des instantanés pour ramener ce délai à environ trois secondes. Les conteneurs seraient plus faciles et nous pensons que le commerce n'est pas proche.
Votre prochain build pourrait être deux fois plus rapide, pour moitié prix
Commencez gratuitement. Repartir tient à la même ligne, et nous publions ce diff aussi.