Slide 1

Slide 1 text

Introduction to Jenkins X a beginner’s guide Oscar Medina and Andrew Bayer

Slide 2

Slide 2 text

© 2019 All Rights Reserved. 2 Presenters @SharePointOscar Developer Advocate Jenkins X @ABayer Principal Software Engineer CloudBees

Slide 3

Slide 3 text

© 2019 All Rights Reserved. 3 What is Jenkins X?

Slide 4

Slide 4 text

© 2019 All Rights Reserved. 4 What is Jenkins X? First, Jenkins X is NOT Jenkins

Slide 5

Slide 5 text

© 2019 All Rights Reserved. 5 What is Jenkins X? Completely new codebase Zero code from Jenkins project Entirely different architecture Solving different problems, in different ways

Slide 6

Slide 6 text

© 2019 All Rights Reserved. 6 What is Jenkins X? Jenkins X is Jenkins’ spiritual counterpart for the cloud-native world The concept of pipelines and extensibility is what they have in common. That is it!

Slide 7

Slide 7 text

© 2019 All Rights Reserved. 7 What is Jenkins X? Initially Jenkins X used static Jenkins masters to power its pipelines. That is no longer the case...

Slide 8

Slide 8 text

© 2019 All Rights Reserved. 8 What is Jenkins X? Today Tekton is the pipeline engine behind the scenes in Jenkins X

Slide 9

Slide 9 text

© 2019 All Rights Reserved. 9 What is Jenkins X? Jenkins X is an opinionated cloud native CI/CD platform for Kubernetes

Slide 10

Slide 10 text

© 2019 All Rights Reserved. 1 0 Jenkins X Capabilities Where can I run Jenkins X?

Slide 11

Slide 11 text

© 2019 All Rights Reserved. 1 1 Jenkins X Capabilities Install via CLI # create a k8s cluster in GKE, skip Jenkins X install >$ jx create cluster gke \ --skip-installation Create k8s cluster

Slide 12

Slide 12 text

© 2019 All Rights Reserved. 1 2 Jenkins X Capabilities Install via CLI # install Jenkins X using jx boot # based on the values of jx-requirements.yaml file >$ jx boot Install using JX Boot

Slide 13

Slide 13 text

© 2019 All Rights Reserved. 13 Jenkins X Capabilities jx-requirements.yaml autoUpdate: enabled: false schedule: "" bootConfigURL: https://github.com/cloudbees/cloudbees-jenkin s-x-boot-config.git cluster: azure: {} clusterName: coolboot environmentGitOwner: jenkins-oscar environmentGitPublic: true gitKind: github gitName: github gitServer: https://github.com namespace: jx project: jx-development provider: gke registry: gcr.io zone: us-west1-a environments: - ingress:

Slide 14

Slide 14 text

© 2019 All Rights Reserved. 14 Jenkins X Capabilities Supported Git Providers • GitHub • GitHub Enterprise (Preview) • GitLab (Preview) • BitBucket Server (Preview)

Slide 15

Slide 15 text

© 2019 All Rights Reserved. 15 Jenkins X Capabilities Project Templates AKA QuickStarts ...and more

Slide 16

Slide 16 text

© 2019 All Rights Reserved. 16 Jenkins X Capabilities Creating a QuickStart # create a quickstart for a nodejs app >$ jx create quickstart \ --language=javascript --name=carsweb

Slide 17

Slide 17 text

© 2019 All Rights Reserved. 17 Jenkins X Capabilities Import an existing app from source ctrl # import an existing app from github >$ jx import \ --url https://github.com/jenkins-oscar/skiapp.git

Slide 18

Slide 18 text

© 2019 All Rights Reserved. 18 Jenkins X Capabilities add a Helm Chart (stable repo) as an app # import an existing app from public helm chart repository >$ jx add app mongodb \ --repository= https://kubernetes-charts.storage.googleapis.com \ --version=7.4.6 --namespace=staging --alias=salesmongodb

Slide 19

Slide 19 text

© 2019 All Rights Reserved. 19 Jenkins X Capabilities Build Packs • We give you canned Pipelines for many scenarios • We use Draft for language detection auto-select build pack • You can extend and modify on top of the build pack A quickstart for your pipeline or pipeline template

Slide 20

Slide 20 text

© 2019 All Rights Reserved. 20 Jenkins X Capabilities Pipelines in Jenkins X • Pipelines are declarative (YAML) • Each stage runs on its own ephemeral pod • PR vs. Release Pipelines • Dozens of pre-configured builder images

Slide 21

Slide 21 text

© 2019 All Rights Reserved. 21 Jenkins X Capabilities Triggering Pipelines • Prow / Lighthouse • Via ChatOps PR comment “/test this” or “/approve” • GitHub Statuses Triggered via different events

Slide 22

Slide 22 text

© 2019 All Rights Reserved. 22 Jenkins X Capabilities Monitor Pipelines Several methods to monitor Pipeline activity # get build logs for a pipeline >$ jx get build logs # get pipeline activity for an app >$ jx get activity -f appname The Jenkins X UI

Slide 23

Slide 23 text

© 2019 All Rights Reserved. 23 Jenkins X Capabilities Monitor Pipelines Install the UI # Install the UI >$ jx add app jx-app-ui --version=0.1.26 # Launch UI in browser >$ jx ui -p 9845

Slide 24

Slide 24 text

© 2019 All Rights Reserved. 24 Jenkins X Capabilities Monitor Pipelines The Jenkins X UI Projects Page

Slide 25

Slide 25 text

© 2019 All Rights Reserved. 25 Jenkins X Capabilities Monitor Pipelines The Jenkins X UI Builds Page

Slide 26

Slide 26 text

© 2019 All Rights Reserved. 26 Jenkins X Capabilities Monitor Pipelines The Jenkins X UI Build Log Page

Slide 27

Slide 27 text

© 2019 All Rights Reserved. 27 Jenkins X Capabilities Monitor Pipelines The Jenkins X UI Environments Page

Slide 28

Slide 28 text

© 2019 All Rights Reserved. 28 Jenkins X Capabilities Preview Environments PMs, Designers view app changes in temporary live environment

Slide 29

Slide 29 text

© 2019 All Rights Reserved. 29 Jenkins X Capabilities ChatOps ( Preview Env Built) Prow / Lighthouse listens to Git Webhooks.

Slide 30

Slide 30 text

© 2019 All Rights Reserved. 30 Jenkins X Capabilities ChatOps (commands) Commands like: /approve /lgtm /test this

Slide 31

Slide 31 text

© 2019 All Rights Reserved. 31 Jenkins X Capabilities GitOps GitOps is an iteration of a DevOps process designed for cloud native with a focus on Kubernetes • Source Control is “Single Source of Truth” • Env changes via PR trigger pipelines to execute changes • Jenkins X uses GitOps to manage itself • Recover easily from disaster

Slide 32

Slide 32 text

© 2019 All Rights Reserved. 32 Jenkins X Capabilities Serverless Deployments Scale apps based on actual usage, scale down when not used.

Slide 33

Slide 33 text

© 2019 All Rights Reserved. 33 Next Steps Kubernetes Workspace #jenkins-x-user #jenkins-x-dev @jenkinsxio Subscribe Jenkins X Newsletter: Twitter: Slack: jenkins-x.io Web: CloudBees Jenkins X Distribution: