Tekton_ArgoCD-_KCD_Taiwan-cicd-openshift

bashwen2022 58 views 40 slides May 02, 2024
Slide 1
Slide 1 of 40
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40

About This Presentation

Taiwan


Slide Content

@kevindubois
Tekton and ArgoCD
The Dynamic Duo for Cloud Native CI/CD
Kevin Dubois
Principal Developer Advocate, Red Hat

@kevindubois
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

@kevindubois

@kevindubois

@kevindubois
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

@kevindubois
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

@kevindubois
Love Thy Mono
Every 4 months Every
week/day/hour

@kevindubois
CI - CD - CD
Build Test
Security
Checks
Release
Deploy
Stage
Deploy
Prod
Continuous Integration
Continuous Delivery
Continuous Deployment
Manual
Auto

@kevindubois
Continuous Delivery… of a racing game :)

@kevindubois
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

@kevindubois
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

@kevindubois
YOU PLAY!
Scan the QR Code with your phone to play

@kevindubois
What if we added a new feature?

@kevindubois
Dev Ops
Friday | 4:45 PM
Wall of confusion

@kevindubois

@kevindubois
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

@kevindubois
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

@kevindubois
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 !

@kevindubois
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

@kevindubois
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

@kevindubois
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

@kevindubois
22
Tekton Hub
Search, discover and
install Tekton Tasks
hub.tekton.dev

@kevindubois
Tekton CLI(tkn)
•List and Describe
•Pipeline
•Resource
•Task
•Task Run
•Pipeline Run
•View logs
•Task Run
•Pipeline Run
•https://github.com/tektoncd/cli

@kevindubois
Gitops

@kevindubois
What is GitOps?

Treat
everything as
code
Git is the
single source
of truth
Operations
through Git
workflows

@kevindubois
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

@kevindubois
Let’s deploy our new feature in a Modern, Automated, Gitops way!

@kevindubois
Live Coding

@kevindubois
Source
Git Repository
Image
Registry
CI
GitOps Application Delivery Model

@kevindubois
Source
Git Repository
Image
Registry
CI
Config
Git Repository
Kubernetes
CD
Pull Request
/ Commit
Push
Pull
GitOps Application Delivery Model

@kevindubois
GitOps Application Delivery Model
Push
Pull
Pull
Request
Source
Git
Repository
Image
Registry
Config
Git
Repository
Kubernetes
Deploy
Monitor
Detect
drift
CD
Take
action

@kevindubois
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

@kevindubois
33
V2
Scan the QR Code with your phone to play

@kevindubois
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.

@kevindubois
https://red.ht/gitops-cookbook

@kevindubois
36
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!

@kevindubois
https://red.ht/modernize-enterprise-java

@kevindubois
https://speakerdeck.com/kdubois/tekton-and-argocd-kcd-taiwan

@kevindubois
Thank you!
@[email protected]
youtube.com/@thekevindubois
linkedin.com/in/kevindubois
github.com/kdubois
@kevindubois.com

@kevindubois
Join Red Hat Developer.
Build here. Go anywhere.
facebook.com/RedHatDeveloper
youtube.com/RedHatDevelopers
twitter.com/rhdevelopers
linkedin.com/showcase/red-hat-developer
Tags