Pipelines in cloud native applications, GitOps and beyond
© 2023 Cloud Native Computing Foundation
1
whoami
Samir Romdhani
Software engineer
Certified Kubernetes Administrator CKA
Certified Kubernetes Application Developer CKAD
Open source contributor:
© 2023 Cloud Native Computing Foundation
2
Outline
© 2023 Cloud Native Computing Foundation
3
CI/CD Defined
CI/CD is a method to deliver apps to customers more frequently using automation into the stages of app development.�The main concepts attributed to CI/CD are continuous integration, continuous delivery/deployment.
© 2023 Cloud Native Computing Foundation
4
CI/CD�Phases
CI
CD
Source Build📦 Test, Code quality 🎯
Artifact repository
Maven,
Jar,
Npm package,
Docker image
...
Deploy to dev to QA env to PROD env 🚀
Simplified Diagram
© 2023 Cloud Native Computing Foundation
5
Why is CI/CD Important
What tools can we use: Big list, lets go first with Gitlab-ci and github action
© 2023 Cloud Native Computing Foundation
6
Demo time
© 2023 Cloud Native Computing Foundation
7
Gitlab ci��Repo: https://gitlab.com/lab-gitlab-ci1/demo-app�Branch: main
© 2023 Cloud Native Computing Foundation
8
Gitlab ci
© 2023 Cloud Native Computing Foundation
9
Github action��Repo: https://github.com/romdhanisam/lab-github-actions�Branch: main
© 2023 Cloud Native Computing Foundation
10
© 2023 Cloud Native Computing Foundation
11
What is Cloud Native CI/CD
© 2023 Cloud Native Computing Foundation
12
Cloud Native application
Cloud Native is an approach to software development in which apps are designed from outset to be used in the cloud.
The Cloud Native method is based on 4 dependent components
3. Developpement Process
4. Continuous Delivery
(1,2) basis for developing cloud-native applications.
(3,4) Agile DevOps Culture
(1,2)Developers 🤝 (3,4)Entreprises
© 2023 Cloud Native Computing Foundation
13
Cloud Native CI/CD
Cloud Native CI/CD Principles
© 2023 Cloud Native Computing Foundation
14
What is GitOps ?
© 2023 Cloud Native Computing Foundation
15
GitOps
© 2023 Cloud Native Computing Foundation
16
Revisiting previous demo with Argo-cd
© 2023 Cloud Native Computing Foundation
17
Argo CD
A declarative GitOps continuous delivery tool for kubernetes CNCF project�https://argoproj.github.io
Repo: https://github.com/romdhanisam/lab-github-actions�Branch: feat/argocd
© 2023 Cloud Native Computing Foundation
18
© 2023 Cloud Native Computing Foundation
19
Argo cd Goal
Running app
YAML�Deployment manifests
© 2023 Cloud Native Computing Foundation
20
© 2023 Cloud Native Computing Foundation
21
© 2023 Cloud Native Computing Foundation
22
Tekton
https://tekton.dev
© 2023 Cloud Native Computing Foundation
23
Tekton Concepts
© 2023 Cloud Native Computing Foundation
24
Tekton Pipeline
© 2023 Cloud Native Computing Foundation
25
Thanks all
© 2023 Cloud Native Computing Foundation
26