28

5 Initiatives to Modernize Jenkins and Kill the Jenkinsteins

 5 years ago
source link: https://www.tuicool.com/articles/hit/f2YfInR
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Kohsuke Kawaguchi , creator of Jenkins and CTO at CloudBees, spoke last month at Jenkins World in Nice about five on-going initiatives tomodernize the popular CI/CD tool. The goal is to address the ageing pains Kawaguchi discussed in a post earlier this year , in particular what he called the "Jenkinsteins" that have arisen: bloated centralized installations of the tool used by a large number of projects and teams, leading to poor performance, as well as dependencies and administration nightmares. The initiatives revolve around Jenkins Evergreen, Jenkins Pipeline (Blue Ocean), Jenkins Configuration-as-Code, Jenkins X, and Cloud-Native Jenkins. Each of these is at a different stage of development and will evolve independently from the others.

A faster out-of-the-box experience is the goal of Jenkins Evergreen , providing pre-assembled, batteries included distributions that require less administration and configuration effort. Also, Blue Ocean (a widely used plugin today focusing on cleaner visualization of pipelines) will become the default UI (a specific timeline was not announced), removing the current need to switch to classic UI every time a modification is needed. Jenkins Evergreen will also bring self-upgrading capabilities , mostly transparent to users, Kawaguchi said. Evergreen is currently in beta and not recommended for production use yet.

Jenkins Configuration as Code (also known as JCasC) aims to support codifying the setup of Jenkins so that installation and updates to the delivery system can be fully automated . Removing dependencies on Jenkins UI accelerates its setup and administration, is less error-prone and more repeatable. Version 1.0 of the JCasC plugin was released early September and is ready for production use.

Jenkins X is a separate solution altogether from Jenkins (although they share the same pipeline engine behind the scenes) that was introduced earlier this year . It provides a strongly opinionated view for delivering cloud-native (Docker and Kubernetes based) applications based on aGitOps approach. One of its strengths is to quickly onboard newcomers by making use of common third party tools ( Helm charts,Skaffold, and Prow as of version 1.3 ) and automating common pipelines for particular stacks with the quickstart feature. The jx command line tool further supports automation of administration tasks and setting up pipelines as well as Kubernetes clusters and environments. Jenkins X is ready for production use.

Finally, modernizing Jenkins to run itself as a full cloud-native application in Kubernetes, thus benefiting from increased availability and performance, is the goal of the Cloud Native special interest group . This group will be making incremental improvements to Jenkins architecture in order to move away from its traditional client/server design. For example, supporting pluggable external storage for Jenkins data (currently kept in the server's file system) and moving towards a stateless Jenkins service. There is no timeline at the moment for completion of this initiative, or any of its parts.

At InfoQ we are keen to receive input from our readers. Have you experienced growing pains with classic Jenkins? Do you think the on going initiatives will take away those pains? Comments below.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK