GitOps, Jenkins X & the Future of CI/CD

GitOps, Jenkins X & the Future of CI/CD

DevOps is the new legacy. We need to rethink CI/CD with Kubernetes and cloud-native development in mind. Enter GitOps, a new paradigm and set of best practices. Jenkins X aims to implement GitOps in practice, using Git as a source of truth and with built-in automation.

Tracy Miranda discusses GitOps, Jenkins X, and what the future of CI/CD for Kubernetes should look like. You’ll understand why traditional DevOps is not suitable in a Kubernetes and cloud-native world, explore GitOps principles and discover how they facilitate high-velocity app development, and learn how to use GitOps in practice to focus on your app development while using Kubernetes and open source cloud-native tools Jenkins X, Helm and Draft.

#VelocityConf London, November 2nd 2018

D6c51d0f88ee44c9acb659b7cad2eee2?s=128

Tracy Miranda

November 02, 2018
Tweet

Transcript

  1. GitOps, Jenkins X & the Future of CI/CD Tracy Miranda,

    Director of Open Source Community | CloudBees tmiranda@cloudbees.com | @tracymiranda
  2. So, DevOps… @tracymiranda

  3. DevOps is the new legacy @tracymiranda

  4. Cloud Native Technologies ▪On demand self-service ▪Broad network access ▪Resource

    pooling ▪Rapid elasticity ▪Measured service
  5. DevOps Cloud GitOps Cloud Native

  6. What would CI/CD look like if we had unlimited, scalable

    resources?
  7. DORA State of DevOps Reports @tracymiranda

  8. 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
  9. Building and scaling high performance technology organisations @tracymiranda

  10. GitOps @tracymiranda Operation by pull request Git as the single

    place where we operate All changes are observable
  11. The GitOps Effect: Delivering Quality at Speed 2 150+ deployments

    per week Via @fractallambda ref: https://twitter.com/tracymiranda/status/1045693846464729094
  12. https://www.weave.works/blog/what-is-gitops-really @tracymiranda

  13. JENKINS X

  14. 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
  15. 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
  16. @tracymiranda

  17. 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
  18. @tracymiranda

  19. 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
  20. Kubernetes Custom Resource Definitions (CRD) Environment CRD

  21. Kubernetes Custom Resource Definitions (CRD) Pipeline Activity CRD

  22. 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
  23. “Friends don’t let friends install Kubernetes” - James Strachan, Jenkins

    X
  24. You can have fun tinkering

  25. Or you can just get productive

  26. MultiCloud Support jx create cluster minikube

  27. 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
  28. 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
  29. @tracymiranda

  30. 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
  31. Future CI/CD

  32. “Towards Progressive Delivery” James Governor, Redmonk •‘Blast Radius’ •Feature flags

    •Canary •‘Built for failure’
  33. 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
  34. Wrap-up

  35. 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