Jenkins is loved by many as the open source automation server, that provides different plugins to support building, deploying, and automating any project. However, Jenkins is not a cloud-native tool, i.e., it lacks the OOTB (Out-Of-The-Box) capabilities to survive an outage, and scale seamlessly, among many other flaws. In order to make Jenkins cloud native, the team has come up with a brand new Jenkins X platform, an open source CI/CD solution for modern cloud applications, which would be deployed on Kubernetes.
Jenkins X is currently a sub-project within the Jenkins Foundation. It fully focuses on Kubernetes, CI/CD and Cloud Native use cases for providing great developer productivity. With the Kubernetes plugin, one does not have to worry about provisioning VMs or physical servers for slaves.
The target audience for Jenkins X include both the existing as well as new Jenkins users. It is specifically designed for those who are,
- Already using Kubernetes and want to adopt CI/CD, or
- Want to adopt CI/CD and want to increasingly move to the public cloud, even if they don’t know anything about Kubernetes.
Key Features of Jenkins X
- An automated Continuous Integration(CI) and Continuous Delivery(CD) tool: Jenkins X does not require one to have a deep knowledge of the internals of a Jenkins pipeline. It provides a default setting and the best-fit pipelines for one’s projects, which would implement CI and CD fully.
- Automated management of the Environments: Jenkins X automates the management of the environments and the promotion of new versions of applications between environments, which each team gets, via GitOps.
- Automated Preview Environments: Jenkins X provides preview environments automatically for one’s pull requests. With this, one can get a faster feedback before changes are merged to master.
- Feedback on Issues and Pull Requests: Jenkins X automatically comments on Commits, Issues and Pull Requests with feedback when,
- Code is ready to be previewed,
- Code is promoted to environments, or
- If Pull Requests are generated automatically to upgrade versions.
Some other notable features of Jenkins X are :
- Jenkins X uses a distribution of Jenkins as the core CI / CD engine. It also promotes a particular Git branching and repository model and includes tools and services, present within the distribution, to fit this model.
- The Jenkins X development model represents “best practice of developing Kubernetes applications”, which is based in part on the experience of developing Fabric8, a project with a similar mission and on the results of the State of DevOps report.
- The advantage of Jenkins X is that if one follows the best practices, Jenkins X assembles all the pieces by itself, for instance, Jenkins, Kubernetes, Git, CI/CD etc. such that developers can be instantly productive. Jenkins X is shipped with K8s pipelines, agents, and integrations. This makes migrations to Kubernetes and microservices way simpler.
jx: Jenkins X CLI tool
Jenkins X also defines a command line tool, jx. This tool encapsulates tasks as high-level operations. Its CLI is used not only by developers from their computers, but also used by Jenkins Pipeline. It is a central user interface which allows:
- Easy installation of Jenkins X on any kubernetes cluster
- Create new Kubernetes clusters from scratch on the public cloud
- Set up Environments for each Team
- Import existing projects or create new Spring Boot applications and later:
- automatically set up the CI / CD pipeline and webhooks
- create new releases and promote them through the Environments on merge to master
- support Preview Environments on Pull Requests
Read further more on Jenkins X on its official website.