Industrial use-cases of Jenkins
Jenkins is a self-contained, open source automation server which 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.
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.
1. Jenkins lowers the Effort of repeated coding
with the uses of Jenkins, one can convert a command prompt code into a GUI button click. This can be done by wrapping up the script as a Jenkins job. Parameterized Jenkins jobs can be created for customization or to take user input. Thus, hundreds of lines of code writing can be saved.
2. Integration of Individual Jobs
Jenkins jobs are usually small tools. They serve small purposes and quite simple. Jenkins provides a pipeline plugin using which multiple jobs can be combined. Pipelining provides such a benefit which Linux users can understand more than anyone. Both sequential or parallel combination is possible.
3. Synchronization with Slack
A large team uses a centralized platform for communication. Slack is one of such most popular platforms. Slack integration can be done to Jenkins and thus communication such as activities that have been triggered, its time, users name, results, etc. can be shared with other people.
4. Effortless Auditing
Jenkins jobs, when run, capture console output from stdout as well as stderr. Troubleshooting with the uses of Jenkins is also very clear. For performance tuning each individual job, run timing can be measured and slowest step can be identified using Time stamper plugin.
5. Greater data support for project management
For project management, each activity is wrapped as a Jenkins job. For each Jenkins job, success or failure can be identified, and job completion time can be measured.
Netflix’s use of Jenkins for continuous integration has evolved over the years. They started with a single massive Jenkins master in their datacenter and have evolved to running 25 Jenkins masters in AWS. Jenkins is used throughout Netflix for a variety of automation tasks above just simple continuous integration.
A Jenkins job is configured to invoke Nebula to build, test and package the application code. If the repository being built is a library, Nebula will publish the .jar to our artifact repository. If the repository is an application, then the Nebula os package plugin will be executed.
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 ofcourse take several time 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.