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

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

    Director of Open Source Community | CloudBees tmiranda@cloudbees.com | @tracymiranda
  2. 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
  3. 10.

    GitOps @tracymiranda Operation by pull request Git as the single

    place where we operate All changes are observable
  4. 11.

    The GitOps Effect: Delivering Quality at Speed 2 150+ deployments

    per week Via @fractallambda ref: https://twitter.com/tracymiranda/status/1045693846464729094
  5. 13.
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 34.
  16. 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