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

Tekton & ArgoCD, the Dynamic Duo for Cloud Nati...

Tekton & ArgoCD, the Dynamic Duo for Cloud Native CI/CD

Kevin Dubois

June 05, 2023
Tweet

More Decks by Kevin Dubois

Other Decks in Technology

Transcript

  1. Tekton and ArgoCD The Dynamic Duo for Cloud Native CI/CD

    Kevin Dubois Principal Developer Advocate, Red Hat Alex Soto Director of Developer Experience, Red Hat
  2. Alex Soto (lordofthejars.com) • @alexsotob • [email protected] • Currently Red

    Hat’s Director of Developer Experience • Featured speaker at technology events around the globe • A Java Champion since 2017 • Writer, University Professor, Radio collaborator • A big fan of testing and continuous delivery in 21st century
  3. Kevin Dubois • Principal Developer Advocate at Red Hat •

    18+ years of experience building and delivering software applications • Speak English, Dutch, French, Italian • Passionate about improving Dev Experience with Open Source @[email protected] youtube.com/@thekevindubois linkedin.com/in/kevindubois github.com/kdubois @kevindubois.com
  4. Developer Flow Outer loop Inner loop Pull/Merge Request Production Build

    / Package Code Push Debug Code Review Build Deploy Security Tests Compliance Inner loop Outer loop Developer Test
  5. Today, let’s focus on the “Outer Loop” The outer loop

    consists of the larger team processes that your code flows through on its way to the cluster: code reviews, integration tests, security and compliance. It needs be transparent and fast for developers from all teams. Outer Loop Development
  6. CI - CD - CD Build Test Security Checks Release

    Deploy Stage Deploy Prod Continuous Integration Continuous Delivery Continuous Deployment Manual Auto
  7. The application Push to give energy windmill Kafka Topic 2.Sends

    the interaction Dashboard: Green Energy Nickname Team Push/Tap to generate energy Cars that needs energy Two teams competing (top 5 players) First wins
  8. Architecture 3: Generate power (REST) Game Dashboard 1: Assign player

    Name & Team (REST) 6: Update dashboard (SSE) 2: Increment player cluster counter 4: Send power event 5: Receive power events
  9. Developer Flow Outer loop Inner loop Pull/Merge Request Production Build

    / Package Code Push Debug Code Review Build Deploy Security Tests Compliance Inner loop Outer loop Developer Test
  10. Cloud-Native CI/CD Containers Built for container apps and runs on

    Kubernetes Designed with microservices and distributed teams in mind DevOps Serverless Runs serverless with no CI/CD engine to manage and maintain
  11. Why Cloud-Native CI/CD? Traditional CI/CD Cloud-Native CI/CD Designed for Virtual

    Machines Designed for Containers and Kubernetes Require IT Ops for CI engine maintenance Pipeline as a service with no Ops overhead Plugins shared across CI engine Pipelines fully isolated from each other Plugin dependencies with undefined update cycles Everything lifecycled as container images No interoperability with Kubernetes resources Native Kubernetes resources Admin manages persistence Platform manages persistence Config baked into CI engine container Configured via Kubernetes ConfigMaps Declarative !
  12. Tekton is a Graduated Continuous Delivery Foundation project and follows

    the OpenSSF best practices. Contributions from Google, Red Hat, Cloudbees, IBM, Elastic, Puppet, and many more An open-source project for providing a set of shared and standard components for building Kubernetes-style CI/CD systems https://tekton.dev
  13. Step • Runs commands within container(builder image) • Mounts volumes,

    uses env vars • Eg. ‘mvn test’ or ‘git clone’ Task • A list of steps that are executed in sequential order • Takes inputs, outputs parameters Task Run • Runs a individual Task Pipeline • List of tasks defined to run in a certain order • Takes inputs, outputs parameters Pipeline Run • Runs a Pipeline Typed Decoupled Cloud Native Declarative Tekton Concepts
  14. apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata: name: wind-turbine-pipeline spec: params: -

    name: MANIFESTS_GIT_REPO type: string tasks: - name: git-clone params: - name: url value: $(params.GIT_REPO) workspaces: - name: output workspace: source workspaces: - name: source
  15. Tekton CLI(tkn) •List and Describe • Pipeline • Resource •

    Task • Task Run • Pipeline Run •View logs • Task Run • Pipeline Run •https://github.com/tektoncd/cli
  16. What is GitOps? Treat everything as code Git is the

    single source of truth Operations through Git workflows
  17. CI/CD Engines Jenkins Spinnaker Tekton Concourse CI …... CI/CD versus

    GitOps 26 Desired State Cluster State Observe State Take Action GitOps Engines ACM, ArgoCD, FluxCD Razee, Faros Desired State Cluster State
  18. Source Git Repository Image Registry CI Config Git Repository Kubernetes

    CD Pull Request / Commit Push Pull GitOps Application Delivery Model
  19. GitOps Application Delivery Model Push Pull Pull Request Source Git

    Repository Image Registry Config Git Repository Kubernetes Deploy Monitor Detect drift CD Take action
  20. ArgoCD Sync Monitor Detect drift Take action Argo CD is

    a declarative, GitOps continuous delivery tool for Kubernetes. Cluster and application configuration versioned in Git Automatically syncs configuration from Git to clusters Drift detection, visualization and correction
  21. Start exploring in the OpenShift Sandbox. Learn containers, Kubernetes, and

    OpenShift in your browser. developers.redhat.com/developer-sandbox Try Red Hat's products and technologies without setup or configuration.
  22. 41 Learn OpenShift and all Cloud Native for free in

    our web based learning portal Resources Try OpenShift GitOps on our learning portal Red Hat Developers Deep Dive Join our workshops to explore Argo CD, Tekton, Kubernetes, Helm and more! Sign up at developers.redhat.com Find out more about Red Hat’s products and what it offers developers GitOps ebooks Find out more on GitOps with ebooks https://developers.redhat.com/e-books Get more about GitOps on Red Hat Developer Portal!
  23. Join Red Hat Developer. Build here. Go anywhere. facebook.com/RedHatDeveloper youtube.com/RedHatDevelopers

    twitter.com/rhdevelopers linkedin.com/showcase/red-hat-developer Thank you!