Continuing our series of innovative and useful open source projects that you should know, we spoke this month with the creators of Jenkins X.
Launched in early March 2018 under the Apache License by Cloudbees, Jenkins X is a free and open source CI/CD tool designed to help ship apps continuously with Kubernetes. It doesn't even require developers to have Kubernetes expertise. The main difference between Jenkins and Jenkins X is that the latter focuses on automating CI/CD for the cloud.
To accomplish this, Jenkins X uses Jenkins in combination with open source tools, such as Helm, Skaffold, Monocular, Nexus, Docker, KSync, ChartMuseum, and more. It automates the installation, configuration, and upgrades of these open source tools and helps them integrate with CI/CD processes.
Jenkins X also provides developers with feedback on every pull request in the form of a preview before the new code hits staging and production. This capability helps build in reliability and proper authentication early on, and it also prevents last-minute surprises during post-deployment.
This project takes automation to another level as it lets teams release quality and secure software frequently.
According to their creator James Strachan, the idea of Jenkins X came about after he had created Apache Camel and was at Red Hat helping folks in the integration space.
“We were going on our own digital transformation and helping our customers move to the cloud - so I was looking at how to move integration apps based on Apache Camel to containers and Kubernetes,” he tells me, explaining that, “I realized how containers and Kubernetes change so much about CI/CD and so I started finding myself scratching my itch to improve and automate CI/CD for our own uses and those of our customers. That led me to join CloudBees and start working on building Jenkins X as a way to automate CI/CD for Kubernetes and the cloud.”
Jenkins X in Action: Use Cases
Before coming up with an idea for an open source project, it can be a helpful exercise for the creators to think about how people are likely to use their project.
“Jenkins X is all about automating CI/CD for cloud-native applications, and applications built as containers and deployed on-premises or in the public cloud using Kubernetes,” says Strachan.
“So whether that's starting a new microservice and getting it released and deployed to your Staging environment, promoting new versions via GitOps to Production or creating Preview Environments on each Pull Request so your team can review changes before you merge to master - keeping master clean and ready to release at all times,” explains Strachan of the value of his project to the community of users .
“We're also using Jenkins X to create, build, and deploy all the various libraries, tools and microservices that make up Jenkins X (and related products at CloudBees), which really helps drive the requirements,” he continues.
“It's awesome to work on a software tool that you use every day,” says Strachan, taking pride in the fact that he’s not only the creator of Jenkins X but also a regular user, adding that, “It's an amazing feedback loop. I'd often built software for other people to use; its so much more fun building software for your own needs.”
Early Challenges as an Open Source Project
When creating an open source project it can be a learning experience with advantages and the challenges. This occurred with Jenkins X in the early stages.
Strachan recalls the early challenges, noting that, “The very early days of a project can be challenging, as to start with no one knows what you are doing and why. There are so many open source repositories out there its hard to get recognized. Though good open source projects tend to snowball once they get an active and passionate initial community.”
Working with the Community and Open Source
Over the years we have seen great things get created with the help of the open source community. Strachan cites how the important role that the feedback from the community played a huge part in their success.
“The feedback from the community is the most interesting and rewarding aspect of OSS,” he says, adding that, “You really learn a huge amount both about the problems you are trying to solve and software development in general. Open source projects tend to attract the best technical people & provides an amazing opportunity to learn more about your craft.“
When asked why he loves working with open source community, he responded by saying that, “We've had amazing contributions already from lots of folks already and we're loving seeing the excitement and contributions keep growing!”
To learn more about the Jenkins X project, please visit their GitHub page and try it out for yourself.
Fun Facts About the Creator of Jenkins X
Like other open source projects creators, Strachan expressed his appreciation for other projects. His favorite open source project other than his own is Kubernetes.
The first coding languages that Strachan tells us that he learned was BBC basic, 6502 assembler, pascal, C, and C++ before moving later onto Java and then Smalltalk.
His first computer was a PC with Windows Millenium in 2000. “I was one of the few to actually use Millenium,” he jokes, explaining that, “I quickly switched to Windows XP as soon as it was available.”