Aller au contenu principal
Semestre 2 · Bloc 1

Bloc 1 : la conteneurisation

Lecture
5 min
Compétences
C1

Semaines 1 à 5. Vous allez découvrir ce qu'est réellement un conteneur, non pas en récitant « c'est une VM légère » (raccourci faux qui vous handicapera), mais en construisant un conteneur à la main, avec les seules primitives du noyau Linux, avant même de lancer Podman. Puis vous conteneuriserez les trois tiers de Listify, les composerez, les scannerez, et les regrouperez dans un pod : la passerelle conceptuelle vers Kubernetes.

Pourquoi commencer par « sous le capot » ?​

Parce que la magie apparente des conteneurs (démarrage en millisecondes, isolation, portabilité) repose sur quelques mécanismes précis du noyau : namespaces, cgroups, systèmes de fichiers en couches. Un ingénieur qui les connaît diagnostique un problème de conteneur en minutes ; celui qui ne voit qu'une « boîte noire » est perdu dès que l'abstraction fuit. C'est le cœur théorique du semestre, et l'examen y insiste.

C'est aussi le prolongement direct du S1 : la colonne « isolation » de votre tableau de progression passait de « VM et segmentation réseau » à « namespaces, cgroups, rootless ». Ce bloc rend cette ligne concrète.

L'architecture cible du bloc​

Un pod Listify regroupe les conteneurs frontend, backend et db ; le backend est poussé dans un registre local, dont les images sont analysées par Trivy.

L'architecture cible du bloc : les trois services dans un pod, un registre local pour distribuer les images et un scanner de vulnérabilités.

PDF vectoriel

À la fin du bloc, Listify tourne entièrement en conteneurs sur votre poste, sans aucune VM, composé par un fichier déclaratif, avec ses images construites, versionnées, scannées et servies depuis un registre local.

Organisation du bloc​

SemaineCMTP
1Ch. 14 : Pourquoi les conteneursTP 11 (début) : namespaces à la main
2Ch. 15 : Sous le capot (namespaces, cgroups, OverlayFS)TP 11 (fin) : cgroups, un « conteneur » sans moteur
3Ch. 16 : OCI et l'écosystème (Podman, containerd, runc)TP 12 : Containerfile des trois services
4Ch. 17 : Les images (multi-stage, cache, scan)TP 13 : composition et pod
5Ch. 18 : Réseau, stockage et compositionTP 14 : registre local, scan Trivy, Quadlet

Ce que vous saurez faire à la fin du bloc​

  • Expliquer, primitives du noyau à l'appui, la différence fondamentale entre un conteneur et une machine virtuelle, et défendre le choix de l'une ou l'autre (compétence C1).
  • Construire un « conteneur » rudimentaire à la main (unshare, cgroups) pour démystifier le moteur.
  • Situer chaque brique de l'écosystème (image, runtime, distribution ; Docker, Podman, containerd, runc, CRI-O) et expliquer l'architecture sans démon et rootless de Podman.
  • Écrire des Containerfile optimisés (multi-stage, ordre des layers, utilisateur non-root), mesurer la taille des images, scanner leurs vulnérabilités avec Trivy.
  • Composer plusieurs services (réseaux, volumes, healthchecks) et générer un manifeste Kubernetes depuis un pod Podman.

Le fil rouge, repris​

Le code de Listify ne change pas. Ce qui change, c'est son emballage : au S1, chaque tier était installé sur une machine par Ansible ; ici, chaque tier devient une image, construite une fois et exécutable partout. Vous mesurerez ce que cette immutabilité apporte : plus de dérive possible entre l'image testée et l'image déployée, puisque c'est le même artefact.