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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend