What Jenkins Does
- Pipelines — Jenkinsfile (Groovy) declarative or scripted
- Freestyle jobs — GUI-configured legacy jobs
- Distributed builds — controller + agents on multiple machines
- Plugins — 2000+ for source control, build tools, deploy targets, notifications
- Multibranch — auto-discover branches and PRs
- Shared libraries — reusable Groovy libraries across pipelines
- Credentials store — encrypted secrets management
- Blue Ocean — modern pipeline UI
- CloudBees integrations — enterprise extensions
Architecture
Jenkins controller hosts the UI, scheduler, and job configuration. Agents (formerly slaves) execute builds in parallel, connected via JNLP, SSH, or Kubernetes pods. Pipelines are checkpointed — survive controller restarts.
Self-Hosting
# docker-compose.yml
version: "3"
services:
jenkins:
image: jenkins/jenkins:lts-jdk17
ports: ["8080:8080", "50000:50000"]
volumes:
- jenkins-data:/var/jenkins_home
environment:
JAVA_OPTS: "-Djenkins.install.runSetupWizard=false"
volumes:
jenkins-data:Key Features
- Pipeline-as-code (Jenkinsfile)
- 2000+ plugins
- Distributed builds
- Matrix builds
- Shared libraries
- Credentials store
- Email/Slack/Teams notifications
- Multi-branch pipelines
- Auto-scaling agents on Kubernetes
- LDAP, SAML, OAuth auth
Comparison
| CI/CD | Hosted | Pipeline | Ecosystem |
|---|---|---|---|
| Jenkins | Self-hosted | Jenkinsfile | Largest |
| GitHub Actions | Cloud + self-hosted runners | YAML | Huge |
| GitLab CI | Cloud + self-hosted | YAML | Large |
| CircleCI | Cloud + enterprise | YAML | Large |
| Drone | Self-hosted | YAML | Medium |
| Woodpecker | Self-hosted | YAML | Growing |
FAQ
Q: Is Jenkins outdated? A: It has lost many new projects to GitHub Actions and GitLab CI. But Jenkins is still the top choice in enterprises (especially where legacy pipelines and strict compliance matter). Its 2000+ plugins are unmatched.
Q: Compared to GitHub Actions? A: Actions are cloud-native, YAML is concise, and it deeply integrates with GitHub; Jenkins is self-hosted, Groovy is flexible, and its plugin ecosystem is unbeatable. The choice depends on hosting preference and integration needs.
Q: Performance and memory? A: It's a Java application; the controller typically needs at least 2GB of heap. Large-scale deployments (millions of jobs) require tuning the JVM and storage.
Sources
- Docs: https://www.jenkins.io/doc
- GitHub: https://github.com/jenkinsci/jenkins
- License: MIT