Révision Glossaire EN

Taille

Yeux

Termine une partie dans un dojo pour débloquer les yeux suivants.

Glossaire

Agent
Une machine (ou un conteneur) qui exécute les étapes de build pour le controller. Les agents portent des labels, comme linux ou docker.
Jenkins : controller, agents et Jenkinsfile
Ancre et alias
&name étiquette un nœud, *name le réutilise ailleurs. La clé de fusion <<: *name copie les clés d’un mapping dans un autre mapping.
YAML : la syntaxe et les types devinés
Application Argo CD
Un objet Kubernetes qui dit : prends les manifestes de ce repo, cette révision et ce chemin, et garde-les appliqués dans ce cluster et ce namespace.
GitOps : Git est la source de vérité
Artefact
Un fichier qu’un job produit et transmet aux jobs suivants : un binaire, une archive, un rapport de tests.
Les pipelines : la procédure de déploiement lancée à chaque push
Artefact de release
Le résultat construit que les utilisateurs installent : un paquet, un binaire, une image de conteneur. Construit une seule fois à partir du commit tagué.
Tags, versions et releases
Artefacts
Des fichiers qu’un job produit et que GitLab stocke, comme un résultat de build ou un rapport. Les stages suivants du même pipeline les téléchargent.
GitLab CI : stages, runners, cache et artefacts
Backend
Là où le state est stocké. En local par défaut. Un backend distant, comme un bucket S3 ou HCP Terraform, permet à l’équipe de partager un seul state.
State, backends et modules Terraform
Bloc scalaire
Du texte sur plusieurs lignes. | garde les retours à la ligne, > les replie en espaces. Ajoute - (|-) pour supprimer le retour à la ligne final.
YAML : la syntaxe et les types devinés
Blue-green
Faire tourner la nouvelle version (green) à côté de celle en ligne (blue), puis basculer le routeur. Pour le rollback, tu rebascules le routeur vers blue.
Les stratégies de déploiement : remplacer la version en production
Branche
Un pointeur mobile vers un commit. Chaque nouveau commit sur la branche fait avancer le pointeur.
Branches, merge et rebase
Branche courte
Une branche qui vit quelques heures, un ou deux jours au maximum, puis est mergée et supprimée.
Trunk-based development ou GitFlow
Branche protégée
Une branche avec des règles : par défaut pas de force push ni de suppression, plus des règles en option comme les revues et les checks obligatoires.
Pull requests, branches protégées et CODEOWNERS
Build multi-stage
Un Dockerfile avec plusieurs lignes FROM. Les premiers stages compilent, le dernier copie seulement le résultat avec COPY --from. Les outils de build restent derrière.
Des images petites et sûres
Cache
Des fichiers qu’un job garde pour accélérer les runs suivants, comme les paquets téléchargés. Le job doit quand même marcher quand le cache est vide.
GitLab CI : stages, runners, cache et artefacts
Cache de build
Les couches gardées des builds précédents. Si une instruction et ses entrées sont identiques, le builder réutilise la couche au lieu de la relancer.
Le Dockerfile et son cache de build
CALMS
Culture, Automation, Lean, Measurement, Sharing. Une grille pour voir jusqu’où une équipe est vraiment allée vers DevOps.
Ce qu’est DevOps : dev et ops responsables d’un même service
Canary
Envoyer une petite part du vrai trafic vers la nouvelle version, l’observer, puis augmenter par paliers.
Les stratégies de déploiement : remplacer la version en production
Cattle
Des serveurs construits par automatisation, tous pareils, conçus pour que n’importe lequel puisse tomber ou être remplacé sans que personne ne le remarque.
Pets vs cattle : remplacer les serveurs au lieu de les réparer
Certificat TLS
Un fichier qui prouve qu’un serveur possède un nom. Le client vérifie que le nom correspond à l’URL, qu’une CA de confiance l’a signé, et qu’il n’a pas expiré.
Le réseau : déboguer une couche à la fois
cgroup
Control group. Une fonction du noyau qui compte et limite ce qu’un groupe de processus consomme : mémoire, CPU, I/O.
Conteneurs et machines virtuelles
Chaîne de valeur
Toutes les étapes que traverse un changement, de l’idée jusqu’à la prod, devant les utilisateurs.
Petits lots, feedback rapide
Change fail rate
La part des déploiements qui demandent une intervention immédiate juste après, en général un rollback ou un hotfix.
Les métriques DORA : est-ce que la livraison s’améliore ?
Change lead time
Le temps entre le commit d’un changement dans le gestionnaire de versions et ce changement en prod.
Les métriques DORA : est-ce que la livraison s’améliore ?
Changelog
Un fichier qui liste les changements notables de chaque version, du plus récent au plus ancien, pour les gens qui utilisent ton logiciel.
Tags, versions et releases
Chart
Un paquet Helm : un Chart.yaml, un values.yaml avec les valeurs par défaut, et un dossier templates/ de YAML Kubernetes à trous.
Helm : un gestionnaire de paquets pour Kubernetes
Cluster autoscaler
Ajoute des nœuds quand des pods restent en attente faute de place, et retire les nœuds sous-utilisés.
Gérer un cluster : mettre à jour sans coupure
Code de sortie
Le nombre qu’un processus renvoie quand il se termine. 0 veut dire succès. Tout ce qui va de 1 à 255 veut dire échec, et c’est le programme qui choisit le nombre.
Codes de sortie, flux et systemd : comment les outils se parlent
CODEOWNERS
Un fichier qui associe des chemins à des personnes ou des équipes. Les owners sont sollicités automatiquement en revue quand une PR, une fois sortie du brouillon, touche leurs fichiers.
Pull requests, branches protégées et CODEOWNERS
Commit
Un snapshot du projet entier, nommé par son hash (par défaut SHA-1, 40 caractères hexadécimaux), avec auteur, message et un pointeur vers son commit parent.
Git : des snapshots, trois zones et HEAD
Commit de merge
Un commit avec deux parents, écrit par un merge à trois points : les deux bouts de branche plus leur ancêtre commun.
Branches, merge et rebase
ConfigMap
Un objet qui contient des réglages en clair, sous forme de clés et de valeurs. Monté en fichiers ou passé en variables d’environnement. Pas pour les secrets, et 1 MiB au plus.
Config, health checks et ressources
Conteneur
Un processus (ou un groupe de processus) que le noyau isole avec des namespaces et limite avec des cgroups. Il tourne sur le noyau de l’hôte.
Conteneurs et machines virtuelles
Contrôleur
Une boucle de contrôle qui surveille un type d’objet et agit pour rapprocher l’état actuel de l’état désiré.
Pourquoi Kubernetes : contrôleurs et état désiré
Controller
Le service Jenkins lui-même : interface web, configuration, et le planificateur qui décide où et quand les builds tournent.
Jenkins : controller, agents et Jenkinsfile
Couche
L’ensemble des changements de fichiers faits par une instruction. RUN, COPY et ADD ajoutent des couches, CMD ou EXPOSE ne changent que des réglages.
Le Dockerfile et son cache de build
Data source
Une lecture seule, comme data "aws_ami" "ubuntu" : trouver quelque chose qui existe, sans le gérer.
Terraform : plan et apply
Defaults du rôle
defaults/main.yml : les variables que l’utilisateur du rôle est censé changer, à la priorité la plus basse. Presque n’importe quelle autre variable les écrase.
Les rôles Ansible : un dossier par métier
depends_on
L’ordre de démarrage entre services. Avec condition: service_healthy, Compose attend que le healthcheck de la dépendance passe.
Docker Compose : toute la stack dans un seul fichier
Déploiement continu
Chaque changement qui passe le pipeline part en production, sans humain au milieu.
Les pipelines : la procédure de déploiement lancée à chaque push
Déploiement pull
Un agent qui tourne dans le cluster surveille Git et applique les changements lui-même. La CI ne touche jamais le cluster.
GitOps : Git est la source de vérité
Deployment
Gère les ReplicaSets pour toi, et déploie une nouvelle version en créant un nouveau ReplicaSet et en réduisant l’ancien.
Pods, Deployments et Services
Deployment rework rate
La part des déploiements faits sans être prévus, à cause d’un incident en prod.
Les métriques DORA : est-ce que la livraison s’améliore ?
Dérive de configuration
Des changements ponctuels de la configuration d’un serveur que personne n’enregistre. Au bout d’un moment, plus personne ne sait reconstruire le serveur.
Pets vs cattle : remplacer les serveurs au lieu de les réparer
DevOps
Un mélange de culture, de pratiques et d’outils qui permet à une organisation de livrer et d’exploiter du logiciel vite et de façon fiable. Dev et ops partagent l’objectif au lieu de se passer le travail par-dessus un mur.
Ce qu’est DevOps : dev et ops responsables d’un même service
Digest
Un hash sha256:... du contenu de l’image. Deux images au même digest ont les mêmes octets. Un digest ne peut pas être déplacé vers un autre contenu.
Registries, tags et digests
Dockerfile
Un fichier texte d’instructions (FROM, COPY, RUN, CMD...) que le builder exécute de haut en bas pour produire une image.
Le Dockerfile et son cache de build
Drain
Marquer un nœud non planifiable (cordon), pour qu’aucun nouveau pod n’y arrive, puis évincer ses pods pour qu’ils redémarrent ailleurs. kubectl drain attend que chaque pod s’arrête proprement.
Gérer un cluster : mettre à jour sans coupure
Drift
L’état réel du cluster ne correspond plus à Git. Argo CD affiche l’appli en OutOfSync.
GitOps : Git est la source de vérité
Enregistrement DNS
Une correspondance entre un nom et une valeur. A donne une adresse IPv4, AAAA une adresse IPv6, CNAME un autre nom. Le TTL dit combien de temps les résolveurs peuvent garder la réponse en cache.
Le réseau : déboguer une couche à la fois
errexit (`set -e`)
Arrête le script quand une commande échoue. Il y a des exceptions : les commandes testées par if, while ou until, toute partie d’un && ou || sauf la dernière, tout ce qui est inversé avec !, et, sans pipefail, chaque commande d’un pipeline sauf la dernière.
Des scripts shell qui s’arrêtent à la première erreur
État actuel
Ce qui tourne vraiment, remonté dans le status de l’objet.
Pourquoi Kubernetes : contrôleurs et état désiré
État désiré
Ce que tu as demandé, écrit dans le spec d’un objet. Par exemple : trois réplicas de cette image.
Pourquoi Kubernetes : contrôleurs et état désiré
Failed deployment recovery time
Le temps pour se remettre d’un déploiement qui échoue et demande une intervention immédiate.
Les métriques DORA : est-ce que la livraison s’améliore ?
Fast-forward
Un merge où la branche cible n’a pas bougé depuis la séparation. Git déplace juste le pointeur, sans nouveau commit.
Branches, merge et rebase
Feature flag
Un interrupteur dans le code qui active ou désactive une fonctionnalité sans déploiement. Un release toggle cache le travail pas fini.
Trunk-based development ou GitFlow
Feature flag
Un interrupteur dans le code qui active ou désactive une fonctionnalité sans nouveau déploiement. Déployer met le code sur les serveurs, et mettre en service active la fonctionnalité pour les utilisateurs.
Les stratégies de déploiement : remplacer la version en production
GitFlow
Un modèle de 2010 avec deux branches permanentes, master (souvent renommée main aujourd’hui) et develop, plus des branches feature, release et hotfix.
Trunk-based development ou GitFlow
Graphe de dépendances
Qui doit exister avant qui. Terraform le construit à partir des références entre les blocs.
Terraform : plan et apply
Handler
Une tâche qui ne tourne que si une autre tâche la notifie et répond changed. Usage typique : recharger un service après un changement de sa config.
Les rôles Ansible : un dossier par métier
HEAD
La ref sur laquelle tu es en ce moment. En général il contient un nom de branche comme refs/heads/main ; en detached HEAD, il contient un hash de commit.
Git : des snapshots, trois zones et HEAD
Healthcheck
Une commande que le conteneur lance à intervalle régulier pour dire « je suis prêt ». Son résultat donne l’état de santé du conteneur.
Docker Compose : toute la stack dans un seul fichier
HPA
HorizontalPodAutoscaler : ajoute ou retire des pods d’un Deployment selon une métrique, en général l’usage CPU comparé aux requests des pods.
Gérer un cluster : mettre à jour sans coupure
Idempotent
Le lancer deux fois donne le même résultat que le lancer une fois. Un pipeline peut relancer sans risque un script idempotent.
Des scripts shell qui s’arrêtent à la première erreur
Idempotent
Le lancer deux fois donne le même résultat que le lancer une fois. Une bonne tâche répond ok quand il n’y a rien à faire.
Ansible : des playbooks en SSH
Image
Une pile de couches de fichiers en lecture seule, plus des réglages (commande, utilisateur, env). Elle ne change plus une fois construite.
Conteneurs et machines virtuelles
Image de base minimale
Une base qui ne contient presque rien d’autre que ce dont l’appli a besoin : scratch (vide), distroless (ni shell ni gestionnaire de paquets), ou une variante slim.
Des images petites et sûres
Index
Aussi appelé staging area. Un fichier dans .git qui contient ce qui ira dans ton prochain commit.
Git : des snapshots, trois zones et HEAD
Ingress
Des règles de routage HTTP et HTTPS (hôte, chemin) depuis l’extérieur du cluster vers des Services. Ne fait rien tout seul.
Ingress et stockage persistant
Ingress controller
Le proxy qui lit les objets Ingress et fait le routage. Tu dois en installer un. Créer un Ingress sans controller n’a aucun effet.
Ingress et stockage persistant
Instruction
Une ligne du Dockerfile. FROM choisit l’image de base, COPY ajoute des fichiers, RUN lance une commande, CMD fixe la commande par défaut.
Le Dockerfile et son cache de build
Inventaire
La liste des nœuds gérés, rangés en groupes comme [app] et [db]. Ansible ajoute toujours les groupes all et ungrouped.
Ansible : des playbooks en SSH
Jenkinsfile
Un fichier texte dans le dépôt qui définit le pipeline, et que tu relis et versionnes comme du code.
Jenkins : controller, agents et Jenkinsfile
Job et step
Un job est une liste de steps exécutés dans l’ordre sur le même runner. Les jobs tournent en parallèle, sauf si l’un a besoin (needs) d’un autre.
GitHub Actions : un pipeline dans le dépôt
Journal
Le stockage des logs de systemd, géré par journald. Tu le lis avec journalctl, filtré par unit, par boot, par période ou par priorité.
Codes de sortie, flux et systemd : comment les outils se parlent
Label et selector
Un label est une clé et une valeur posées sur un objet, comme app: guestbook. Un selector est une requête sur les labels, comme « tous les Pods avec app: guestbook et tier: frontend ».
Pods, Deployments et Services
Les Three Ways
Les trois principes de Gene Kim derrière DevOps : le flux, le feedback, et l’expérimentation et l’apprentissage continus.
Petits lots, feedback rapide
Livraison continue
Chaque changement qui passe le pipeline pourrait partir en production à tout moment. Un humain décide quand.
Les pipelines : la procédure de déploiement lancée à chaque push
Mapping
Des paires clé et valeur, key: value. L’imbrication se lit à l’indentation, avec des espaces uniquement : les tabulations sont interdites pour indenter.
YAML : la syntaxe et les types devinés
Matrice
Une liste de valeurs pour laquelle GitHub lance le même job une fois par valeur, par exemple trois versions de Node.js, sans que tu copies le job.
GitHub Actions : un pipeline dans le dépôt
Module
Un petit programme qui fait un seul travail, comme dnf, service ou copy. Ansible le copie sur le nœud géré et l’exécute là-bas.
Ansible : des playbooks en SSH
Module
Un dossier de code Terraform que tu appelles avec un bloc module. Ton propre dossier est le root module, et ceux que tu appelles sont des child modules.
State, backends et modules Terraform
Namespace
Une fonction du noyau qui donne à un processus sa propre copie privée d’une ressource : PID, pile réseau, points de montage, nom d’hôte, utilisateurs.
Conteneurs et machines virtuelles
Namespace
Un dossier nommé pour des ressources, à l’intérieur d’un cluster. Les noms doivent être uniques dans un namespace, pas entre namespaces. Les nœuds et les PersistentVolumes sont globaux au cluster, dans aucun namespace.
Namespaces et RBAC : partager un cluster entre équipes
Node
Une machine de travail. Son kubelet s’assure que les Pods qui lui sont attribués tournent.
Pourquoi Kubernetes : contrôleurs et état désiré
nounset (`set -u`)
Traite une variable non définie comme une erreur. Un shell non interactif affiche un message et s’arrête.
Des scripts shell qui s’arrêtent à la première erreur
Overhead
Le travail administratif qui n’est pas lié à l’exploitation du service : réunions, paperasse RH, fixation d’objectifs. Tu dois quand même le faire, et il ne compte pas comme du toil.
Le toil : repérer et automatiser le travail ops répétitif
Paire de clés
Une clé privée qui reste chez toi et une clé publique que tu poses sur les serveurs, dans ~/.ssh/authorized_keys. Crée-la avec ssh-keygen -t ed25519 -C "toi@portable".
Clés SSH et secrets : hors de Git
PersistentVolume (PV)
Un morceau de stockage du cluster (un disque cloud, un partage NFS), avec sa propre vie, indépendante de tout Pod.
Ingress et stockage persistant
PersistentVolumeClaim (PVC)
Une demande de stockage : une taille et un mode d’accès. Kubernetes la lie à un PV qui correspond.
Ingress et stockage persistant
Pet
Un serveur traité comme unique et indispensable, construit et réparé à la main. Quand il tombe, l’équipe lâche tout pour le sauver.
Pets vs cattle : remplacer les serveurs au lieu de les réparer
Pinning
Désigner une image par une version exacte, idéalement par digest (myapp@sha256:...), pour que chaque pull récupère la même image.
Registries, tags et digests
pipefail
Un pipeline renvoie le code de la commande la plus à droite qui a échoué, et pas seulement celui de la dernière commande. Désactivé par défaut.
Des scripts shell qui s’arrêtent à la première erreur
Plan
terraform plan : compare la configuration avec ce qui existe, et liste les changements. Il ne change rien.
Terraform : plan et apply
Playbook
Un fichier YAML avec un ou plusieurs plays. Un play associe un groupe d’hôtes à une liste de tâches. Chaque tâche appelle un module.
Ansible : des playbooks en SSH
Plugin
Un module ajouté au controller. Git, les rapports JUnit, les credentials et le pipeline lui-même sont tous des plugins.
Jenkins : controller, agents et Jenkinsfile
Pod
La plus petite chose que Kubernetes fait tourner : un ou plusieurs conteneurs qui partagent réseau et stockage, toujours placés sur le même node.
Pods, Deployments et Services
PodDisruptionBudget (PDB)
Une règle pour une appli : combien de ses pods doivent rester debout (minAvailable) ou peuvent être absents (maxUnavailable) pendant une interruption volontaire comme un drain.
Gérer un cluster : mettre à jour sans coupure
Port
Un numéro qui désigne un programme en écoute sur une machine. Sous Linux, par défaut, un processus a besoin d’être root ou d’avoir la capability CAP_NET_BIND_SERVICE pour utiliser un port sous 1024.
Le réseau : déboguer une couche à la fois
Postmortem sans reproche
Une analyse écrite d’un incident qui cherche les causes contributives sans accuser personne. Elle part du principe que chacun a agi de bonne foi avec ce qu’il savait.
Observabilité et incidents : alerter sur ce que vivent les utilisateurs
Probe
Un test que le kubelet lance sur un conteneur : un HTTP GET, une connexion TCP, un appel gRPC ou une commande.
Config, health checks et ressources
Promotion
Faire passer la même image de staging à la production en changeant une valeur dans Git, jamais en la reconstruisant.
Projet final : du git push à l’alerte
Pull request
Une demande de merge d’une branche dans une autre, avec le diff, la discussion, les revues et les résultats de CI au même endroit.
Pull requests, branches protégées et CODEOWNERS
Quatre signaux en or
Du livre SRE de Google : latence, trafic, erreurs, saturation. Si tu ne peux mesurer que quatre choses sur un système exposé aux utilisateurs, mesure celles-là.
Observabilité et incidents : alerter sur ce que vivent les utilisateurs
Rebase
Rejouer tes commits au-dessus d’une autre branche. Mêmes changements, nouveaux commits avec de nouveaux hashes.
Branches, merge et rebase
Ref
Un nom pour un commit. Une branche comme main est une ref, refs/heads/main, qui contient le hash d’un commit. Souvent c’est un petit fichier de ce nom ; après un git gc, elle peut se trouver dans .git/packed-refs à la place.
Git : des snapshots, trois zones et HEAD
Region et Availability Zone (AZ)
Une Region est une zone géographique séparée, comme eu-west-1. Chaque Region a plusieurs emplacements isolés appelés AZ, nommés comme eu-west-1a.
L’essentiel d’AWS : régions, réseaux, pare-feu et rôles
Registry
Un serveur qui stocke et sert des images : Docker Hub, GitHub Container Registry (ghcr.io), la registry de ton cloud, ou une que tu héberges. Chaque nom d’image qu’elle contient, comme ghcr.io/acme/myapp, est un repository.
Registries, tags et digests
Release
Une installation d’un chart dans un cluster, avec son propre nom. Installe le même chart deux fois, tu as deux releases.
Helm : un gestionnaire de paquets pour Kubernetes
Repo de config
Contient les values Helm par environnement. Argo CD le surveille, et chaque commit ici déclenche un déploiement.
Projet final : du git push à l’alerte
Repo de l’appli
Contient le code, le Dockerfile et le workflow CI. Un push ici construit une image.
Projet final : du git push à l’alerte
Request et limit
La request est le CPU et la mémoire que le scheduler réserve pour un conteneur. La limit est le maximum qu’il peut utiliser : au-delà de la limite CPU il est bridé (throttling), au-delà de la limite mémoire l’OOM killer peut le tuer.
Config, health checks et ressources
Resource
Une chose que Terraform gère, comme resource "aws_instance" "app_server" : un type, un nom local, et ses arguments.
Terraform : plan et apply
Révision
Une version numérotée d’une release. Chaque install, upgrade ou rollback ajoute 1. La première est toujours 1.
Helm : un gestionnaire de paquets pour Kubernetes
Rôle
Un dossier avec une structure connue (tasks/, handlers/, defaults/, vars/, templates/, files/, meta/). Ansible charge chaque main.yml pour toi.
Les rôles Ansible : un dossier par métier
Role / ClusterRole
Une liste de verbes autorisés (get, list, create, delete...) sur des ressources. Un Role vit dans un namespace. Un ClusterRole vaut pour tout le cluster.
Namespaces et RBAC : partager un cluster entre équipes
RoleBinding / ClusterRoleBinding
Donne un Role à des sujets : utilisateurs, groupes ou service accounts. Un RoleBinding donne des droits dans son propre namespace, même quand il pointe vers un ClusterRole.
Namespaces et RBAC : partager un cluster entre équipes
Rolling update
Remplacer les copies quelques-unes à la fois. Il n’y a pas de coupure, et l’ancienne et la nouvelle version servent les utilisateurs au même moment.
Les stratégies de déploiement : remplacer la version en production
Rotation
Remplacer un secret par un nouveau et révoquer l’ancien. Après une fuite, la rotation rend inutilisable la valeur qui a fuité.
Clés SSH et secrets : hors de Git
rules
Des conditions que GitLab vérifie quand il crée le pipeline. Elles décident si un job est ajouté au pipeline, et comment (par exemple when: manual).
GitLab CI : stages, runners, cache et artefacts
Runbook
Les étapes écrites d’une tâche ou d’une alerte récurrente : « se connecter à X, lancer ceci, vérifier la sortie, relancer Y si... ». Quelqu’un qui sait programmer y lit du pseudocode.
Le toil : repérer et automatiser le travail ops répétitif
Runner
La machine qui exécute un job. Les runners hébergés par GitHub sont des machines virtuelles neuves (Ubuntu, Windows, macOS). Tu peux aussi héberger les tiens.
GitHub Actions : un pipeline dans le dépôt
Runner
Le programme GitLab Runner qui prend les jobs et les exécute. Sur GitLab.com tu peux utiliser ceux hébergés par GitLab, sur ton propre GitLab tu les installes et tu les gères.
GitLab CI : stages, runners, cache et artefacts
Scalaire
Une valeur unique. Sans guillemets (plain), le parseur choisit son type : chaîne, nombre, booléen ou null. Un scalaire entre guillemets est toujours une chaîne.
YAML : la syntaxe et les types devinés
Secret
Tout ce qui donne un accès : un mot de passe, un token, une clé privée, une clé d’API. S’il fuit, quelqu’un d’autre peut agir à ta place.
Clés SSH et secrets : hors de Git
Secret
Comme une ConfigMap, pour les valeurs sensibles. Par défaut stocké non chiffré dans etcd. Les valeurs de data sont en base64, ce qui ne cache rien.
Config, health checks et ressources
Security group
Un pare-feu stateful attaché à une instance. Il n’a que des règles d’autorisation. Un nouveau n’a aucune règle entrante, donc rien n’entre tant que tu n’en ajoutes pas.
L’essentiel d’AWS : régions, réseaux, pare-feu et rôles
Self-heal
Option d’Argo CD : quand l’état réel s’écarte de Git, resynchroniser tout seul. Désactivée par défaut.
GitOps : Git est la source de vérité
Semantic versioning
MAJOR.MINOR.PATCH : MAJOR pour les changements incompatibles, MINOR pour les nouvelles fonctionnalités rétrocompatibles, PATCH pour les corrections de bugs rétrocompatibles.
Tags, versions et releases
Serveur immuable
Un serveur qu’on ne modifie jamais une fois déployé. Pour le changer, tu construis une nouvelle image et tu remplaces le serveur.
Pets vs cattle : remplacer les serveurs au lieu de les réparer
Service
Un composant de l’appli dans compose.yaml (web, backend, db). Compose fait tourner un ou plusieurs conteneurs pour lui.
Docker Compose : toute la stack dans un seul fichier
Service
Un nom stable et une IP virtuelle devant un ensemble de Pods qui change. Le type par défaut est ClusterIP, joignable seulement depuis le cluster.
Pods, Deployments et Services
Service account
Une identité pour un programme, pas pour une personne. Chaque namespace en a un nommé default, et un pod qui n’en nomme aucun tourne avec celui-là.
Namespaces et RBAC : partager un cluster entre équipes
Silo
Une équipe qui travaille pour son propre objectif, avec ses outils et son vocabulaire, et ne parle aux autres équipes que par tickets.
Ce qu’est DevOps : dev et ops responsables d’un même service
Silo d’équipe DevOps
L’anti-pattern : une nouvelle équipe appelée « DevOps » placée entre dev et ops. Elle ajoute un deuxième mur et éloigne encore dev et ops.
Ce qu’est DevOps : dev et ops responsables d’un même service
SLO et error budget
Un SLO est un objectif, par exemple 99 % des requêtes réussissent et sont rapides. L’error budget, c’est ce qui reste : 1 % peut échouer. Le burn rate dit à quelle vitesse tu le dépenses.
Observabilité et incidents : alerter sur ce que vivent les utilisateurs
SNI
Server Name Indication : le client envoie le nom d’hôte dans le handshake TLS, ce qui permet à une seule IP de servir plusieurs certificats.
Le réseau : déboguer une couche à la fois
ssh-agent
Un processus qui garde tes clés déverrouillées en mémoire, pour que tu tapes la passphrase une fois par session, pas une fois par connexion.
Clés SSH et secrets : hors de Git
Stage
Tout ce qui va d’un FROM au suivant. Tu peux le nommer avec AS builder et ne construire que jusqu’à lui avec --target.
Des images petites et sûres
Stage
Une étape du pipeline, comme build, test ou deploy. Les jobs d’un même stage peuvent tourner en parallèle. Le stage suivant attend que celui-ci passe.
Les pipelines : la procédure de déploiement lancée à chaque push
State
L’enregistrement qui relie chaque objet réel à son bloc. Un fichier JSON, terraform.tfstate par défaut. Ne l’édite jamais à la main.
State, backends et modules Terraform
Status check obligatoire
Un job de CI qui doit finir en succès, skipped ou neutral avant que la PR puisse être mergée.
Pull requests, branches protégées et CODEOWNERS
stdout et stderr
Deux flux de sortie : stdout (descripteur de fichier 1) pour les résultats, stderr (descripteur 2) pour les erreurs et les messages. stdin (descripteur 0) est l’entrée.
Codes de sortie, flux et systemd : comment les outils se parlent
Symptôme ou cause
Le symptôme, c’est ce qui est cassé pour les utilisateurs (« des HTTP 500 »). La cause, c’est pourquoi (« la base refuse les connexions »). Alerte sur les symptômes, cherche les causes sur les tableaux de bord.
Observabilité et incidents : alerter sur ce que vivent les utilisateurs
Tag
Un nom lisible pour une version, comme 1.4.2 ou latest. Les tags sont modifiables : un push peut faire pointer le même tag vers une nouvelle image.
Registries, tags et digests
Tag annoté
Un objet tag avec le nom et l’email de la personne qui tague, une date et un message. Créé avec git tag -a. Fait pour les releases. Un tag léger n’est qu’un nom qui pointe vers un commit, pour des étiquettes privées ou temporaires.
Tags, versions et releases
Tag immuable
Un tag d’image qui ne bouge jamais, comme sha-ad132f5. Contrairement à main ou latest, il désigne toujours la même image.
Projet final : du git push à l’alerte
Taille de lot
La quantité de changements que tu livres d’un coup. Un commit, c’est un petit lot. Une release trimestrielle, un lot énorme.
Petits lots, feedback rapide
Template
Un fichier Jinja2 (.j2) où Ansible remplace {{ nginx_worker_processes }} par la valeur de chaque hôte. Le module template le génère sur le serveur.
Les rôles Ansible : un dossier par métier
Toil
Du travail lié à l’exploitation d’un service en prod qui tend à être manuel, répétitif, automatisable, tactique (déclenché par des interruptions, réactif), sans amélioration durable, et qui grandit avec la taille du service. Une tâche n’a pas besoin des six traits pour être du toil.
Le toil : repérer et automatiser le travail ops répétitif
Travail d’ingénierie
Du travail qui demande du jugement humain et apporte une amélioration durable : écrire de l’automatisation, corriger une cause racine, améliorer le monitoring.
Le toil : repérer et automatiser le travail ops répétitif
Travail en cours (WIP)
Le travail que quelqu’un a commencé sans le finir. Une limite de WIP plafonne le nombre d’éléments dans une même étape au même moment.
Petits lots, feedback rapide
Trunk
La branche partagée unique dans laquelle tout le monde merge, en général main.
Trunk-based development ou GitFlow
Unit
Un fichier qui dit à systemd comment lancer quelque chose. Une unit .service indique quelle commande démarrer, sous quel utilisateur, et quoi faire quand elle se termine.
Codes de sortie, flux et systemd : comment les outils se parlent
Utilisateur IAM ou rôle IAM
Un utilisateur a des identifiants permanents (un mot de passe, des access keys). Un rôle n’en a aucun : celui qui l’endosse reçoit des identifiants temporaires. Les humains et les applis devraient utiliser des rôles.
L’essentiel d’AWS : régions, réseaux, pare-feu et rôles
Utilisateur non root
Une ligne USER pour que l’appli ne tourne pas en UID 0. Sans elle, ni dans ton Dockerfile ni dans l’image de base, l’utilisateur par défaut dans un conteneur est root.
Des images petites et sûres
Values
Les réglages injectés dans les templates. Les défauts viennent de values.yaml, les surcharges de -f file.yaml ou --set key=value.
Helm : un gestionnaire de paquets pour Kubernetes
Verrou de state
Si le backend gère le verrou (et qu’il est activé), Terraform le prend automatiquement à chaque opération qui pourrait écrire le state. Un deuxième apply attend ou échoue au lieu d’écraser le premier.
State, backends et modules Terraform
Volume
Un stockage qui survit au conteneur. Un volume nommé (db-data) survit à docker compose down. down -v le supprime.
Docker Compose : toute la stack dans un seul fichier
VPC et subnet
Un VPC est ton réseau privé, comme 10.0.0.0/16. Un subnet en est une tranche qui vit dans exactement une AZ. Public si sa table de routage envoie le trafic vers une internet gateway, privé sinon.
L’essentiel d’AWS : régions, réseaux, pare-feu et rôles
Workflow
Un fichier YAML dans .github/workflows/. Il dit quand tourner (on:) et quoi exécuter (jobs:).
GitHub Actions : un pipeline dans le dépôt