Understanding CI/CD and Jenkins ๐Ÿš€

Nikitha JainNikitha Jain
4 min read

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? ๐Ÿ› ๏ธ๐Ÿ’จ

  1. Code Commit: Developer pushes code to GitHub

    Tool: GitHub, GitLab

  2. Build: Jenkins compiles the code using a build tool

    Tool: Maven, Gradle

  3. Test: Jenkins runs unit tests and integration tests.

    Tool: SonarQube, Selenium

  4. Deploy to Staging: Jenkins pushes the code to a staging server.

    Tool: Docker, Kubernetes, Ansible

  5. Approval: A team member reviews the staging build and approves it.

    Tool: Jenkins (with Approvals), Slack / Teams

  6. Deploy to Production: Jenkins automatically deploys the code to production.

    Tool: Jenkins, Docker, Kubernetes, Terraform

    Jenkins pipeline tutorial : First step guide to Continuous Delivery | by  Kuldeep Bhatt | FAUN โ€” Developer Community ๐Ÿพ

    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!

0
Subscribe to my newsletter

Read articles from Nikitha Jain directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Nikitha Jain
Nikitha Jain