Jenkins is an open-source automation server written in Java. It supports the entire software delivery lifecycle, including build, document, test, package, stage, deployment, static code analysis, and deployments via plugins. Several tools (e.g. unit tests, report generation, SCM, etc.) can be integrated with Jenkins via plugins. Jenkins has been the most widely adopted tool for CI/CD, thanks to its energetic, active community. This Jenkins community offers more than 1800+ plugins
The Jenkins project was started in 2004 (originally called Hudson) by Kohsuke Kawaguchi. Initially created for Continous Integration (CI), today Jenkins is capable to orchestrate the entire software delivery pipeline – called Continuous Delivery (CD) and even further to provide Continuous Deployment.
Following is a diagrammatic representation of the Jenkins pipeline.
In many scenarios, a single Jenkins server isn't sufficient to cater to the needs of multiple code-commits triggering zillions of pipelines. In such scenarios, distributed Jenkins architecture (Master Controller - Agents) can be leveraged.