Slide 1

Slide 1 text

GitOps, Jenkins X & the Future of CI/CD Tracy Miranda, Director of Open Source Community | CloudBees tmiranda@cloudbees.com | @tracymiranda

Slide 2

Slide 2 text

So, DevOps… @tracymiranda

Slide 3

Slide 3 text

DevOps is the new legacy @tracymiranda

Slide 4

Slide 4 text

Cloud Native Technologies ▪On demand self-service ▪Broad network access ▪Resource pooling ▪Rapid elasticity ▪Measured service

Slide 5

Slide 5 text

DevOps Cloud GitOps Cloud Native

Slide 6

Slide 6 text

What would CI/CD look like if we had unlimited, scalable resources?

Slide 7

Slide 7 text

DORA State of DevOps Reports @tracymiranda

Slide 8

Slide 8 text

The Science of Lean Software and DevOps “software delivery is an exercise in continuous improvement, and our research shows that year over year the best keep getting better, and those who fail to improve fall further and further behind.” - Nicole Forsgren

Slide 9

Slide 9 text

Building and scaling high performance technology organisations @tracymiranda

Slide 10

Slide 10 text

GitOps @tracymiranda Operation by pull request Git as the single place where we operate All changes are observable

Slide 11

Slide 11 text

The GitOps Effect: Delivering Quality at Speed 2 150+ deployments per week Via @fractallambda ref: https://twitter.com/tracymiranda/status/1045693846464729094

Slide 12

Slide 12 text

https://www.weave.works/blog/what-is-gitops-really @tracymiranda

Slide 13

Slide 13 text

JENKINS X

Slide 14

Slide 14 text

Best Practices for CI/CD for cloud native apps 1. Figure out the best practices of how to CD cloud native apps • Not just build and test, but review, promote, changelog, collaborate, etc. 2. Integrate best of breed software in this ecosystem to achieve it 3. Kubernetes as foundation & means to an end 4. Multicloud: Democratize it by building a high level, pleasant CLI 5. GitOps: deployments should be recorded and tracked in Git

Slide 15

Slide 15 text

Best Practices for CI/CD for cloud native apps 1. Figure out the best practices of how to CD cloud native apps • Not just build and test, but review, promote, changelog, collaborate, etc. 2. Integrate best of breed software in this ecosystem to achieve it 3. Kubernetes as foundation & means to an end 4. Multicloud: Democratize it by building a high level, pleasant CLI 5. GitOps: deployments should be recorded and tracked in Git

Slide 16

Slide 16 text

@tracymiranda

Slide 17

Slide 17 text

Best Practices for CI/CD for cloud native apps 1. Figure out the best practices of how to CD cloud native apps • Not just build and test, but review, promote, changelog, collaborate, etc. 2. Integrate best of breed software in this ecosystem to achieve it 3. Kubernetes as foundation & means to an end 4. Multicloud: Democratize it by building a high level, pleasant CLI 5. GitOps: deployments should be recorded and tracked in Git

Slide 18

Slide 18 text

@tracymiranda

Slide 19

Slide 19 text

Best Practices for CI/CD for cloud native apps 1. Figure out the best practices of how to CD cloud native apps • Not just build and test, but review, promote, changelog, collaborate, etc. 2. Integrate best of breed software in this ecosystem to achieve it 3. Kubernetes as foundation & means to an end 4. Multicloud: Democratize it by building a high level, pleasant CLI 5. GitOps: deployments should be recorded and tracked in Git

Slide 20

Slide 20 text

Kubernetes Custom Resource Definitions (CRD) Environment CRD

Slide 21

Slide 21 text

Kubernetes Custom Resource Definitions (CRD) Pipeline Activity CRD

Slide 22

Slide 22 text

Best Practices for CI/CD for cloud native apps 1. Figure out the best practices of how to CD cloud native apps • Not just build and test, but review, promote, changelog, collaborate, etc. 2. Integrate best of breed software in this ecosystem to achieve it 3. Kubernetes as foundation & means to an end 4. Multicloud: Democratize it by building a high level, pleasant CLI 5. GitOps: deployments should be recorded and tracked in Git

Slide 23

Slide 23 text

“Friends don’t let friends install Kubernetes” - James Strachan, Jenkins X

Slide 24

Slide 24 text

You can have fun tinkering

Slide 25

Slide 25 text

Or you can just get productive

Slide 26

Slide 26 text

MultiCloud Support jx create cluster minikube

Slide 27

Slide 27 text

MultiCloud Create Cluster Install kubectl, Helm, Jenkins X, etc • az, gcloud, kops, eksctl, oci Install cloud provider CLI • RBAC,default storage class, enable docker registries, etc Create Kubernetes cluster • Create default namespace • Setup the ingress controller • Configure git source repository • Create admin secrets Configure

Slide 28

Slide 28 text

Best Practices for CI/CD for cloud native apps 1. Figure out the best practices of how to CD cloud native apps • Not just build and test, but review, promote, changelog, collaborate, etc. 2. Integrate best of breed software in this ecosystem to achieve it 3. Kubernetes is a means to an end 4. Multicloud: Democratize it by building a high level, pleasant CLI 5. GitOps: deployments should be recorded and tracked in Git

Slide 29

Slide 29 text

@tracymiranda

Slide 30

Slide 30 text

Best Practices for CI/CD for cloud native apps 1. Figure out the best practices of how to CD cloud native apps • Not just build and test, but review, promote, changelog, collaborate, etc. 2. Integrate best of breed software in this ecosystem to achieve it 3. Kubernetes is a means to an end 4. Multicloud: Democratize it by building a high level, pleasant CLI 5. GitOps: deployments should be recorded and tracked in Git

Slide 31

Slide 31 text

Future CI/CD

Slide 32

Slide 32 text

“Towards Progressive Delivery” James Governor, Redmonk •‘Blast Radius’ •Feature flags •Canary •‘Built for failure’

Slide 33

Slide 33 text

Serverless Jenkins with Jenkins X “By the time you merge it’s too late” – shifting left on CI/CD for pull requests https://medium.com/@jdrawlings/serverless-jenkins-with-jenkins-x-9134cbfe6870 Headless Jenkins (Jenkinsfile Runner) Knative Build Prow Jenkins X

Slide 34

Slide 34 text

Wrap-up

Slide 35

Slide 35 text

Wrap Up ▪ Cloud native & Kubernetes are a major industry shift ▪ GitOps has essential techniques and practices to help you go faster without costing you stability. ▪ Jenkins X focuses on best practices for CI/CD for Kubernetes ▪ CI/CD is evolving forward quickly: serverless, progressive delivery ▪ We’re all on this journey, let’s drive things forward together