Case Study on Jenkins
What is Jenkins, Why to Use It, How It Works and Where To use it ?
What is Jenkins ?
Jenkins is a self-contained, open source automation server which is used to automate all sorts of tasks like building, testing, 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.
Some of the possible steps that can be performed using Jenkins are:
Software build using build systems such as Gradle, Maven, and more.
Automation testing using test frameworks such as Nose2, PyTest, Robot, Selenium, and more.
Execute test scripts (using Windows terminal, Linux shell, etc.
Achieve test results and perform post actions such as printing test reports, and more.
Execute test scenarios against different input combinations for obtaining improved test coverage.
Continuous Integration (CI) where the artifacts are automatically created and tested. This aids in identification of issues in the product at an early stage of development.
At the time of what is Jenkins blog, it had close to 1500+ plugins contributed by the community. Plugins help in customizing the experience with Jenkins, along with providing support for accelerating activities related to building, deploying, and automating a project.
Why To Use Jenkins ?
Jenkins is used to build and test your product continuously, so developers can continuously integrate changes into the build. Jenkins is the most popular open source CI/CD tool on the market today.
In almost any discussion about open source continuous integration or continuous delivery (CI/CD) tools, Jenkins will inevitably be brought up.
Automation (including test automation) is one of the key practices that allow DevOps teams to deliver “faster, better, cheaper” technology solutions.
Jenkins has been a key enabling technology that is increasingly helping DevOps practices gain widespread adoption in many organizations around the world.
CASE STUDY :
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.”
With roughly 400 IT-related employees in the company and just about 80 on the operations team, the rest of the developers support approximately 2,000 other employees. Within the Ops group, Jon is a part of a six-man DevTools team who maintain the server platform that runs most of the company’s client/customer-related business applications. “We keep approximately 1,000 servers alive, one way or the other,” Jon adds. “The servers are put into different categories, depending on which environment they live in.”
They also manage the tooling-services supporting Topdanmark developer teams.
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.
Driving developer success with automation and responsiveness
Due to the very nature of development and a constant flow of business needs, it’s imperative for organizations to support developers by supplying tools and solutions that allow them to create the software needed to solve the task at hand. Jon agrees, adding that Topdanmark delivers the tooling and the process-supported platform upon which the development teams run their applications. “This,” he said, “enforces the need for us to keep up with the software world: to know what’s out there, how it can help us, and how we can use it to support the development teams.”
“The secret behind this,” Jon added, “is that all the new Jenkins instances are based on spinning up a custom Jenkins Docker image, bootstrapping some multi-branch configuration — like predefined plugins — and creating the multi branch repositories from one or more GitHub organizations that are part of the request-form.”
To simplify the user experience even further, Topdanmark created quite a few Groovy scripts that can be used in the Jenkinsfiles. “We basically hide all the complicated stuff,” Jon noted, “but maintain control regarding internal audits, and other corporate rules. For example, we now have a traceable path from developer to deployed application.”
Evolving tools, evolving applications
With the help of Jenkins, Topdanmark keeps tooling up to date. “We are in continuous dialogue with our developers regarding what they want and need to do their job,” Jon said. “By continuously evolving our tools, we better support them as they continue to evolve their applications.”
In Jon’s Jenkins Is The Way user story, he cites several results due to his team’s use of Jenkins. These include 100% automation of Jenkins instances and the ability to release and deploy an artifact whenever, wherever. However, the ultimate outcome is one that Topdanmark — and Jon — is proudest of: happy software developers, developing great software.