Jenkins Gets a User Interface Makeover with Blue Ocean
CloudBees, the enterprise Jenkins company, initiated the Blue Ocean project last year and later open-sourced it. Blue Ocean 1.0 brings Jenkins into the modern age, placing continuous delivery in the forefront and enabling all members of DevOps teams to take part in creating, visualizing and diagnosing continuous delivery pipelines.
The new UX also brings a personalized, modern design to Jenkins, which itself is more than a decade old. Jenkins, released in 2005, was originally developed as the Hudson project at Sun Microsystems.
“Jenkins is 10 years old and when you use it you can feel it,” Sacha Labourey, CEO and co-founder of CloudBees, told The New Stack. “It feels like 10-year-old software. So, we decided to work on that.”
“The new and very modern and intuitive UX makes Jenkins more approachable and continues to enhance the power and usability of Jenkins,” said Kohsuke Kawaguchi, Jenkins founder and CTO at CloudBees, in a statement.
More Than a New Interface
However, Blue Ocean more than simply modernizes the Jenkins user interface; it updates the entire experience of using the software by focusing on where software development trends are going rather than simply where they are today, said R. Tyler Croy, a Jenkins evangelist and community manager.
“We started to design a new user experience around where things are going in the future rather than where they are,” he said, noting that when Jenkins was released 2005 continuous delivery didn’t exist as a concept, so the focus was on continuous integration. However, now the focus is not only on continuous delivery but also aiming toward continuous deployment.
“The industry has changed to focus on continuous delivery and bringing more stakeholders into the software development process,” Croy said.
Thus, Blue Ocean had two design principles. One was to make the information of what’s going on in the delivery process accessible to everyone on the team, “because that’s how software is built nowadays — with cross-functional, Agile teams. And we needed to support a full, from code to production/deploy continuous delivery process. So, the project also built on top of Jenkins pipeline, and created this really compelling and easy to use user experience sitting right on top of Jenkins.”
Continuous delivery pipelines can be complex, particularly for non-experts, Croy said. However, Blue Ocean simplifies the development of software pipelines by enabling developers to create them with a visual pipeline editor and then visualize the process flow in an intuitive way, with no code or text editing required.
“With the original, classic UI around Jenkins, there was this WYSIWYG job configuration screen that sort of cultivated this tribal knowledge among release engineers or developers on those teams who knew what boxes to check, what settings to change, etc.,” Croy said.
Blue Ocean eliminates the need for such tribal knowledge and provides a common view of the pipeline that all team members can understand.
Croy said there was an intermediate step to make things easier for more people to contribute to the process of continuous delivery with Jenkins.
“And then Blue Ocean comes in on top of that and introduces the pipeline editor, which is a WYSIWYG really slick interface for adding onto a pipeline or creating a pipeline from scratch,” he said. “And when you save it, Blue Ocean will commit that back to your source repository like with GitHub, such that the whole organization, not just developers, can understand it.”
Pipeline as Code
According to the Blue Ocean project, the UX is “underpinned by Pipeline as Code which enables the pipeline definition to be stored with the application code and infrastructure as code; allowing teams to reproduce previous configurations and processes easily when things go wrong.”
However, it doesn’t replace anything in Jenkins. You can have a classic Jenkins UI and a Blue Ocean user experience side-by-side on the same Jenkins installation, Croy noted.
For visualization sake, Blue Ocean makes things easier to find, Croy noted. “From a visualization standpoint, Blue Ocean brings a lot more of the important relevant information to the user up to the forefront in the interface through the personalization features or through some of the redesigning of how pipeline processes are displayed, he said. “It tries to surface the relevant information to the user a lot faster and more pleasant than the Jenkins classic UI.”
“Blue Ocean supplements a decade-old UI that was designed for the needs of experienced developers and organizations,” he said. “Since many of those practitioners are utilizing continuous delivery models that leverage collaborations with non-expert team members, including IT operations and management professionals it’s imperative to utilize tools that help them understand how projects are progressing. Blue Ocean aims to accomplish that by providing a user-friendly, graphical end-to-end view of the project pipeline.
The release of Blue Ocean comes about a month and a half after CloudBees released its CloudBees Jenkins Enterprise platform, which provides all the components for enterprise software shops to implement a continuous delivery process, Labourey said.
The solution features a Distributed Pipeline Architecture (DPA) that distributes continuous delivery workloads across multiple isolated servers to provide high levels of scalability. It runs on a variety of platforms, including Amazon Web Services, Red Hat OpenStack Platform, VMware vSphere and Red Hat Enterprise Linux.
It also taps into the 1,300 integrations available to Jenkins and enables enterprises to have a unified view across their entire software portfolio, from legacy applications to cloud-based microservices.
“You can start onboarding projects that you built a decade ago, like old Java applications on one hand, and on the other hand you may have cool stuff with Docker containers going to AWS,” Labourey said. “All of that is possible with this new platform — bridging the gap between traditional applications to new types of technology.”
CloudBees founded in 2010 to focus on the Platform as a Service market, but by 2014 the company switched its focus to Jenkins and its initial continuous integration play.
However, along with continuous integration, where Jenkins was aimed at automating the start of the software lifecycle, over the last several years, the DevOps movement became focused on continuous delivery, which tries to automate the entire application lifecycle.
Continuous delivery is about automating the full application process up until the time that you have something that you could push into production. You may not want to necessarily go into production, but you want to be in a release-ready stage and be able to manually decide whether you’re going to push a new version into production. While continuous deployment goes one step further and automatically pushes the bits to production.
Labourey said 10 years ago, continuous integration had no value attached to it, but the addition of continuous delivery has shifted that as it supports the delivery of all applications. It has become the new way to push value to customers and it serves as the unification layer between all functions of IT — development, QA, operations, etc.
“If your pipeline or the tool that supports your pipeline is what brings all of your software to production, then your pipeline becomes as critical as production itself,” he said.
Indeed, if your pipeline is down then you have no way to push new software to production, including bug fixes and security fixes. Continuous delivery has become a core function that is critical to IT, no longer a side activity, Labourey noted.
That’s why many organizations are implementing central DevOps teams to run their enterprise DevOps environments.
This is the target for CloudBees Jenkins Enterprise. “CloudBees Jenkins Enterprise is this new platform that is more than just Jenkins ++,” Labourey said. “It’s really a complete platform that takes ownership of your infrastructure and provides an environment to do continuous delivery at scale. It makes it easy to onboard new teams. It shares all of the resources across your servers. It makes operations and management of that cluster completely centralized.”
Feature image via Pixabay.