shifting left with cloud native ci cd
play

Shifting Left With Cloud Native CI/CD QCon San Francisco 2019 - PowerPoint PPT Presentation

Shifting Left With Cloud Native CI/CD QCon San Francisco 2019 @bobcatwilson @tektoncd Christie Wilson MY CAT Lead Engineer @ Google Tekton Co-Creator ME @bobcatwilson @tektoncd Make Mistakes! @bobcatwilson @tektoncd Rockstars Heroes


  1. Shifting Left With Cloud Native CI/CD QCon San Francisco 2019 @bobcatwilson @tektoncd

  2. Christie Wilson MY CAT Lead Engineer @ Google Tekton Co-Creator ME @bobcatwilson @tektoncd

  3. Make Mistakes! @bobcatwilson @tektoncd

  4. Rockstars Heroes Ninjas ... Janitors @bobcatwilson @tektoncd

  5. Can’t have success without failure @bobcatwilson @tektoncd

  6. Cloud Native CI/CD can make failure easier and cheaper @bobcatwilson @tektoncd

  7. Agenda ● What is Cloud Native? ● What is Cloud Native CI/CD? ● What is shifting left? ● What is Tekton? ● Demo! ● What’s next for Tekton? @bobcatwilson @tektoncd

  8. What is Cloud Native? @bobcatwilson @tektoncd

  9. What is Cloud Native? } Microservices in containers Images / Containers Optimized resource utilization } Dynamically orchestrated Kubernetes @bobcatwilson @tektoncd

  10. wut? @bobcatwilson @tektoncd

  11. Images/Containers ● A binary and all of its dependencies ● Containers share an OS ● Run as resource isolated processes Non-cloud native equivalent: @bobcatwilson @tektoncd

  12. Kubernetes ● Platform for managing containers ● Abstracts away the underlying hardware ○ Computing ○ Networking ○ Storage Non-cloud native equivalent: ● People + wikis ● Build your own! ● Machine under your desk @bobcatwilson @tektoncd

  13. A Few Kubernetes Concepts @bobcatwilson @tektoncd

  14. Pod + Node ● Node = machine you run stuff on ○ Could be a physical machine or VM ● Pod = 1 or more containers ○ Run on the same pod Non-cloud native equivalent: ● Node -> Host machine ● Pod -> Bunch of stuff you run together ○ e.g. My python process + supervisord + some proxy service @bobcatwilson @tektoncd

  15. Y et A nother M arkup L anguage @bobcatwilson @tektoncd

  16. Moar complicated @bobcatwilson @tektoncd

  17. 2008 complexity @bobcatwilson @tektoncd

  18. Cloud Native complexity @bobcatwilson @tektoncd

  19. Cloud Native ● Start with a webserver complexity ● End up with Kubernetes + Istio + Knative + Helm + Spinnaker* There is a lot to grok here and it’s constantly changing! * Istio : Stuff for services to talk to each other Helm : Kubernetes package manager Knative : Serverless platform on Kubernetes Spinnaker : Control plane for deployment @bobcatwilson @tektoncd

  20. Agenda ● What is Cloud Native? ● What is Cloud Native CI/CD? ● What is shifting left? ● What is Tekton? ● Demo! ● What’s next for Tekton? @bobcatwilson @tektoncd

  21. What is CI/CD? @bobcatwilson @tektoncd

  22. Literally integrating code together continually What is CI? Continuous Integration @bobcatwilson @tektoncd

  23. Software ● How does my code get from Supply Chain source to running in prod? ● What pieces are involved? ● CI/CD = build, test + deploy @bobcatwilson @tektoncd

  24. Cloud Native 1. Serverless 2. Specs and standards CI/CD 3. Reusable components 4. Infrastructure agnostic The Definitive* Definition 5. Config as code * aka defined by me @bobcatwilson @tektoncd

  25. Cloud Native CI/CD 1. Serverless 2. Specs and standards 3. Reusable components 4. Infrastructure agnostic 5. Config as code @bobcatwilson @tektoncd

  26. Serverless ● Scaling up and down resources as needed CI/CD ● You specify what you want to run, freed of the much of responsibility to manage the underlying resources @bobcatwilson @tektoncd

  27. Serverless ● Don’t need to waste resources CI/CD ● No need for monolithic execution @bobcatwilson @tektoncd

  28. Cloud Native CI/CD 1. Serverless 2. Specs and standards 3. Reusable components 4. Infrastructure agnostic 5. Config as code @bobcatwilson @tektoncd

  29. Specs & ● Part of what makes k8s so cool Standards is that it’s a spec we can all agree on Doesn’t have to be perfect, just good enough & widely used @bobcatwilson @tektoncd

  30. Specs & ● Any k8s resource can be manipulated (e.g. with Standards controllers, admission webhooks) ● Anything built on k8s can be Infinite extensibility! manipulated with k8s tools @bobcatwilson @tektoncd

  31. Cloud Native CI/CD 1. Serverless 2. Specs and standards 3. Reusable components 4. Infrastructure agnostic 5. Config as code @bobcatwilson @tektoncd

  32. Reusable ● Write it once, use it again and and again components ● Kubernetes is itself a building block, that enables the creation Do we need another Slack of more building blocks notification plugin? @bobcatwilson @tektoncd

  33. Cloud Native CI/CD 1. Serverless 2. Specs and standards 3. Reusable components 4. Infrastructure agnostic 5. Config as code @bobcatwilson @tektoncd

  34. Use your own ● A kubernetes pod is a kubernetes pod infra ● If you can deploy to prod kube, it should be possible to deploy to your kube Infrastructure agnostic ● Use the same config! @bobcatwilson @tektoncd

  35. Use your own ● The sooner you fail the better! ● Perform testing earlier in your infra lifecycle ● Why not do it before the code Shift left is pushed! @bobcatwilson @tektoncd

  36. Use your own ● Make the complexity of kubernetes worth it! infra ● Pre-kube, it was nearly impossible for me to setup a production like environment on Parity my own machine @bobcatwilson @tektoncd

  37. Cloud Native CI/CD 1. Serverless 2. Specs and standards 3. Infrastructure agnostic 4. Reusable components 5. Config as code @bobcatwilson @tektoncd

  38. Config as Code Even the YAML @bobcatwilson @tektoncd

  39. Learning & ● As our systems get more complicated, we need to be Debugging able to learn faster ● We need to be able to look at Fail easily! what the system are doing @bobcatwilson @tektoncd

  40. Debugging = Learning @bobcatwilson @tektoncd

  41. The faster you can learn, the faster you can deliver value @bobcatwilson @tektoncd

  42. @bobcatwilson @tektoncd

  43. How do we ● By poking and prodding the thing debug? ● Looking at what it’s doing ● Changing it, seeing what happens @bobcatwilson @tektoncd

  44. Agenda ● What is Cloud Native? ● What is Cloud Native CI/CD? ● What is shifting left? ● What is Tekton? ● Demo! ● What’s next for Tekton? @bobcatwilson @tektoncd

  45. Shifting Left @bobcatwilson @tektoncd

  46. Software development @bobcatwilson @tektoncd

  47. Cost of defects @bobcatwilson @tektoncd

  48. There WILL be defects Shift Left ● Test earlier! ● Catch failures earlier! Fail earlier! @bobcatwilson @tektoncd

  49. Shift Left @bobcatwilson @tektoncd

  50. Shifting Left with Cloud Native @bobcatwilson @tektoncd

  51. Agenda ● What is Cloud Native? ● What is Cloud Native CI/CD? ● What is shifting left? ● What is Tekton? ● Demo! ● What’s next for Tekton? @bobcatwilson @tektoncd

  52. @bobcatwilson @tektoncd

  53. Tekton is Cloud Tekton is a Cloud Native Native CI/CD CI/CD building block! @bobcatwilson @tektoncd

  54. The CDF @bobcatwilson @tektoncd

  55. Contributors from: ● Google ● CloudBees ● Red Hat ● IBM ● Salesforce ● Puppet ● … and more! New contributor friendly! @bobcatwilson @tektoncd

  56. Porcelain vs Plumbing Toilet vs. Plumbing Underneath @bobcatwilson @tektoncd

  57. Who is Tekton for? Now! Now! Watch this Space Developers All users that End users that building CI/CD want a catalog of want DIY systems reusable CI/CD @bobcatwilson @tektoncd

  58. ● Extending kubernetes with custom types CRDs ● Controllers act on Resources ● = CI/CD platform on Custom Resource Definitions Kubernetes @bobcatwilson @tektoncd

  59. Steps ● Is actually a container spec (k8s type) ● Container image + ○ Environment variables ○ Arguments ○ Volumes ○ etc. @bobcatwilson @tektoncd

  60. Task CRD ● New CRD ● Sequence of steps ● Run in sequential order ● Run on the same k8s node @bobcatwilson @tektoncd

  61. Pipeline CRD ● Express Tasks order ○ Sequentially ○ Concurrently ○ (Graph) ● Execute Tasks on different nodes ● Link inputs and outputs @bobcatwilson @tektoncd

  62. Runtime CRDs ● Instances of Pipeline/Task: ○ PipelineRun ○ TaskRun ● PipelineResource ○ Runtime info like image registry, git repo, etc. @bobcatwilson @tektoncd

  63. Tekton Pipeline CRDs @bobcatwilson @tektoncd

  64. PipelineResources + Software Supply Chain ● Typed artifacts moving through your supply chain PipelineResources @bobcatwilson @tektoncd

  65. But I want to make PipelineRun whenever I open a Pull Request? @bobcatwilson @tektoncd

  66. Tekton Triggers CRDs @bobcatwilson @tektoncd

  67. Cloud Native CI/CD Tekton Serverless Serverless execution Specs and standards Tekton API Infrastructure agnostic Containers are the building block Tasks, Pipelines, Reusable components PipelineResources, + TriggerTemplates, TriggerBindings, Config as Code EventListeners @bobcatwilson @tektoncd

Recommend


More recommend