Jenkins

  

 Jenkins


Jenkins is an open source automation server written in Java. It is used to continuously build and test software projects, enabling developers to set up a CI/CD environment. It also supports version control tools like Subversion, Git, Mercurial, and Maven.

Jenkins is well-documented and extremely extensible, with a rich ecosystem of plugins and integrations. For that reason, it excels when used in large projects that require lots of customization.

While Jenkins itself is free, it must be run on a server which will need attention, updates, and maintenance.



The above diagram shows the Jenkins pipeline. This includes continuous integration and continuous delivery of jobs namely the Build, Deploy, Test, and Release. It is done as these jobs are interdependent and forms the pipeline in a particular format. This involves continuous automation from one stage to another to bring down the cost, time, and number of iterations without affecting the quality.

Why We Need Jenkins pipeline?


The Jenkins pipeline is used to solve several problems in Continuous Integration and Continuous delivery space. 

For example, there are more than hundreds of jobs in the CI/CD pipeline and it is very difficult to manage them manually or by any other tools, the numbers of tasks in the single CD are building, pre-deployment testing, deploying in a staged environment, pre-deployment testing and deployment to production. If there are 20 jobs in a small company the CD would reach 120 numbers of jobs which is very hard to manage. Imagine for a large company the number of jobs would be in thousands and is very difficult and sometimes impossible to manage without the CI/CD Jenkins pipeline.

 One such job instance is shown in the diagram below.


The areas or the problem solved by Jenkins are as follows,

  • The number of jobs in thousands.
  • Maintenance is very hard and expensive
  • There was no centralization for the jobs.
  • Using code when there were no powerful or easier methods of doing the deployment.

All this is solved by Jenkins pipeline in managing a large number of jobs, centralization, easier and cost-effective maintenance, or not much maintenance and simple code to do the deployment.


Advantages of Jenkins pipeline


The Jenkins pipeline in CI/CD automates many tasks and makes the CI/CD pipeline tasks reliable, efficient, repeatable, and high in quality.

It has made the process code easier for iterative development with other features such as audit trails, code review, and access control and has sound approval and promotion process by many project members. Multiple jobs from a single project can be managed easily.

Other Advantages are as follows,

  • Review of code on the pipeline is possible
  • Make many pipelines automatically for all the branches with a single Jenkins file.
  • The Jenkins pipeline can be reviewed
  • Single source for the pipeline and be customized for multiple users.
  • We can use the Web User interface or Jenkins file directly.


Industrial Use-Case of Jenkins


Gainsight

Humanizing CSX with tech innovation and a robust DevSecOps platform

Gainsight’s customer service experience platform helps customer success teams at more than 100 leading IT and healthcare clients. How? By driving engagement for tens of thousands of their customers.

That’s why the engineering team at Gainsight approached the customer experience by building a smarter, faster DevSecOps platform using Jenkins. They stuck to an infrastructure-as-code approach while integrating various tools and programming languages all within the platform. 

CHALLENGE: Maintain an infrastructure-as-code approach while integrating various tools and programming languages within the platform, all while securing processes with better visibility and air-tight quality control.

SOLUTION: A flexible and scalable DevSecOps infrastructure that provides Gainsight with keener operational insight, ease of collaboration, and the ability to accelerate releases to stay a step ahead of the competition.

RESULTS:

  • infrastructure costs reduced by 40%
  • builds are 30% faster
  • better and seamless communication on builds and releases
  • 95% of infrastructure scalable with code
  • virtually no more manual processes


Comments

Popular posts from this blog

Automation Using Python

Chat Server using UDP

NETWORK TOPOLOGY