Jenkins 101: A Comprehensive Guide to Continuous Integration and Deployment : Part 1
Published: 2023-03-04 15:07:28

## Introduction

Jenkins is an open-source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery.

## What is CI/CD?

Continuous integration and continuous deployment/delivery is a way to take code, package it up and deploy it to a system. That system could be serverless(lambda function/azure function ) or could be a virtual machine or an EC2 instance, or could be some container running somewhere with docker, etc.

## Continuous Integration (CI)

In layman's terms, it is a process of you taking the code and packaging it up and then giving it up to the CD process.

e.g. IKEA - If we order some furniture from IKEA, they first assemble all the components, package them up and then deliver them to our houses.

### Key pieces of CI

- Cloning the GitHub repository

- Running all the tests

- Run any type of security checks

## Continuous Delivery/Deployment (CD)

In layman's terms, CD is a process where you deploy the code to some system, and that system could be serverless, container, virtual machine, etc. It could be even bare metal, it does not need to be on the cloud.

Once the code is packaged and tested in the CI process, you then deliver it to any of the systems you are running on.

### Difference between Continuous Delivery and Continuous Deployment

- In **Continuous Delivery**, there is a manual intervention. We have to manually click a button to deploy the code.

- In **Continuous Deployment**, there is no manual intervention. We do not have to do anything manually to deploy the code.

### Key pieces of CD

- It authenticates you to the system

- It ensures that the code that's being deployed is working as desired by running the tests against the system

## Why Jenkins?

There are 4 main reasons to prefer Jenkins for CI/CD:

- Open Source

- 1000+ Plugins

- Completely Free

- Enterprise option available

## What are plugins?

Plugins allow you to connect to other services.

e.g. If you want to connect Jenkins to Azure (Azure plugin required), Jenkins to AWS (AWS plugin required), etc.

### Where to find plugins:

1. Manage Jenkins

2. Manage Plugins

3. Update/Available/Installed/Advanced

## Conclusion

In conclusion, Jenkins is a powerful open-source automation server that streamlines software development processes by facilitating continuous integration and continuous delivery/deployment. With its robust features, flexible plugin architecture, and strong community support, Jenkins has become a popular choice for DevOps teams worldwide. Whether you're a beginner or an experienced developer, mastering Jenkins can help you take your software development to the next level, enabling you to build, test, and deploy applications with confidence and ease. So why wait? Start exploring Jenkins today and unlock the full potential of your CI/CD pipeline!

## Resources

[Kodekloud](https://kodekloud.com/courses/jenkins/?utm_medium=aff-dsorav75&utm_content=%2F&utm_source=dsourav155.hashnode.dev):

It has one of the best Jenkins courses. In this course, you will learn with demos at each step for better visualization of the concepts about what CI/CD is, why we should use Jenkins, how to create pipelines, use of different plugins, Jenkins security and much more along with the hands-on practice for these concepts to give you a solid foundation of Jenkins.

[Civitas](https://discord.com/invite/kaGtk5ASgr):

It is an open-source community dedicated to helping beginners and newcomers in the tech industry. Its focus is on providing valuable resources such as YouTube videos, handwritten notes, and appropriate links to help individuals learn and grow in their respective fields. In addition to resources, they also offer live doubt-solving sessions and private classes for selective students at no cost.