Jenkins & Its Use Cases

Himalaya Sahu
6 min readMar 12, 2021

What is Jenkins ?

Continuous Integration is the most important part of DevOps that is used to integrate various DevOps stages. Jenkins is the most famous Continuous Integration tool, I know you are curious to know the reason behind the popularity of Jenkins, and if Jenkins is easy to learn.

Jenkins is an open-source automation tool written in Java with plugins built for Continuous Integration purposes. Jenkins is used to build and test your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. It also allows you to continuously deliver your software by integrating with a large number of testing and deployment technologies.

Advantages of Jenkins

  • It is open source and it is user-friendly, easy to install and does not require additional installations or components.
  • It is free of cost.
  • Easily Configurable. Jenkins can be easily modified and extended. It deploys code instantly, generates test reports. Jenkins can be configured according to the requirements for continuous integrations and continuous delivery.
  • Platform Independent. Jenkins is available for all platforms and different operating systems, whether OS X, Windows or Linux.
  • Rich Plugin ecosystem. The extensive pool of plugins makes Jenkins flexible and allows building, deploying and automating across various platforms.
  • Easy support. Because it is open source and widely used, there is no shortage of support from large online communities of agile teams.

Continuous Integration (CI)

Continuous integration is a practice that forces developers to frequently integrate their code into a central repository. Instead of building out new features to the end without any quality measurement, every change is tested against the central repository in order to anticipate errors.

Every developer commits daily to a shared mainline and every commit triggers an automated process to build and test. If building or testing fails it can be detected and fixed within minutes without compromising the whole structure, workflow, and project. In that way, it is possible to isolate problems, solving them faster and provide higher-quality products.

Continuous Delivery (CD)

Continuous delivery is the ability to make changes of all types — such as new features, configuration changes, error fixes, experiments — into production in a safe and efficient manner using short work cycles.

The main goal in continuous delivery is to make deployments predictable as routine activities that can be achieved upon request. To be successful, the code needs to always be in a deployable state even when there is a scenario with lots of developers working and making changes on a daily basis. All of the code progress and changes are delivered in a nonstop way with high quality and low risks. The end result is one or more artifacts that can be deployed to production.

Continuous Deployment (CD)

Continuous deployment, also known as continuous implementation, is an advanced stage of continuous delivery that the automation process does not end at the delivery stage. In this methodology, every change that is validated at the automatic testing stage is later implemented at the production stage.

The fail fast strategy is always of the utmost importance when deploying to production. Since every change is deployed to production, it is possible to identify edge cases and unexpected behaviours that would be very hard to identify with automated tests. To fully take advantage of continuous deployment, it is important to have solid logging technology that allows you to identify the increasing error count on newer versions. In addition, a trustworthy orchestration technology like Kubernetes that will allow the new version to slowly be deployed to users until the full rollout or an incident is detected and the version is cancelled.

Jenkins Case Study: Topdanmark

Innovative technology is key for Topdanmark, a Danish insurance company offering a customer service platform that allows clients to easily and quickly manage their insurance, investments and pensions. These tools are developed internally, using artificial intelligence (AI) to create smart data models, sophisticated speech recognition technologies and a highly responsive chatbot to deliver excellent customer experiences — all propelled by a reliable, robust infrastructure.
Like many enterprise organizations today, modernization is imperative, especially for those burdened with legacy systems. Topdanmark is no different and is undergoing an extensive transformation, moving from relying on 100% homegrown software to utilizing externally developed “standard” software. So, Topdanmark’s DevTools engineers seized this opportunity to automate their continuous integration delivery platform and take advantage of the cloud.
“We used Jenkins because almost everyone knows what Jenkins is and how to use it,” said DevTools engineer Jon Brohauge. “It is the ‘de facto’ product to use in our world. And it’s extremely configurable.”

Delivering tools and infrastructure to drive innovation

Since the company relies heavily on IT-infrastructure, it is imperative that every bit “just works,” according to Jon. “Compared to similar companies,” he continued, “we take pride in having an infrastructure that is rarely unavailable. We have our issues too, but since we have a relatively flat organizational structure, we can easily gather the relevant people to resolve any issue at hand, quickly.”

Building automation with a highly-configurable Jenkins platform

“We had a long history of not finding standard software sufficient for our needs, and always have tweaks and changes to their implementation,” Jon said. “For security reasons, we run most of the software on-premise,” Jon said. It should be noted that Topdanmark’s DevTools team has been one of the front runners pushing for increased cloud usage. “We are moving towards more cloud, but as in all large companies by Danish standards, any change in the way things get done takes time,” Jon admitted.

Most of Topdanmark’s servers and all their desktops are virtualized, so they are easy to replace if something breaks down. In terms of Jenkins installations, they are all virtual.

Topdanmark has two Jenkins setups. “We have two sets of systems, legacy and CI/CD,” Jon explains. “In our legacy setup, we have test, integration, release, and production environments. In our CI/CD setup, we have a non-production and a production environment.”

The legacy setup is part of a pre-scheduled handheld deployment cycle, customized to whichever team uses it. Due to all the customizations, it could take several days from the developer request to having a working Jenkins instance. “This, of course, is not very flexible,” Jon noted. “But now that we’re moving towards CI/CD, we’ve opted to use Jenkins again. That’s because of its flexibility and ease of customization.”

The new setup is automated and easier to maintain. For this new iteration, the team took a different, more modern approach to deliver the service to its users. They created a self-service portal that allows anyone within the company to ‘order’ a Jenkins instance, a huge timesaver. Jon noted that it now takes less than five minutes to have a Jenkins instance up and running, configured to accept builds, based on Jenkinsfiles, and in a multibranch configuration.

Hope you all find it interesting..!!!

Thankyou..!!!

--

--