DevOps & CI/CD Deep Dive · 3 of 18

Jenkins — The Veteran Build Server

Forked from Hudson in 2011 (older if you count Hudson). Jenkins predates the SaaS-CI era and survives because it can build anything, anywhere, on any hardware — with 1,800+ plugins to glue to whatever weird tool your shop needs. Run it once and you'll keep running it.

PluginsPipelines as codeGroovy DSLSelf-hostedDistributed builds
← Back to DevOps & CI/CD
Anatomy

The Building Blocks

Basic Concepts

  • Controller — the Jenkins server (web UI, scheduler, config). Single point of failure unless you cluster it.
  • Agents — workers that actually run jobs; can be VMs, Docker, Kubernetes pods (via the K8s plugin).
  • Pipeline — a Jenkinsfile in the repo, written in Groovy DSL (declarative or scripted).
  • Stages & steps — declarative pipelines have named stages with steps {} inside.
  • Shared libraries — Groovy libraries loaded across pipelines for DRY.
  • Plugins — Git, GitHub, Slack, Kubernetes, Blue Ocean (newer UI), and 1,800 more.
Why It Endures

The Strengths

  • You own everything. No SaaS minute caps, no egress charges, no third-party reading your code.
  • Plugin coverage for everything from VMware to mainframes to embedded toolchains.
  • Distributed builds across heterogeneous agents — Linux x86, Windows, ARM, macOS — out of the box.
  • Pipeline as code via Jenkinsfile, lives next to the source.
  • Active LTS line with security backports.
Tradeoffs

What to Watch Out For

  • Operational burden. Patching the controller, plugin upgrades, agent fleet, JVM tuning — somebody owns it.
  • Plugin sprawl is a security risk. Each plugin is code with controller-level access; CVEs are constant.
  • Groovy is a learning curve. Especially scripted pipelines and shared libraries.
  • UX is dated. Blue Ocean helps, but Jenkins still feels like 2012 next to Actions or Buildkite.
  • Single-controller bottleneck. Running thousands of pipelines per day usually means JCasC + many controllers (Jenkins X / CloudBees CI).
Continue

Other DevOps & CI/CD Tools