Jenkins is now 15 years old. This makes it one of the oldest products in the DevOps toolchain. Despite its relative maturity, Jenkins is still showing impressive growth with year-over-year growth of Jenkins masters of around 50%. The number of jobs is also increasing rapidly with year-over-year growth of almost 60%. This is the kind of growth that most Silicon Valley firms would kill for, especially for a product with the level of maturity of Jenkins.
While it is undisputed that Jenkins is the number one product in the DevOps space, and while Jenkins is still growing rapidly, there is no time for complacency. Jenkins is facing a number of challenges. I would like to outline some of these challenges and give you a preview of the solutions that I will be talking about at DevOps World | Jenkins World on Dec. 4 in Lisbon.
One of the key issues with Jenkins is its user experience (UX). The overall look and feel of Jenkins hasn’t matured much over the past decade. There have been some successful add ons like Blue Ocean, but Blue Ocean has been limited in its scope. It has been focused on pipelines and hasn’t replaced parts of the Jenkins UX which aren’t concerned with the visualization or development of pipelines. One of the key challenges when it comes to replacing Jenkins UX is that each one of the 1700 or so plugins can contribute elements to the UX which adds considerable complexity. Coming up with a new UX for the core of Jenkins on its own would be relatively straightforward, however, if the plugins were left behind then Jenkins simply wouldn’t be Jenkins. Plugins are where the power of Jenkins lies and the source of its extensibility.
Another issue is that some of the key frameworks are out of date. Over the past year, we have worked hard to migrate Jenkins from Java 8 to Java 11. There are other frameworks which are out of date and migrating these over is a huge job.
Great power comes with the nearly 1700 Jenkins plugins out there today. Plugins give Jenkins its flexibility and allow it to cover almost any enterprise use case. The multitude of plugins is also a source of complexity and occasional instability. A lot of things can be done to make the experience of both managing and developing plugins for Jenkins better. Some areas of improvement, for example, are around the isolation of plugins and their libraries.
If we can solve these three topics - the Jenkins UX, framework refreshes and plugin management - it will go a long way toward a healthy base for Jenkins for the next 15 years.
I will be talking about these issues and the plans that we have to solve them. In December, I should also be able to provide a sneak peek at the proposed UX changes during my talk at DevOps World | Jenkins World on the 4th of December in Lisbon. I would like to invite you all to attend. If you are not able to travel then the talk will be posted on YouTube sometime during the month of December.