Jenkins - Overview
Jenkins - Modern Overview
Section titled “Jenkins - Modern Overview”Why Jenkins?
Section titled “Why Jenkins?”Jenkins is a leading open-source automation server that enables developers around the world to reliably build, test, and deploy their software. It facilitates Continuous Integration (CI) and Continuous Delivery (CD), automating crucial parts of the software development lifecycle.
Imagine a workflow: 1. A developer commits code changes to a shared repository (like Git). 2. Jenkins automatically detects this change. 3. It checks out the code, compiles it, and runs automated tests (unit, integration, etc.). 4. If tests pass, it packages the application. 5. Optionally, it deploys the application to a staging or production environment. 6. Finally, it notifies the team of the build status (success or failure). This automated pipeline significantly speeds up development and improves code quality.
While Jenkins originated from a project called Hudson, Jenkins is now the independently governed, community-driven standard in the CI/CD space, boasting a vast ecosystem of plugins.
What are Continuous Integration and Continuous Delivery/Deployment (CI/CD)?
Section titled “What are Continuous Integration and Continuous Delivery/Deployment (CI/CD)?”Continuous Integration (CI) is a development practice where developers frequently merge their code changes into a central repository, after which automated builds and tests are run. The key goals are to find and address bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates.
Continuous Delivery (CD) extends CI by automating the release process. After the build and test stages, the software is automatically deployed to a testing or staging environment. Deploying to production might require manual approval, but the process is automated.
Continuous Deployment goes one step further than Continuous Delivery. Every change that passes all stages of your production pipeline is released to your customers. There’s no human intervention, and only a failed test will prevent a new change to be deployed to production.
Modern System Requirements
Section titled “Modern System Requirements”| Component | Requirement |
|---|---|
| Java Runtime Environment (JRE) | Java 11 or Java 17 (LTS versions recommended). Check the official Jenkins documentation for the latest requirements. |
| Memory | Minimum 1 GB RAM, Recommended 4 GB+ RAM for typical usage. Larger instances or heavy plugin usage may require significantly more. |
| Disk Space | Minimum 10 GB available disk space. Recommended 50 GB+ for storing builds, artifacts, and workspace data. SSDs are highly recommended for performance. |
| Operating System | Windows, various Linux distributions (Ubuntu, Debian, CentOS, RHEL, etc.), macOS. Essentially any OS that supports a compatible Java version. |
| Deployment Options | Run directly using java -jar jenkins.war (embedded Jetty server). Deploy as a WAR in servlet containers like Apache Tomcat (9.x/10.x) or Jetty. Docker containers are a very popular and recommended deployment method. |
For detailed and up-to-date requirements, always refer to the official Jenkins documentation: https://www.jenkins.io/doc/administration/requirements/