Jenkins CI / CD takes the GitOps Highway

Jenkins, the first version of which was released in 2011, is an open source tool for continuous delivery and integration (CI / CD), a central process of the DevOps approach. Jenkins’ open source community is one of the largest, with 5,400 contributors in 111 countries, and contains multiple – sometimes opposing – constituencies.

Continuation of the article below

As those responsible for the project are creating the public roadmap that started on July 15th, they need to strike a balance between these different interests.

The roadmap is intended to advise each of these audiences on where the project is going, but it is also intended to show potential users that the project leaders are keeping up with technology trends, said Oleg Nenashev, senior contributor at Jenkins and engineer at CloudBees. , in a presentation last week at the DevOps World virtual conference.

Serverless, my love

“Most people imagine Jenkins to be like 2012, a small project with a web interface,” says Oleg Nenashev. But Jenkins has changed a lot. “

The Jenkins CI / CD roadmap includes updated integrations with platforms such as Kubernetes, Function as a Service (FaaS) products, and event-driven pipelines from Google Tekton. In the long term, the classic Jenkins – which is integrated into Kubernetes via an operator – will be integrated into Jenkins X, a newer version that, according to officials from the Continuous Delivery Foundation, has been converted for operation on containers and Kubernetes. (CDF), which now regulates the project.

Jenkins Enterprise users hope the community will increase support for cloud-native infrastructures, including FaaS.

“We’ve been struggling lately because there weren’t any official plugins for serverless deployments … we had to hack the solution somehow,” said Amit Bhandarkar, technical director at American Express Global Business Travel, during a question-and-answer -Session with the media during the conference. “This is a great opportunity. When you move to the cloud, create something new, and it’s transactional, you want to use serverless solutions.”

UX: Overhaul or not overhaul, that is the question

User experience, on the other hand, has been a long-standing issue for Jenkins CI / CD, and the public roadmap has a dedicated usability improvement track on one side and the project UI on the other, including a UX review carried out by a UX / UI – Interest group is led.

These efforts began last year after the community decided to take a new approach following the Blue Ocean UI project launched in 2017. Blue Ocean still exists, but GIS UX will revise the UI architecture for making it more flexible and expandable.

“Blue Ocean has had limited success, including making pipeline execution easier to visualize, but it has not achieved its broader goals of creating an entirely new user interface for Jenkins,” writes Jeremy. Hartley, Jenkins product manager at CloudBees, in a CDF blog post last month. “The main lesson from Blue Ocean is that if you don’t have a plan in advance to tackle the extensibility that approximately 1,700 plugins offer, you will fail.”

Some Jenkins CI / CD users also want better UX stability as well as more attractive aesthetics.

“Jenkins’ user interface is out of date – it looks like it was in the early 2000s,” said Mark Kruse, chief DevOps engineer at Cengage, a Boston-based e-learning software company. “But there are also some feature changes that I’d like to see … we find that even a Build_Log blocks the interface and affects other builds.”

Large companies like SAP, Salesforce, and Adobe have started using GitHub as the primary interface for all aspects of software delivery and IT infrastructure management – a practice known as GitOps – and would prefer the community to step up their efforts the integration with these tools is focused.

“The UX redesign would be welcome, but I don’t think it’s the best way to use community time.” Carlos SanchezSoftware Engineer, Adobe

“We try to push our users with high user interface requirements in this direction and distribute feedback via pull requests instead of going through a shiny user interface,” says Sven Merk, a security architect who helped design the internal Jenkins SAP platform in an interview. “With the transition to a DevOps world, teams are becoming more and more familiar with this type of tool.”

For these companies, the Jenkins community also released an integration with the GitHub Checks API this summer, which can be used to generate detailed reports on pull requests, including annotations, and automated actions in response to them. via GitHub.

“The UX redesign would be welcome, but I don’t think this is the best way to capitalize on community time,” said Carlos Sanchez, senior engineer, cloud computing software at Adobe and former senior engineer at CloudBees. “I’m thinking of further integration with tools like GitHub that don’t even require you to look at the user interface.”

A jungle of plugins to manage

Another bug in Jenkins CI / CD, which is regularly pointed out, concerns the plug-in system. Jenkins is basically designed as a relatively lightweight framework that contributors and editors extend with over 1,700 plugins.

This system offers maximum flexibility and customization for those who have the skills to develop it. However, traditional users generally found the plugins difficult to set up and maintain – especially during the Jenkins updates – and had to be discontinued by the third-party vendors who create them.

“Jenkins itself is standard and functional, but it doesn’t do much for itself,” says Mark Kruse of Cengage. “Anything you want to do requires a plug-in, and then the question arises, ‘How long is this third party going to put up with it, when is it going to break and when? do I have to do it again? ‘””

Oleg Nenashev of Cloudbees responded to numerous complaints from users about inconsistent plugin maintenance during a virtual chat during his presentation this week, saying the community intends to recruit more contributors through an ‘Adopt-A-Plugin’ program. Jenkins’ roadmap also includes plans to improve documentation to help third parties keep the code up to date.

Newer versions of Jenkins CI / CD have helped configure and update plugins with a feature called Jenkins Configuration as Code (JCasC) without administrators having to write their own code. Integration of plugins.

“The plugins caused one of the biggest maintenance issues in updating Jenkins and making sure the system was up to date and free of security holes.” Venkat KothapalliSoftware Engineer, Salesforce

Jenkins’ roadmap requires more work to build a continuous plugin deployment process and improve JCasC extensibility. According to Salesforce IT managers, the configuration as code has, however, the plugin management facilitates a presentation during a virtual conference.

“The plugins caused one of the biggest maintenance issues in updating Jenkins and making sure the system was up to date and free of security holes,” said Venkat Kothapalli, software developer at Salesforce The Conference. “With JCasC, we can capture the entire plugin configuration in a text file and have a CloudBees supported plugin script that can be executed when you do [mettez à jour] Your environment ”.

Future releases will also add more detailed information to the Jenkins plugin management interface, such as: B. Change logs, reported issues, supported versions, and security alerts.