Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English
Read in English

Forges, dépôts d'artefacts et registres : d'où vient ce qui tourne

Par mis à jour le

Améliorer cette page

Avant de tourner, une application a été écrite dans une forge, construite avec des dépendances venues d'un dépôt d'artefacts, puis rangée sous forme d'image dans un registre, d'où la plateforme la tire au démarrage. Ces trois familles forment la chaîne d'approvisionnement logicielle : elles ne sont pas sur le chemin des requêtes, mais rien ne se déploie sans elles. Cette leçon apprend à les distinguer, à séparer ce qui sert à construire de ce qui sert à exécuter, et à répondre à une question de panne : le registre tombe, un service déjà lancé continue-t-il ?

  • Distinguer forge, dépôt d'artefacts et registre d'images
  • Séparer ce qui sert à construire de ce qui sert à exécuter
  • Prédire si un service lancé survit à la panne du registre
  • Expliquer pourquoi un registre est une frontière de confiance

Forge, dépôt d'artefacts, registre : qui fait quoi ?

Section intitulée « Forge, dépôt d'artefacts, registre : qui fait quoi ? »

La forge garde le code source et son historique, le dépôt d'artefacts garde les paquets dont le code dépend et ceux qu'il produit, et le registre garde les images de conteneurs prêtes à exécuter. Une forge comme GitLab, GitHub ou Gitea ajoute au dépôt Git les revues de code et, souvent, l'intégration continue. Un dépôt d'artefacts comme Nexus, Artifactory ou Pulp sert les paquets npm, PyPI, Maven ou RPM. Un registre comme Harbor ou celui d'un cloud sert les images au format OCI.

Le schéma suit le trajet d'une modification de la boutique, du code à l'exécution.

Un développeur pousse le code dans la forge, qui déclenche l'intégration continue ; celle-ci tire ses dépendances du dépôt d'artefacts et publie une image signée dans le registre ; la plateforme d'exécution tire cette image au démarrage.pousse le codedéclenchetire les dépendancespublie l'image signéetire l'image au démarrageDéveloppeurForgecode, revuesIntégrationcontinueDépôtd'artefactsRegistred'imagesPlateformed'exécution
La chaîne d'un artefact : seule la dernière flèche, du registre vers la plateforme, sert à l'exécution. Source · SVG
Échap pour fermer, + et − pour zoomer, défilement pour se déplacer. 100 %

Le schéma montre une coupure nette. Les quatre premières flèches servent à construire : elles ne jouent qu'au moment d'une livraison. La dernière, du registre vers la plateforme, sert à exécuter : elle joue à chaque démarrage d'une copie. C'est cette coupure qui répond aux questions de panne, et elle fait du registre la seule brique de la chaîne dont dépend la production.

Le registre tombe : un service déjà lancé continue-t-il ?

Section intitulée « Le registre tombe : un service déjà lancé continue-t-il ? »

Oui : une copie déjà lancée a son image sur la machine et continue de servir ; ce qui échoue, c'est tout nouveau démarrage sur une machine qui n'a pas l'image. Le runtime garde les images téléchargées dans un cache local. Une copie qui redémarre sur la même machine retrouve son image ; une copie placée sur une machine neuve doit la télécharger, et échoue.

Les situations touchées sont précisément celles où l'on a besoin de la plateforme. Un déploiement ne peut pas tirer sa nouvelle version. Une montée en charge ajoute des copies qui ne démarrent pas, avec l'état ImagePullBackOff sur Kubernetes. Une machine qui tombe voit ses copies replacées ailleurs, où elles ne démarrent pas. La panne d'un registre ne coupe donc rien tant que tout va bien, et empêche de réagir dès que quelque chose va mal.

Le tableau étend la même lecture aux deux autres familles.

Brique en panneCe qui tourneCe qui échoue
forgetoute la productionlivrer un correctif ; la synchronisation GitOps, qui garde le dernier état
dépôt d'artefactstoute la productionconstruire : l'intégration continue ne trouve plus ses dépendances
registreles copies déjà lancéesdéployer, monter en charge, replacer une copie sur une autre machine

Un miroir garde une copie locale des dépendances et des images publiques, pour que la boutique ne dépende ni de la disponibilité ni des limites d'un service qu'elle ne maîtrise pas. Docker Hub limite le nombre de téléchargements anonymes ; un paquet peut être retiré de npm du jour au lendemain ; un registre public peut être indisponible pendant un incident. Un dépôt d'artefacts configuré en mandataire (proxy) sert la copie qu'il a déjà téléchargée.

Le miroir déplace la dépendance plutôt qu'il ne la supprime : il devient à son tour une brique à rendre disponible, à sauvegarder et à surveiller. Mais c'est une brique que la boutique maîtrise, dans son propre domaine de panne, et qui conserve ce que l'extérieur peut faire disparaître.

Pourquoi le registre est-il une frontière de confiance ?

Section intitulée « Pourquoi le registre est-il une frontière de confiance ? »

Qui peut pousser une image dans le registre de production peut exécuter son code en production : le registre est donc l'une des frontières de confiance les plus sensibles de l'architecture. Une image remplacée sous le même nom, par une étiquette réutilisée comme latest ou 1.4, est tirée au prochain démarrage sans que personne ne s'en aperçoive. C'est le principe des attaques de la chaîne d'approvisionnement.

Trois protections se lisent dans la configuration. Référencer l'image par son empreinte, un sha256: qui désigne un contenu précis et ne peut pas être réattribué. Faire signer l'image par l'intégration continue, et refuser au démarrage toute image non signée. Restreindre le droit de pousser à l'intégration continue seule, jamais aux comptes des développeurs. Ces trois gestes font du registre une frontière vérifiée plutôt qu'une porte ouverte.

Question de la grilleCe qu'il faut regarder
État portéle code (forge), les paquets produits (dépôt), les images (registre)
À sauvegarderla forge et ses paramètres ; les artefacts qu'on ne sait plus reconstruire
S'il tomberien ne s'arrête, plus rien ne se livre ; registre : plus rien ne redémarre ailleurs
Confiancedroit de pousser, signatures, références par empreinte
Signal à surveilleréchecs de téléchargement, espace disque, images non signées refusées

Ce que la chaîne d'artefacts change dans la boutique

Section intitulée « Ce que la chaîne d'artefacts change dans la boutique »

La boutique ne déploie plus que des images construites par son intégration continue, signées, rangées dans son propre registre et référencées par empreinte. Sur la V4 du fil rouge, le registre est relié à la plateforme d'exécution, et non à l'application : c'est la plateforme qui tire l'image, au démarrage. Le tableau pose le compromis.

Ce qu'on gagneCe qu'on paie
des images connues, signées, tracées jusqu'au commitun registre dont dépend chaque démarrage
des dépendances qui ne disparaissent plus de l'extérieurun miroir à rendre disponible et à sauvegarder
un droit de pousser limité à l'intégration continueune forge et une intégration continue devenues des cibles de premier rang

Côté responsabilités, la forge, le registre et l'intégration continue appartiennent souvent à une équipe plateforme, qui n'est pas celle qui répond de la boutique. Leur panne bloque pourtant le correctif d'urgence de la boutique : leur disponibilité doit être convenue entre les deux équipes, pas découverte pendant l'incident.

Qui prend le relais pour installer une forge ou un registre ?

Section intitulée « Qui prend le relais pour installer une forge ou un registre ? »

Cette leçon décrit le rôle architectural de ces familles ; leur installation et leur sécurisation relèvent des guides spécialisés du site. Le guide Gestion des artefacts compare les dépôts, dont Nexus et Harbor, registre avec proxy-cache. Registres de conteneurs explique le stockage et la distribution des images, et Gitea présente une forge auto-hébergée.

Ces erreurs reviennent devant la chaîne d'artefacts, et elles viennent presque toutes d'une confusion entre construire et exécuter :

  • Croire que la panne du registre arrête la production : elle empêche de la faire évoluer.
  • Croire qu'elle est sans conséquence : la prochaine panne de machine ne se répare plus.
  • Référencer une image par une étiquette qu'on peut réattribuer.
  • Laisser les développeurs pousser directement dans le registre de production.
  • Dépendre directement de registres publics sans miroir.
  • La forge garde le code, le dépôt les paquets, le registre les images.
  • Construire dépend de toute la chaîne ; exécuter ne dépend que du registre.
  • Registre en panne : ce qui tourne continue, rien ne redémarre ailleurs.
  • Un miroir remplace une dépendance externe par une dépendance maîtrisée.
  • Qui pousse dans le registre exécute en production : c'est une frontière de confiance.
  • Empreinte, signature et droits limités protègent cette frontière.

Six questions sur ce qui sépare les trois briques : ce qu'une forge garde, ce qu'un dépôt d'artefacts sert, et ce qu'un registre exécute.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn