Use Case: Jenkins — How Companies Use Jenkins

ivsntejesh
6 min readMar 23, 2021

In this article, I will discuss what is Jenkins, What does Jenkins provide, How are the competitors, what does Jenkins brings to the table, How companies are using Jenkins? Let’s dive into the topics.

source: Jenkins

What is Jenkins?

Jenkins is a self-contained, open-source automation server that can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.

Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed.

It is a Java-based CI/CD tool part of DevOps. By using Jenkins, software companies can accelerate their software development process, as Jenkins can automate build and test at a rapid rate.

Jenkins automates the software builds in a continuous manner and lets the developers know about the errors at an early stage.

What is Continous Integration?

Continuous integration (CI) is the practice of automating the integration of code changes from multiple contributors into a single software project. It’s a primary DevOps best practice, allowing developers to frequently merge code changes into a central repository where builds and tests then run. Automated tools are used to assert the new code’s correctness before integration.

A source code version control system is the crux of the CI process. The version control system is also supplemented with other checks like automated code quality tests, syntax style review tools, and more.

source: PaperDuty

Why is Continuous Integration Needed?

In the past, developers on a team might work in isolation for an extended period of time and only merge their changes to the master branch once their work was completed. This made merging code changes difficult and time-consuming, and also resulted in bugs accumulating for a long time without correction. These factors made it harder to deliver updates to customers quickly.

Benefits of Continous Integration:

  • Improves developer productivity
  • Finds and Addresses bugs quickly
  • Deliver updates fatser

Jenkins helps in all the features mentioned above. Begin an open-source project makes it more powerful when compared to other CI/CD tools.

source: datanyze

Some points that make Jenkins popular

  • Jenkins Lowers The Effort Of Converting CLI To GUI
  • The Pipeline Integrates Individual Jobs For A Bigger Purpose
  • Auditing The Previous Run Is Effortless
  • Project Management Now Has More Accurate Data Support
  • It is an open-source tool with great community support.
  • It is easy to install.
  • It has 1000+ plugins to ease your work. If a plugin does not exist, you can code it and share it with the community.
  • It is free of cost.
  • It is built with Java and hence, it is portable to all the major platforms.
source: guru99

The above image shows the before and after scenario of using Jenkins.

source: guru99.com

Use cases:

IBM

When it was time to transition from Chef cookbooks to Ansible playbooks, IBM used Jenkins to stay consistent across the board.

Background:

Alec Rieger is a Lead Software Engineer for a department in IBM that is currently a Chef shop, an open-source cloud configuration that translates system administration tasks into reusable definitions, otherwise known as “cookbooks.” The team is in the transition to becoming an Ansible engine, open-source software that doesn’t rely on a client-server model. Ansible takes difficult tasks and turns them into repeatable “playbooks,” simplifying matters greatly and speeding up production.

“We have 500+ cookbooks and will have as many or more Ansible playbooks,” says Rieger. “We use Jenkins to simplify our testing, build, and deploy process. It helps us stay consistent across the board.”

Solution & Results:

According to Rieger, “We are currently running four Jenkins masters in different regions to keep them redundant. And we have eight agents per master because we are still running on virtual machines. We haven’t made the switch to containers yet, so we can spin up agents on demand.”

Rieger’s team’s servers run builds on each Chef's cookbook on a daily basis and handle countless jobs per day during normal work hours. “Our Jenkins setup allows for all of our projects to be consistent in the way it is built, tested, and versioned,” Rieger added. “Jenkins handles running the static code analysis, testing, and git versioning.”

It also keeps the entire team aware of progress in real-time. “Jenkins both emails and notifies via slack for successes and failures,” says Rieger. “So our team has insight into every build.”

Jenkins helps IBM manage many nodes on a large scale. “We use Jenkins pipelines for each of our builds,” adds Rieger. “The plugin community gives us a lot of flexibility and countless features that we can use to improve our processes.”

And it has yielded great results, including:

  • consistent testing
  • consistent builds
  • insight into builds
  • shortened development release cycles

RedHat

Open-source software development uses Jenkins to automate mundane tasks so developers can focus on more important things.

Background:

Our software developers’ main challenge is the slowdown that comes with quality checks and getting stakeholder approvals without coming to a full halt. We wanted to automatically run the software development process at a specific time. At various intervals in the process, we have the work go through QE and the SMEs’ approval.

Solution & Results:

Jenkins offered excellent support with its considerable number of plugins and the ease of building and developing pipelines. We have solved many of the problems and overcame many of the challenges by understanding the platform. We were able to customize as required using libraries that we have written using Groovy.

To make things easier for this particular project, we relied on a few choice plugins. These include the Gerrit plugin, the AWS EC2 plugin, the Openshift plugin, and the Thin backup plugin.

We were pleased to see the following results:

  • releases were 5x faster
  • automated error reporting and customization helped us save time with each release
  • ability to focus on important things because we were able to automate the boring stuff by almost 99%

Thank you all for reaching this point. Hope it might give some insight into Jenkins.

Can connect with me on LinkedIn, can dm me if there are any doubts and suggestions

https://www.linkedin.com/in/tejesh-itha-59083215a

--

--