Jenkins X gears up for SaaS version, GitOps standards
With key maturity milestones behind them, the maintainers of Jenkins X prepare a SaaS version, and plan to collaborate with Google’s Tekton and Netflix’s Spinnaker.
SAN FRANCISCO — The Jenkins community’s answer to Kubernetes and GitOps is ready for enterprise production after 18 months of development, but there’s much more in store.
Jenkins X automates GitOps-style CI/CD for apps deployed to cloud container platforms. It added support for serverless Jenkins, in which application test builds spin up ephemeral Jenkins masters and worker clusters on-demand, in October 2018. A few months later it integrated with GitHub’s Prow Kubernetes automation tool for CI/CD, which triggers Jenkins X application deployments and provisions Kubernetes resources via GitHub pull requests. The project shifted to YAML configuration files instead of Jenkins’ traditional Groovy files in early 2019, and began to store those files in cloud storage buckets instead of locally on the static Jenkins server favored by traditional Jenkins.
All of that makes Jenkins X production-ready for shops that want a highly abstracted approach to GitOps automation, and are prepared to deploy the software themselves. Jenkins commercial backer CloudBees also rolled out a stable Jenkins X distro with enterprise support for that audience on July 31.
But to give the project broader appeal, CloudBees and the open source community will launch a SaaS version of Jenkins X, CloudBees distinguished engineer James Strachan revealed in a Jenkins World/DevOps World conference session here this week.
“There will be a hosted, managed version of Jenkins X at some point in the future,” Strachan said. He declined to specify a time frame for the SaaS release.
Enterprise Jenkins shops such as Eli Lilly and Company will hold out for the SaaS form of Jenkins X before they adopt it, after years of heavy lifting to create their own internal Jenkins-as-a-service platforms for developers.
“I would be hesitant to move to Jenkins X on my infrastructure if in six months’ time a SaaS comes out,” said Nicholas Liffen, software engineering team lead at the pharmaceutical company, based in Indianapolis.
Jenkins X pushes users toward a GitOps lifestyle
In general, Liffen said he wants out of the business of building DevOps platforms.
“We’re not an infrastructure company, we’re a pharmaceutical company,” he said. In the past, highly regulated businesses such as Eli Lilly shied away from cloud-hosted services, but cloud service providers have improved their security certification and accreditation documentation, and proven themselves to be at least security-neutral compared with self-hosted IT services, Liffen said.
Still, as with the rest of the Jenkins community’s cloud-native ambitions for CI/CD tools, certain organizational philosophies and workflow styles must accompany tools such as Jenkins X if they’re to be used effectively. Customers must scrap old methods, from repeated builds as code moves through test and staging environments to handcrafted shared Jenkins libraries, in favor of GitOps-style deployments that re-create the environments as versioned code moves through them, rather than re-create the app to suit each pipeline stage.
This is a much tougher sell than any of the Jenkins X project’s technical automation features, Strachan acknowledged.
“The hardest thing is changing culture to get people to work in this new way,” he said.
Jenkins X roadmap to broaden plugins, integrations
Jenkins X has a few more items on the roadmap other than SaaS, mostly to flesh out integrations with third-party tools. A sub-project dubbed Lighthouse will add Prow-style Kubernetes automation for Bitbucket and GitLab repositories. Jenkins uses apps to create reusable configuration files rather than shared libraries, and about seven or eight are available so far.
“We’ve got a long way to go to catch up to Jenkins with its 2000 plugins,” Strachan said. “But the goal is eventually to get there.”
While the original Jenkins practically created the CI category at its inception 15 years ago, Jenkins has many more competitors in container-based CI/CD and GitOps, including GitHub itself. Jenkins X will join forces with a few of them, namely Google’s Tekton CI/CD execution engine and Netflix’s Spinnaker Kubernetes CD project, through the Continuous Delivery Foundation. Jenkins X contributors have already started to “nudge” users to delegate Kubernetes orchestration to Tekton as a superior way to automate Kubernetes cluster creation for greenfield projects, Strachan said.
In the meantime, Jenkins X, Tekton and Spinnaker contributors will work on standard utilities for common elements of cloud-native CI/CD, such as user interfaces and Kubernetes custom resource definitions, Strachan said.
“With Jenkins X, we have a blob of metadata that gets created with every release,” he said. “Spinnaker kind of has something similar, so we said, ‘Could we just align on the same declarative metadata [to determine] what is a release, what is a rollback, what is an environment?'”