{"id":13199,"date":"2020-05-08T12:57:01","date_gmt":"2020-05-08T12:57:01","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=13199"},"modified":"2021-11-08T10:14:59","modified_gmt":"2021-11-08T10:14:59","slug":"what-is-jenkins-x-and-how-jenkins-x-works","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/what-is-jenkins-x-and-how-jenkins-x-works\/","title":{"rendered":"What is Jenkins X? and How Jenkins X works?"},"content":{"rendered":"\n<p>Jenkins is described as an &#8220;extensible automation server&#8221; also popularly known as continuous integration and delivery tool that can be configured, via plugins, to be a Continuous Integration Server, a Continuous Deployment hub, or a tool to automate just about any software task.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What is Jenkins and Why Jenkins?<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-devops-tutorials\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"DFWBJ7H3Kl\"><a href=\"https:\/\/www.devopsschool.com\/blog\/what-is-jenkins-and-why-we-need-it\/\">What is Jenkins and Why we need it?<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;What is Jenkins and Why we need it?&#8221; &#8212; DevOpsSchool.com\" src=\"https:\/\/www.devopsschool.com\/blog\/what-is-jenkins-and-why-we-need-it\/embed\/#?secret=DFWBJ7H3Kl\" data-secret=\"DFWBJ7H3Kl\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How Jenkins works? Jenkins Architecture Explained!!!<br><\/h2>\n\n\n\n<figure class=\"wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-devops-tutorials\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"hLVk7RhxL6\"><a href=\"https:\/\/www.devopsschool.com\/blog\/jenkins-architecture-explained\/\">How Jenkins works? Jenkins Architecture Explained!!!<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;How Jenkins works? Jenkins Architecture Explained!!!&#8221; &#8212; DevOpsSchool.com\" src=\"https:\/\/www.devopsschool.com\/blog\/jenkins-architecture-explained\/embed\/#?secret=hLVk7RhxL6\" data-secret=\"hLVk7RhxL6\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Now, Lets try to understand Jenkins X (JX)?<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Jenkins X (JX) is an exciting new Continuous Integration and Continuous Deployment (CI\/CD) tool for Kubernetes users. It hides the complexities of operating Kubernetes by giving developers a simpler experience to build and deploy their code.<\/li><li>You can think of it as creating a serverless-like environment in Kubernetes. As a developer, you don\u2019t need to worry about all the details of setting up environments, creating a CI\/CD pipeline, or connecting GitHub to your CI pipeline. All of this and much more is handled by JX.<\/li><li>JX was created by James Strachan (creator of Groovy, Apache Camel, and now JX) and was first announced in March 2018. It\u2019s designed from the ground up to be a cloud-native, Kubernetes-only application that not only supports CI\/CD, but also makes working with Kubernetes as simple as possible.<\/li><li>Jenkins X, the open source project that lets developers rapidly create and build modern cloud native applications on the Kubernetes platform.<\/li><li>With one command you can create a Kubernetes cluster, install all the tools you\u2019ll need to manage your application, create build and deployment pipelines, and deploy your application to various environments.<\/li><li>JX provides a specific configuration of Jenkins, meaning you don\u2019t need to know which plugins are required to stand up a CI\/CD pipeline. It also deploys numerous applications to Kubernetes to support building your docker container, storing the container in a docker registry, and deploying it to Kubernetes.<\/li><li>Jenkins pipeline builds are driven by adding a Jenkinsfile to your project. JX automates this for you. JX can create new projects (and the required Jenkinsfile) for you or import your existing project and create a Jenkinsfile if you don\u2019t already have one. In short, you don\u2019t need to know anything about Jenkins or Kubernetes to get started with JX. JX will do it all for you.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"345\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/what-is-jenkins-x-jx-1024x345.png\" alt=\"\" class=\"wp-image-13200\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/what-is-jenkins-x-jx-1024x345.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/what-is-jenkins-x-jx-300x101.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/what-is-jenkins-x-jx-768x259.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/what-is-jenkins-x-jx.png 1177w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Feature of jenkins X?<\/h2>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"574\" height=\"261\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature1.jpg\" alt=\"\" data-id=\"13204\" data-full-url=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature1.jpg\" data-link=\"https:\/\/www.devopsschool.com\/blog\/?attachment_id=13204\" class=\"wp-image-13204\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature1.jpg 574w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature1-300x136.jpg 300w\" sizes=\"auto, (max-width: 574px) 100vw, 574px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"369\" height=\"280\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature2.jpg\" alt=\"\" data-id=\"13203\" data-full-url=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature2.jpg\" data-link=\"https:\/\/www.devopsschool.com\/blog\/?attachment_id=13203\" class=\"wp-image-13203\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature2.jpg 369w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature2-300x228.jpg 300w\" sizes=\"auto, (max-width: 369px) 100vw, 369px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"419\" height=\"215\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature3.jpg\" alt=\"\" data-id=\"13202\" data-full-url=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature3.jpg\" data-link=\"https:\/\/www.devopsschool.com\/blog\/?attachment_id=13202\" class=\"wp-image-13202\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature3.jpg 419w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature3-300x154.jpg 300w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"390\" height=\"239\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature4.jpg\" alt=\"\" data-id=\"13201\" data-full-url=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature4.jpg\" data-link=\"https:\/\/www.devopsschool.com\/blog\/?attachment_id=13201\" class=\"wp-image-13201\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature4.jpg 390w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-feature4-300x184.jpg 300w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How Jenkins X (JX) works?<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Jenkins X is designed to take all of the guesswork or trial and error approach many teams have used to create a fully functional CI\/CD pipeline in Kubernetes. To make a tailored developer experience, JX had to choose which Kubernetes technologies to use. In many ways, JX is like a Linux distribution, but for Kubernetes.<\/li><li>To make the transition to Kubernetes simpler, the command line tool jx can drive most of your interactions with Kubernetes. This means you don\u2019t need to know how to use kubectl right away; instead you can slowly adopt kubectl as you become more comfortable in Kubernetes. If you are an experienced Kubernetes user, you\u2019ll use jx for interacting with JX (CI\/CD, build logs, and so on) and continue to use kubectl for other tasks.<\/li><li>When you create or import a project using the jx command line tool, JX will detect your project type and create the appropriate Jenkinsfile for you (if it doesn\u2019t already exist), define the required Kubernetes resources for your project (like Helm charts), add your project to GitHub and create the necessary webhooks for your application, build your application in Jenkins, and if all tests pass, deploy your application to a staging environment. You now have a fully integrated Kubernetes application with a CI\/CD pipeline ready to go.<\/li><li>Your interaction with JX is driven by a few jx commands to set up and env, create or import an application, and monitor the state of your build pipelines. The developer workflow is covered in the next section. Generally speaking, once set up, you don\u2019t need to interact with JX that much; it works quietly in the background, providing you CI and CD functionality.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"582\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-pipeline-dashboard-1024x582.png\" alt=\"\" class=\"wp-image-13206\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-pipeline-dashboard-1024x582.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-pipeline-dashboard-300x171.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-pipeline-dashboard-768x437.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/jenkins-x-pipeline-dashboard.png 1224w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\"  id=\"_ytid_80681\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/eiUH6iDEz3U?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  epyt-is-override  no-lazyload\" title=\"YouTube player\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe>\n<\/div><\/figure>\n\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_91127\"><iframe loading=\"lazy\"  id=\"_ytid_99303\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_91127\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Jenkins is described as an &#8220;extensible automation server&#8221; also popularly known as continuous integration and delivery tool that can be configured, via plugins, to be a Continuous Integration Server, a&#8230; <\/p>\n","protected":false},"author":1,"featured_media":13200,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[42],"tags":[],"class_list":["post-13199","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jenkins"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/13199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=13199"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/13199\/revisions"}],"predecessor-version":[{"id":24847,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/13199\/revisions\/24847"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/13200"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=13199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=13199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=13199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}