Skip to main content

Command Palette

Search for a command to run...

What is Jenkins? Complete Introduction and Setup Guide 🔧⚙️

Part 1

Published
4 min read

Continuous Integration (CI)

It is a DevOps practice where code is frequently integrated into a shared repository, followed by automated build and testing processes.
The main goal of CI is to detect issues early, improve software quality, and speed up delivery.

Before Continuous Integration

Earlier, software development followed a very traditional approach:

  • Developers focused only on writing code

  • Separate integration teams handled code merging and builds

  • Dedicated testing teams validated the application

This resulted in:

  • Larger team sizes

  • Increased human effort and cost

  • Delayed releases

  • Higher chances of integration failures because code was merged very late

After Continuous Integration

With CI tools, the process became automated and efficient. Now:

  • Developers simply push their code to a Version Control System (like Git)

  • The CI server automatically pulls the latest code

  • It then builds the application and runs automated tests

This automation reduces manual effort, improves collaboration, minimizes errors, and accelerates software delivery.

🚀DevOps Zero to Hero- 💡Day 3: Continuous Integration (CI)📌 | by  Sreekanth Thummala | DevOps.dev


Continuous Delivery/Deployment (CD)

After Continuous Integration handles build and testing, the next important DevOps stage focuses on getting the application into production efficiently. This is where Continuous Delivery (CD) and Continuous Deployment come into play.

Both practices aim to make software releases faster, reliable, and less manual, but they differ slightly in how the final deployment happens.

Continuous Delivery

Continuous Delivery ensures that every code change which passes automated testing is packaged, validated, and kept ready for production deployment.
However, the final move to production still requires a manual approval or trigger.

  • Software is always in a deployable state

  • Reduces release risks

  • Faster and predictable deployments

  • Gives organizations control with manual approval

Simply put:

Code → Build → Test → Ready for Production (Manual Approval Required)

Continuous Deployment

Continuous Deployment takes automation to the next level.
Here, once the code passes all the automated tests, it is automatically deployed to production without any human intervention.

  • Extremely fast feature delivery

  • Immediate user feedback

  • Eliminates manual effort

  • Highly automated and efficient pipeline

Simply put:

Code → Build → Test → Automatically Goes to Production

What is continuous deployment? Why it matters and how to do it right | Blog  — Northflank


Today, CI/CD can be implemented end-to-end using various automation tools. These tools help manage code integration, building, testing, and deployment in a seamless pipeline. Popular CI/CD platforms include:

  • Jenkins

  • Azure DevOps Pipelines

  • AWS CodePipeline

  • GitLab CI/CD

  • GitHub Actions

Let’s learn Jenkins step by step! 🧑‍💻

Jenkins is an open-source automation server written in Java. It supports a rich ecosystem of plugins, which extend its functionality similar to how we install apps on a mobile phone to get extra features.
Plugins help Jenkins integrate with tools like Git, Docker, Kubernetes, Maven, Cloud platforms, and more, making CI/CD pipelines powerful and flexible.

Since Jenkins is built using Java, we must install Java on the server before running Jenkins.

yum install java-17-amazon-corretto -y #To install java
java -version #To get java version

By default, Jenkins runs on port 8080.

To quickly set up Jenkins on an EC2 instance, simply run the below commands:

sudo yum update –y
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum upgrade
sudo yum install java-17-amazon-corretto -y
sudo yum install jenkins git -y
sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins

Open your browser and enter:

http://<EC2-Public-IP>:8080

Copy the default administrator password using the command below

 cat /var/lib/jenkins/secrets/initialAdminPassword

Paste it into the Jenkins setup screen, complete the administrator profile, install recommended plugins, and Jenkins is ready to use 😉

Conclusion

Jenkins is a powerful and flexible DevOps tool that plays a key role in implementing Continuous Integration and Continuous Delivery/Deployment. Its open-source nature and vast plugin ecosystem make it highly adaptable to different environments, technologies, and workflows. By automating code integration, builds, testing, and deployments, Jenkins reduces manual effort, improves software quality, and speeds up delivery.

Setting up Jenkins is simple, and once configured, it becomes a reliable backbone for building efficient, scalable, and modern CI/CD pipelines—making it an essential tool for any DevOps journey.

If you found this guide useful, please like ❤️, comment, and share your thoughts or questions. Stay tuned for the next part, where we'll explore advanced Docker concepts and practices.

Thank you,
Yours, Rama Grandhi

More from this blog