What is CI/CD pipeline? What is Jenkins?

What is CI/CD pipeline? What is Jenkins?

CI/CD -> Continuous Integration and Continuous Deployment or Delivery.

It is a methodology of software development life cycle (SDLC).

Continuous Integration = Continous Build + Continous test

CI/CD Pipeline

When we build a CI/CD pipeline we keep in mind that when the pipeline is created it is passed through various stages like Version control --> Building the image --> testing it --> deploying it --> auto testing --> deploying in the production environment --> lastly followed by giving Quality Assurance. It is the stage any error is encountered then an automatic message is sent to the production team to rectify it.

When a pipeline is built Jenkins is just used as an integration tool. GitHub is used to Plan and Code, Maven or Gradle are used to Build, Selenuim/Junit is used to Test, Deployment and Operations are taken by Chef or Puppet and Monitoring is done via Nagios. From this maximum are Open-source tools.

Now ...

Jenkins

  • Jenkins is an open-source project written in Java that runs on Windows, macOS and other Unix-like operating systems. It is free, community supported and might be your first choice tool for CI.

  • Jenkins automates the entire software development life cycle.

  • Jenkins was originally developed by sun microsystems in 2004 under the name 'Hudson'.

  • The project was later named Jenkins when Oracle bought Microsystems.

  • It can run on any major platform without any compatibility issues.

  • Whenever developers write code, we integrate all the code developers then and we build, test and deliver/deploy to the client. This process is called CI/CD.

  • Jenkins helps to achieve this.

  • Because of CI, Now bugs will be reported fast and get rectified fast. So the entire software development happens fast.

Workflow of Jenkins

  • We can get attach Git, Maven, Selenium and Artifactory plugins to Jenkins.

  • Once developers put the code in Git Hub, Jenkins pulls that code and sends it to Maven for Build.

  • Once the build is done jenkins pull that code and send it to Selenium for testing.

  • Once testing is done, then Jenkins will pull that code and send it to satisfactory as per requirement and so on.

  • We can also deploy with Jenkins.

Advantages of Jenkins

  • It has lots of plugins available.

  • You can create your plug-in.

  • You can use a 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 Jenkins master. It instructs others (slaves) to do the job. If slaves are not available, Jenkins itself does the job.

  • Jenkins also behaves as a crone server Replacement i.e. can do the scheduled task.

  • It can create labels. (assigning what every node can do).

Plugins

Plugins are small libraries that add new abilities to Jenkins and can provide integration points to other tools.