Jenkins X

Jenkins X is an open-source project that is gaining a lot of popularity in the DevOps community. The project Jenkins X is a CI/CD tool that facilitates application build and deployment automation. It is a subproject of Jenkins and is supported on multiple cloud platforms such as AWS, GCP and Azure. It can also be set up on minikube. Jenkins X makes your life easier by automating the configuration of different tools like Kubernetes, Jenkins, Git, Helm and other tools. This applications are coupled together to enhance the behavior and efficiency of Jenkins X.

Part of the Jenkins X installation include Helm, Monocular, Jenkins, Hipster, Docker-registry, Chartmuseum, Nexus and Mongodb. It automates the setup of pipelines using what we call a JenkinsFile. A Jenkinsfile is a configuration that defines a pipeline. By default, it creates a staging and production environment and this environments are equivalent of Kubernetes Namespaces. Applications are deployed to environments as specified by the user and for each application that is deployed a Git repo is created for versioning purposes.

It also implements something called Promotion that allows us to move applications from one environment to another. We also have the JX command line tool that allows us to interact with Jenkins X. It is used to manage resource within the cluster.

Jenkins X is a project that is still growing, solves a lot of problems and shows a lot of promise. I like the implementation of Preview that allows us to see what Pull Request changes will look like before merging to Master. Jenkins X is a highly container-centric tool so will work well for companies that work heavily with containerized applications. Some of the downside to it is that the documentation is still in its early phase and not a lot of architectural concepts are explained in detail.

Later on I will be doing a demo on how to run Jenkins X on Minikube and on a cloud platform.

One thought on “Jenkins X”

Leave a Reply to Hafiz Agboola Cancel reply

Your email address will not be published. Required fields are marked *