Aller au contenu

Artefact

Infrastructure

Produit fini d'une chaîne de construction logicielle (binaire, archive, paquet, image de conteneur), stocké et versionné pour être déployé tel quel. C'est lui qui part en production, pas le code source qui l'a engendré.

Chaîne d'étapes verticale : le développeur fait un commit du code source dans le dépôt Git, qui déclenche le build dans le pipeline CI ; celui-ci dépose dans le dépôt d'artefacts un artefact versionné, haché et signé. De là, l'artefact est déployé en recette, puis, si les tests de recette sont validés, le même artefact part en production sans être reconstruit.

Formes courantes : Une archive JAR, une image de conteneur, un paquet .deb ou .rpm, une wheel Python, un bundle JavaScript minifié, voire un rapport de tests ou une documentation générée. Tout ce qu'un pipeline produit et qu'on veut conserver mérite le nom.

Immuable et identifiable : Une fois publié, un artefact ne se modifie plus : on en publie un nouveau avec une autre version. Son empreinte cryptographique (SHA-256 en général) garantit que ce qui est déployé est bien ce qui a été construit.

Construire une fois, déployer partout : Le même artefact est promu de la recette à la préproduction puis à la production, sans reconstruction intermédiaire. Reconstruire « à l'identique » pour la production est une promesse que les dépendances ne tiennent jamais tout à fait, et l'écart se découvre toujours au meilleur endroit : en production, un vendredi soir.

Traçabilité : Un artefact sérieux s'accompagne de sa provenance (commit, pipeline, dépendances) et souvent d'une signature. C'est ce qui permet de répondre à la question « qu'est-ce qui tourne exactement en prod ? » sans ouvrir une enquête.

L'autre artefact : En réponse à incident, le mot désigne tout autre chose : la trace laissée sur un système et collectée comme preuve (journaux, ruches de registre, image mémoire, fichier temporaire). Même idée d'objet fabriqué puis conservé, à ceci près que personne n'avait l'intention de le produire. Le contexte tranche sans peine ; le lecteur pressé, moins.

Ce qui arrive si on s'en passe

Sans artefact stocké et versionné, chaque déploiement reconstruit le logiciel à partir du code source, souvent directement sur la machine cible. Ce qui part en production n'est alors plus un objet unique et identifiable : deux environnements peuvent exécuter des binaires différents issus du même commit, selon les dépendances récupérées au moment de la construction. Aucune empreinte ne permet de vérifier que le composant en service est bien celui qui a été testé, analysé ou signé ; une dépendance altérée ou une modification locale entre ainsi sans laisser de trace. La reprise en souffre aussi : revenir à une version antérieure oblige à la reconstruire, sans garantie d'obtenir le même résultat, et l'analyse après un incident ne dispose d'aucune référence fiable à laquelle comparer ce qui tourne.

Explication de la marmotte

Quand des développeurs écrivent un programme, ils produisent d'abord une sorte de recette : du texte que l'ordinateur ne sait pas utiliser tel quel. Une machine se charge ensuite de « cuisiner » cette recette pour fabriquer le produit fini, prêt à être installé. Ce produit fini, emballé et étiqueté avec un numéro de version, c'est l'artefact. Imagine une boulangerie industrielle : le gâteau sort du four, on le met en boîte, on colle une étiquette, et c'est exactement cette boîte qu'on livre à tous les magasins. Personne ne refait le gâteau en route. Comme ça, si un client se plaint, on sait précisément quel lot a été livré.

Où ce terme est utilisé

← Tout le glossaire