06 - Glossaire
Tous les termes rencontres dans cette serie sur le déploiement automatique, classes par ordre alphabetique.
A
Artifact
Un fichier produit par un job de pipeline et conserve par GitLab. Ca peut etre un binaire compile, un rapport de tests, ou un fichier de logs. Les artifacts sont telechargeables depuis l'interface GitLab et peuvent etre passes d'un job a l'autre.
C
CI/CD (Continuous Intégration / Continuous Deployment)
L'automatisation du cycle build-test-deploy. CI = chaque commit est automatiquement teste. CD = chaque commit qui passe les tests est automatiquement déployé. Le .gitlab-ci.yml definit ce pipeline. Voir l'article sur le pipeline.
Container
Une instance en cours d'exécution d'une image Docker. C'est un processus isole qui a son propre système de fichiers, son réseau et ses variables d'environnement. Leger par rapport a une machine virtuelle : un container démarré en secondes et consomme peu de mémoire.
D
Docker Compose
Un outil pour définir et lancer plusieurs containers en meme temps. Tu decris les services dans un fichier docker-compose.yml et docker compose up lance tout. Sur paltemps.fr, Docker Compose orchestre l'app, Caddy et le mailserver.
Docker Image
Un snapshot immutable qui contient tout le nécessaire pour faire tourner une application : code, runtime, dépendances, config. Tu construis une image avec docker build, tu la lances avec docker run. C'est le livrable de ton pipeline CI/CD.
Dockerfile
Le fichier de recette qui decrit comment construire une image Docker. Chaque instruction (FROM, COPY, RUN, CMD) créé un layer. Voir l'article sur l'architecture.
E
Environment Variable
Une variable définie en dehors du code, accessible par le programme au runtime. Dans GitLab CI, tu les configures dans Settings > CI/CD > Variables. Ca permet de stocker des secrets (clés SSH, tokens) sans les mettre dans le code.
G
GitLab Runner
Le programme qui exécuté les jobs de ton pipeline. Il tourne sur ta machine (VPS, serveur dédié, laptop) et recoit les instructions de GitLab. Tu le registers avec un token, tu choisis un executor (shell, Docker), et il fait le travail. Voir l'article d'installation.
J
Job
L'unité de base d'un pipeline. Un job exécuté un script dans un stage donne. Exemple : le job "deploy" dans le stage "deploy" exécuté docker compose up -d. Un job peut reussir ou échouer, et tu vois ses logs dans l'interface GitLab.
L
Layer (Docker)
Chaque instruction du Dockerfile créé un layer dans l'image. Les layers sont caches : si une instruction n'a pas change, Docker réutilisé le layer existant. C'est pour ca que l'ordre des instructions compte. Voir l'article sur le cache Docker.
P
Pipeline
L'ensemble des stages et jobs qui s'executent automatiquement a chaque push. Un pipeline typique : stage build (construire l'image), stage test (lancer les tests), stage deploy (déployer sur le VPS). Voir l'article sur le .gitlab-ci.yml.
R
Registry
Un dépôt distant pour stocker et distribuer des images Docker. GitLab a son propre Container Registry intégré. Tu pushes ton image apres le build, et tu la pull sur le VPS pour le déploiement. Docker Hub est le registry public le plus connu.
Reverse Proxy
Un serveur qui recoit les requêtes des clients et les transmet a ton application. Caddy et Nginx sont des reverse proxies courants. Ils gerent le SSL, le routage par domaine, et la compression. Dans la serie, Caddy sert de reverse proxy devant l'app.
Runner Tag
Un label que tu assignes a un runner pour contrôler quels jobs il exécuté. Si ton job a tags: [vps-prod], seul le runner avec le tag vps-prod le prendra. Ca permet d'avoir des runners différents pour le build et le deploy.
S
Shell Executor
Le mode d'exécution le plus simple de GitLab Runner. Les commandes du job sont exécutées directement dans un shell sur la machine du runner, sans isolation Docker. C'est le mode utilise dans cette serie parce qu'on deploie sur le VPS ou le runner tourne.
SSH (Secure Shell)
Le protocole pour se connecter à distance a un serveur. Le runner utilise une clé SSH pour faire git pull depuis GitLab sans mot de passe. Tu générés une paire de clés ed25519 et tu ajoutes la clé publique comme deploy key dans GitLab.
Stage
Un groupe de jobs qui s'executent dans un ordre precis. Les stages s'executent en sequence (build puis test puis deploy), mais les jobs dans un meme stage s'executent en parallèle. Definis avec stages: dans le .gitlab-ci.yml.
V
Volume
Un espace de stockage persistant pour un container Docker. Sans volume, les donnees disparaissent quand le container est détruit. Un volume monte un répertoire de l'hote dans le container. Exemple : ./data:/app/data rend le dossier data persistant.
VPS (Virtual Private Server)
Un serveur virtuel que tu loues chez un hébergeur (OVH, Hetzner, DigitalOcean). Tu as un acces root, une IP fixe, et tu installes ce que tu veux. C'est là où tourne l'application de paltemps.fr, le runner GitLab, et Docker.
Y
YAML
Le format de fichier utilise par .gitlab-ci.yml et docker-compose.yml. Indentation par espaces (pas de tabulations), structure en clé-valeur. Une erreur d'indentation casse tout le fichier. Utilise un linter YAML en cas de doute.
Sources
- GitLab CI/CD Documentation -- la référencé officielle
- Docker Documentation -- référencé Docker et Docker Compose
- GitLab Runner Documentation -- installation et configuration du runner
Retrouve d'autres articles techniques sur paltemps.fr.
Article précédent : 05 - Troubleshooting
Début de la serie : 00 - Introduction