Jenkins — Arth Task 29
✍🏻 Research for industry use cases of Jenkins and how it works.
Jenkins is a powerful application that allows continuous integration and continuous delivery of projects, regardless of the platform you are working on. It is a free source that can handle any kind of build or continuous integration. You can integrate Jenkins with a number of testing and deployment technologies.
The following flowchart demonstrates a very simple workflow of how Jenkins works.
What is Jenkins used for?
Continuous Integration and Continuous Delivery are the most important part of the DevOps world and Jenkins is the most famous continuous integration and continuous delivery tool. With CI/CD, industries can accelerate their development process. Let’s understand what is Continuous Integration(CI) and Continuous Delivery(CD) first.
What is Continuous Integration?
Continuous Integration is a development practice that requires developers to integrate code into a shared repository at regular intervals. This concept was meant to remove the problem of finding the later occurrences of issues in the build lifecycle. Continuous integration requires the developers to have frequent builds. The common practice is that whenever a code commit occurs, a build should be triggered.
In DevOps, when you make changes to your product, such as modifying configuration or adding new features quickly and safely by keeping the code in a deployable state all the time, we call it Continuous Delivery.
Continuous Delivery makes deployments routine affairs. The deployments could be of an embedded system or an extensively distributed system. In this process, the changes in your code get automatically prepared, tested, and built. You do so by removing the hardening, testing, and integration phases that are usually present in ‘dev complete.’
Real-world case study of Jenkins — Topdanmark
Topdanmark, a Danish insurance company offering a customer service platform that allows clients to easily and quickly manage their insurance, investments, and pensions.
Delivering tools and infrastructure to drive innovation
Since the company relies heavily on IT infrastructure, it is imperative that every bit just works.
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, There is a six-man DevTools team who maintain the server platform that runs most of the company’s client/customer-related business applications. They keep approximately 1,000 servers alive. The servers are put into different categories, depending on which environment they live in.
Building automation with a highly configurable Jenkins platform
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, legacy and CI/CD. In legacy setup, They have test, integration, release, and production environments. In CI/CD setup, they 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 is of course take several times but using CI/CD will make it easy and fast.
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.
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.
The secret behind this 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. They basically hide all the complicated stuff but maintain control regarding internal audits, and other corporate rules.
Evolving tools, evolving applications
With the help of Jenkins, Topdanmark keeps tooling up to date. They are in continuous dialogue with the developers regarding what they want and need to do their job. By continuously evolving the tools, they 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.
Jenkins is a very advanced tool of DevOps that is making things extremely easy and fast. Using this tool industries are really making their technology better and could be able to provide their service better.