Hi everybody,

During previous blog ,we ever talked about Jenkins , but what about Jenkins X ?What are the differences between the two, which one is fitting the best for your needs?
History of Jenkins X
As the cloud technology were growing along years Developers were asking for a tool that fit to this new standard, helping them to increase their development and to simplify it especially with containerization and usage of Kubernetes orchestrator ,that is why Jenkins X was created
I will present you a quick overview of what Jenkins and Jenkins X are able to do (if you want to go further you can also check the Jenkins.io site that provides all the characteristics of both tools)
Of course it is only my feeling and feedback about these two softwares so if you have any suggestion or idea to share, feel free to comment 🙂

What you must know about Jenkins

Jenkins is the most famous Continuous Integration (CI) server tool. It is open source and written in Java language.
As it is built for continuous integration it allows developers to test software and easily integrate their changes.
It can adapt to every need as it is extendable by using the appropriate plugins

What you must know about Jenkins X

Jenkins X is a Kubernetes-native continuous integration and continuous delivery platform for developing cloud native applications
Jenkins X aims to automate and accelerate Continuous Integration ,performs automated testing and Continuous Delivery for developers on the cloud and/or Kubernetes
It’s defined as a cloud and Kubernetes’ native sub-project of Jenkins
Is supported by popular cloud platforms like Amazon,IBM Cloud or Azure
It is an ecosystem that can integrate many CI/CD tools such as:

  1. Kaniko (a tool to build container images from a Dockerfile)
  2. A Docker registry
  3. Helm which is a Kubernetes application manager
  4. Tekton,a powerful and flexible open-source framework for creating CI/CD systems
  5. Many others

Jenkins features:

  • Easy installation: Just launch msi or sh binary and you have your orchestrator ready on your machine,no deep configuration needed at start and your software is ready by opening your web browser (see my Jenkins installation blog)
  • Easy configuration: Gui interface allow you to easily add nodes , configure your builds to run and configure your master
  • Using GUI to create builds, pipelines and to administrate nodes,interact with Git,customize projects
  • High flexibility
  • Can adapt to every need with more than 1000 plugins to customize your environment

Jenkins X features:

  • Single CLI usage to perform every task efficient for Kubernetes management works as a pre configured tool
    1 command can create Kubernetes clusters application or deploy pipelines
  • Jenkins X is ready to work without adding plugins contrary to Jenkins
  • Automated CI and CD : instead of having deep skills in Jenkins Pipeline, Jenkins X produce generic  pipelines for your projects to  implements CI/CD (no need to have advanced knowledge on how to use the cloud or how to create complex pipelines)
  • Environment Promotion via GitOps – Each team gets a set of Environments. Jenkins X then automates the management of the Environments and the Promotion of new versions of Applications between Environments via GitOps

Architecture of Jenkins and Jenkins X

Although these two tools can perform such similar tasks their architecture are quite different let’s see that below:

A.Jenkins architecture

Jenkins is composed of the Jenkins master that will orchestrate different tasks given to nodes linked to him named slaves
One Jenkins master can manage one or many slaves ( it is best practice to performs the task on the slave instead of on the master for many reasons (for security purposes or  for performance ,to keep Jenkins master infrastructure healthy it is better to spread charge on the slave nodes instead of master)
Below a classic Jenkins distributed architecture with many slaves from different OS
Jenkins master will send the tasks to build to the slaves(Linux ,Window,Unix)

B.Jenkins X architecture

On the other hand Jenkins X is a complete ecosystem associating many softwares and can also have Jenkins itself embedded

To sum up the  characteristics of Jenkins and Jenkins X

Jenkins  Jenkins X
Jenkins can be configured to fit the need Jenkins X is more ready-to-go view and is Kubernetes and cloud native
Need to know, install configure plugins and requires several  integrations Works as a pre-configured tool to ease configuration and usage
Using GUI for configuration and based on plugins tuning.


Plugin management

Using CLI to manage every task ( for example create cluster or pipeline )
Example of command line
jx create cluster aks – Create a new Kubernetes cluster on AKS:Runs on Azure
jx create cluster eks – Create a new Kubernetes cluster on AWS using EKS
jx create cluster gke – Create a new Kubernetes cluster on GKE:Runs on Google Cloud
jx create cluster iks – Create a new kubernetes cluster on IBM Cloud Kubernetes Services
Jenkins adapts to the processes which are required or needed Jenkins X defines the process

Conclusion

Depending of what you will need you can choose Jenkins or Jenkins X
Jenkins will be used for quick tests analysis and also can do the same task as Jenkins X depending on plugin installation, it works as customizable tool.
Jenkins X is more cloud based and also developed for the use of Kubernetes it works as a pre-configured tool, it will accelerate your CI/CD and allow you to achieve your projects faster , in fact it is the best solution for modern cloud applications on Kubernetes.
Also we know now that Jenkins is  the tool that can be tuned as well to fit to your need especially by using loads of plugins whereas Jenkins X has been pre-configured in order to simply its usage (that can be extend and customize)
You can check more info on https://www.jenkins.io/ site and don’t forget to stay tuned on dbi bloggers site!