Jenkins is an open source automation server. Jenkins manages and controls software delivery processes throughout the entire lifecycle, including build, document, test, package, stage, deployment, static code analysis and much more. It is a server-based system that runs in servlet containers such as Apache Tomcat.
Jenkins achieves Continuous Integration with the help of plugins. Plugins allows the integration of Various DevOps stages. If you want to integrate a particular tool, you need to install the plugins for that tool. For example: Git, Maven 2 project, Amazon EC2, HTML publisher etc.
Jenkins can be setup to watch for any code changes in places like GitHub, Bitbucket or GitLab and automatically do a build with tools like Maven and Gradle. Container technology such as Docker and Kubernetes can be utilised to initiate tests and take actions like rolling back or rolling forward in production.
History of Jenkins
Jenkins was originally developed as the Hudson project and was first released in Feb 2005. Around 2007 Hudson became known as a better alternative to Cruise Control and other open-source build-servers. During November 2010, after the acquisition of Sun Microsystems by Oracle, an issue arose in the Hudson community with respect to the infrastructure used, which grew to encompass questions over the stewardship and control by Oracle. On February 1, 2011, Oracle said that they intended to continue development of Hudson, and considered Jenkins a fork rather than a rename. Jenkins and Hudson therefore continued as two independent projects, each claiming the other is the fork.
Features of Jenkins
- Jenkins is a platform-agnostic, self-contained Java-based program, ready to run with packages for Windows, Mac OS, and Unix-like operating systems.
- There are hundreds of plugins available in the Update Center, integrating with every tool in the CI and CD toolchain.
- Jenkins can be extended by means of its plugin architecture, providing nearly endless possibilities for what it can do.
- Jenkins can easily distribute work across multiple machines for faster builds, tests, and deployments across multiple platforms.
- Jenkins is an open source resource backed by heavy community support.
Jenkins CI Process