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.