Jenkins suit une architecture Master/Agent (renommée Controller/Agent depuis Jenkins 2.x). Le Controller orchestre, les Agents exécutent.


Le Controller (anciennement Master)

C’est le cerveau de Jenkins. Il ne doit pas exécuter de builds en production.

RôleDétail
Interface WebUI sur le port 8080, API REST sur /api/json
OrdonnanceurDistribue les builds dans la Build Queue vers les agents
Gestionnaire d’étatStocke la configuration, l’historique, les artefacts dans JENKINS_HOME
Gestionnaire de pluginsInstalle, met à jour, active les plugins
Gestionnaire de credentialsCoffre-fort chiffré pour les secrets (tokens, mots de passe, clés SSH)
JENKINS_HOME/
├── config.xml           ← configuration globale
├── credentials.xml      ← secrets chiffrés
├── jobs/                ← configuration et historique de chaque job
│   └── mon-job/
│       ├── config.xml
│       └── builds/
├── plugins/             ← plugins installés (.jpi/.hpi)
├── nodes/               ← configuration des agents
└── workspace/           ← (à éviter sur le Controller)

Les Agents (Nodes)

Machines dédiées à l’exécution des builds. Le Controller les contacte via SSH, JNLP ou Docker.

ConceptDéfinition
ExecutorThread de build sur un agent — un agent peut en avoir plusieurs en parallèle
LabelTag appliqué à un agent pour le cibler dans un pipeline (agent { label 'linux' })
WorkspaceRépertoire dédié à chaque build sur l’agent
Built-in nodeAgent intégré au Controller (désactiver ses executors en production)

Les Jobs (Projets)

Unité de travail configurée pour automatiser une tâche.

TypeUsage
FreestyleConfiguration via l’UI, simple, limité
PipelineJenkinsfile Groovy — la méthode recommandée
Multibranch PipelinePipeline automatique pour chaque branche d’un dépôt Git
FolderRegroupement logique de jobs (souvent par équipe ou service)
Organization FolderScanne une org GitHub/GitLab et crée automatiquement les Multibranch Pipelines

Build Queue et Executors

Commit → Webhook → Controller
                      ↓
               Build Queue (file d'attente)
                      ↓ (agent disponible avec le bon label)
               Agent Executor → Build
                      ↓
               Artefacts → Controller (archivage)
  • Build Queue : liste des builds en attente d’un executor libre
  • Executor : configuré sur chaque node (Manage Nodes → Configure → # of executors)
  • Throttle : limiter le parallélisme via le plugin Throttle Concurrent Builds

Plugins — rôle dans l’architecture

Jenkins sans plugins ne fait presque rien. Tout est plugin :

CatégoriePlugin cléRôle
SCMgitCloner des dépôts Git
Pipelineworkflow-aggregatorSupport Jenkinsfile
Credentialscredentials-bindingInjecter les secrets dans les builds
Notificationsslack, email-extAlertes build
QualitésonarqubeAnalyse statique
Containersdocker-workflowBuilds dans Docker
KuberneteskubernetesAgents dynamiques sur K8s

En relation avec