advanced
Jenkins
Understand controller-agent architecture, pipelines as code, plugins, credentials, and operational upkeep of self-hosted CI.
Jenkins is a self-hosted automation server with controllers, agents, pipelines as code (`Jenkinsfile`), credentials, and a large plugin ecosystem. Strength is flexibility; cost is operations.
pipeline {
agent any
stages {
stage('Test') {
steps {
sh 'npm ci && npm test'
}
}
}
}
Teams own upgrades, agent images, plugin CVEs, queue capacity, and backup of controller state. Ephemeral agents improve reproducibility versus long-lived mutable machines.
On interviews: controller-agent model, plugin risk, credential scopes, why teams migrate to hosted CI, and pipeline-as-code review.
Common pitfalls: unmaintained plugins; mutable agents with drift; broad credentials shared across jobs.
The trade-off is unlimited customization versus security patching and operational toil.
Checklist:
- Treat Jenkins as managed infrastructure.
- Keep agents reproducible (images, not snowflakes).
- Limit plugin and credential blast radius.
- Version and review Jenkinsfiles in Git.