There are dozens of CI/CD tools. GitHub Actions, GitLab CI, CircleCI, Azure DevOps, TeamCity, Bamboo. But Jenkins is still the king. Why? Because it is free, open-source, has 1800+ plugins, and runs everywhere. Walk into any enterprise company — 7 out of 10 are using Jenkins.
Jenkins has a master-agent architecture. Think of it like a restaurant. The master is the head chef — it manages the menu, takes orders, and assigns tasks. Agents are the line cooks — they do the actual cooking. The master (controller) schedules jobs, manages the UI, and stores results. Agents (nodes) execute the actual builds and tests.
For learning, you run everything on one machine — master and agent are the same box. In production, the master runs on a server and agents are separate machines or Docker containers. This lets you run tests on Linux Chrome and Windows Edge at the same time.
In recent Jenkins versions, "master" has been renamed to "controller" and "slave" to "agent." Use "controller" and "agent" in interviews. Old documentation still says master/slave.
| Job Type | Config Method | Best For |
|---|---|---|
| Freestyle | GUI (click buttons) | Learning, simple one-step tasks |
| Pipeline | Jenkinsfile (code) | Real projects, version-controlled pipelines |
| Multibranch Pipeline | Jenkinsfile per branch | PR builds, feature branch testing |
| Folder | Organizational | Grouping related jobs together |
Freestyle jobs are NOT version-controlled. If someone deletes the job or Jenkins crashes, the configuration is gone. Always use Pipeline jobs with a Jenkinsfile in your Git repo for real projects.
Q: What is the difference between Jenkins controller and agent?
A: The Jenkins controller (formerly master) is the central server that manages the UI, schedules builds, stores results, and serves the dashboard. Agents (formerly slaves) are worker machines that execute the actual jobs. In our setup, the controller runs on a central Linux server and we have multiple agents — one for Chrome on Linux, one for Edge on Windows. When a job triggers, the controller assigns it to an available agent based on labels. This lets us run cross-browser tests in parallel on different OS environments. For local learning, controller and agent run on the same machine.
Key Point: Jenkins is free, has 1800+ plugins, and uses a master/agent architecture. It is the most widely used CI/CD tool in the industry.