Understanding CI/CD and Jenkins ๐


You always hear CI/CD. So what is CI and CD? and does this tool can automate and can it integrate with other tools as well. Can we consider Jenkins as a CI/CD tool. CI/CD is a tool or is it a methodology? Just because it integrates with other tools and does automating can it be called the heart of the DevOps tools.
Letโs find out what Jenkins does and what is CI/CD in a fun way!
What is CI/CD? ๐ค
CI means Continuous Integration, and CD can mean Continuous Deployment or Continuous Delivery.
CI/CD is a methodology that helps to integrate with many other tools & ensures shorter and smooth Software Development Life Cycle. These are practices that help software teams update their apps more often and with fewer errors.
Continuous Integration (CI) is about automatically adding code changes from different people into a shared codebase several times a day. Each change is checked by an automated build and tests, which helps find bugs early.
Continuous Delivery (CD) ensures that the code is always ready to be deployed. Continuous Deployment takes it further by automatically deploying every change that passes the CI tests to production.
Before CI/CD: The Old Way of Doing Things ๐ฐ๏ธ
Manual struggles with the Integration process
Long Software development life cycle (SDLC) process
Doing everything Manually including Tests
The process of Deployment to production was risky.
After CI/CD: A New Era of Speed and Automation ๐
Automation and providing Integration
Shorter & Smooth SDLC process
Automated Test
Reliable deployments
Key Benefits of CI/CD ๐
Speed: Continuous integration means faster builds and deployments.
Quality: Automated tests ensure that code is always checked for bugs and errors.
Collaboration: Teams can work together more easily, with fewer conflicts and better communication.
Reliability: With automated rollbacks and quick fixes, deployments are more stable than ever.
What is Jenkins?๐ค
Jenkins is a Open source tool that is written in Java, hence it is free and community supported & might be your first choice tool for CI.
Jenkins can run on any major platform without any Compatibility issues.
We can install Jenkins on Windows, Linux and Mac.
Jenkins can automate the Entire Software Development Lifecycle.
Jenkins was originally developed by Sun microsystem in 2004 under the name Hudson.
The project was later named Jenkins when oracle bought microsystem.
Jenkins has a groovy syntax.
How Does a Jenkins CI/CD Pipeline Work? ๐ ๏ธ๐จ
Code Commit: Developer pushes code to GitHub
Tool: GitHub, GitLab
Build: Jenkins compiles the code using a build tool
Tool: Maven, Gradle
Test: Jenkins runs unit tests and integration tests.
Tool: SonarQube, Selenium
Deploy to Staging: Jenkins pushes the code to a staging server.
Tool: Docker, Kubernetes, Ansible
Approval: A team member reviews the staging build and approves it.
Tool: Jenkins (with Approvals), Slack / Teams
Deploy to Production: Jenkins automatically deploys the code to production.
Tool: Jenkins, Docker, Kubernetes, Terraform
Jenkins automates everything from testing to deployment, making the process faster and more reliable! ๐
Advantages of Jenkins:
Jenkins has lot of plugins, you can write your own plugin or can use community plugin.
Jenkins is not just a tool. It is a framework i.e, you can do whatever you want. All you need is plugins.
We can attach Slaves (nodes) to master. It instructs other slaves to do job or else Jenkins itself does the job.
It can create Labels.
Jenkins also behaves as Crone server replacement i.e, Can schedule the task.
Conclusion๐:
Understanding CI/CD helps us that it does automation and Integration all together that makes the software development life cycle process shorter and smooth. CI/CD tool like Jenkins automates everything and also checks for the bugs and helps you to rerun the build whenever you want to. Jenkins is GUI based tool, you can write your code in Groovy syntax and deploy your applications to production easily and quickly.
Happy Learning!
Subscribe to my newsletter
Read articles from Nikitha Jain directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
