Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CNCF Hyderabad Meetup: Getting Started with Tekton

CNCF Hyderabad Meetup: Getting Started with Tekton

Nancy Chauhan

February 27, 2021
Tweet

More Decks by Nancy Chauhan

Other Decks in Programming

Transcript

  1. © 2020 Cloud Native Computing Foundation 2 $ whoami •

    Developer @Grofers • Loves to make cool things ranging from hardware to infra. • Blog: nancychauhan.in • Speaks her mind at @_nancychauhan(Twitter Handle)
  2. © 2020 Cloud Native Computing Foundation 3 Agenda • What

    is Cloud Native CI/CD • Containers and CI/CD • Kubernetes and CI/CD • Tekton • Tekton triggers
  3. © 2020 Cloud Native Computing Foundation 4 • Cloud computing

    adoption has accelerated rapidly. • Public cloud spending: $500 billion by 2023 according to IDC • Devops Culture Shift : Cloud Native
  4. © 2020 Cloud Native Computing Foundation 5 What does Cloud

    Native mean? The Linux Foundation offers the following definition: “Cloud native computing uses an open-source software stack to deploy applications as microservices, packaging each part into its own container and dynamically orchestrating those containers to optimize resource utilization.”
  5. © 2020 Cloud Native Computing Foundation 7 Containers Microservices in

    containers • Ease for building, packaging and running applications. • Fast startup times. • Saving in operational cost as compared to VMS.
  6. © 2020 Cloud Native Computing Foundation 8 With the rise

    of containerization, both build and deployment stages in CI/CD pipelines continue to be containerized. It has led to the rise and development of various CI and CD tools for the Cloud-Native landscape.
  7. © 2020 Cloud Native Computing Foundation 9 Containers and CI/CD

    • All dependencies you need are in container • All we need is to run the container
  8. © 2020 Cloud Native Computing Foundation 10 Most popular way

    to go cloud native consists of Containers + Kubernetes
  9. © 2020 Cloud Native Computing Foundation 11 Kubernetes • Platform

    for managing containers • Better use of resources – Scaling up and down while demand – Serverless models mean you only pay for compute you need • Standardisation
  10. © 2020 Cloud Native Computing Foundation 12 Kubernetes and CI/CD

    While running CI/CD pipelines in Kubernetes, some of the challenges we are going to face are: 1. Images instead of binaries 2. Clusters: Many environments 3. Microservices instead of monoliths (Managing dependencies between all services is going to be challenging) 4. Ephemeral environments.
  11. © 2020 Cloud Native Computing Foundation 13 Hence, we need

    a solution to these challenges in the form of cloud-native CI/CD tools. Some of the tools listed in the cloud-native landscape are Spinnaker, Argo CD, Tekton, and Jenkins X. Let’s take a deep dive into Tekton now!
  12. © 2020 Cloud Native Computing Foundation 16 Tekton provides us

    with composable, declarative, reproducible, and Cloud-Native tools to easily build the pipelines. Tekton adds a few CRDs and custom resources to your Kubernetes cluster which can be used to make CI/CD pipelines.
  13. © 2020 Cloud Native Computing Foundation 17 Tekton Pipelines features

    • Portability • Decoupled – Run pipeline with your own resources – Run a piece of pipeline ( task ) on their own • Tekton pipelines is implemented as K8s CRDs
  14. © 2020 Cloud Native Computing Foundation 21 Tekton as replacement

    for Jenkins/Gitlab ETC • Tekton needs PipelineRun and TaskRun to execute • Tekton Events is a separate project that runs pipelines on events • Events can be webhooks, Github code push etc. • Event listeners receive webhooks and match against trigger binding. • Trigger bindings populate a pipelinerun using trigger templates
  15. © 2020 Cloud Native Computing Foundation 23 Advantages 1. Tekton

    is cloud-native, runs on an existing Kubernetes cluster. 2. Tekton provides an out-of-the-box solution for monitoring. 3. Easy to build pipeline using reusable tasks and steps.
  16. © 2020 Cloud Native Computing Foundation 24 Disadvantages: 1. No

    out-of-the-box support for authentication. 2. Pipeline configuration is stored separately from code. To change the pipeline configuration, developers need to apply Kubernetes manifests manually.