1 of 26

Pipelines in cloud native applications, GitOps and beyond

© 2023 Cloud Native Computing Foundation

1

2 of 26

whoami

Samir Romdhani

Software engineer

Certified Kubernetes Administrator CKA

Certified Kubernetes Application Developer CKAD

Open source contributor:

https://romdhanisam.github.io

© 2023 Cloud Native Computing Foundation

2

3 of 26

Outline

  • What is CI/CD ?
  • Implementing CI/CD with Gitlab-ci (Demo time)
  • Implementing CI/CD with Github Action (Demo time)
  • What is Cloud Native CI/CD ?
  • What is GitOps ?
  • Revisit previous demo with Argo-cd (Demo time)
  • Tekton Concepts

© 2023 Cloud Native Computing Foundation

3

4 of 26

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

5 of 26

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

6 of 26

Why is CI/CD Important

What tools can we use: Big list, lets go first with Gitlab-ci and github action

  • Helps avoid bugs and code mistake.
  • Simplify rollback
  • Reduce complexity and increase efficiency when apps become larger

© 2023 Cloud Native Computing Foundation

6

7 of 26

Demo time

© 2023 Cloud Native Computing Foundation

7

8 of 26

Gitlab ci��Repo: https://gitlab.com/lab-gitlab-ci1/demo-appBranch: main

© 2023 Cloud Native Computing Foundation

8

9 of 26

Gitlab ci

© 2023 Cloud Native Computing Foundation

9

10 of 26

Github action��Repo: https://github.com/romdhanisam/lab-github-actions�Branch: main

© 2023 Cloud Native Computing Foundation

10

11 of 26

© 2023 Cloud Native Computing Foundation

11

12 of 26

What is Cloud Native CI/CD

© 2023 Cloud Native Computing Foundation

12

13 of 26

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

  1. Microservices
  2. Container technologies

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

14 of 26

Cloud Native CI/CD

Cloud Native CI/CD Principles

  • Cloud Native CI/CD is a practice to build, test, deploy, and monitor cloud-native applications in the cloud.
  • A successful cloud-native CI/CD process relies on the Infrastructure-as-Code (IaC) toolset
  1. Containers (Pipeline built for container apps and runs on Kubernetes)
  2. Serverless (Runs with no CI/CD engine)
  3. DevOps

© 2023 Cloud Native Computing Foundation

14

15 of 26

What is GitOps ?

© 2023 Cloud Native Computing Foundation

15

16 of 26

GitOps

  • GitOps is a way of implementing Continuous Deployment for cloud native applications.
  • Git as a single source of truth

© 2023 Cloud Native Computing Foundation

16

17 of 26

Revisiting previous demo with Argo-cd

© 2023 Cloud Native Computing Foundation

17

18 of 26

Argo CD

A declarative GitOps continuous delivery tool for kubernetes CNCF project�https://argoproj.github.io

© 2023 Cloud Native Computing Foundation

18

19 of 26

© 2023 Cloud Native Computing Foundation

19

20 of 26

Argo cd Goal

  • Keep app in sync with Yaml manifests
  • Provides a dashboard to manage all the deployed applications

Running app

YAML�Deployment manifests

© 2023 Cloud Native Computing Foundation

20

21 of 26

© 2023 Cloud Native Computing Foundation

21

22 of 26

© 2023 Cloud Native Computing Foundation

22

23 of 26

Tekton

https://tekton.dev

© 2023 Cloud Native Computing Foundation

23

24 of 26

Tekton Concepts

  • Tekton is an open-source framework, and a foundation, for creating CI/CD systems, allowing developers to build, test, and deploy across cloud providers.�
  • As a Kubernetes-native framework, Tekton makes it easier to deploy across multiple cloud providers
  • Using Custom Resource Definitions (CRDs) in Kubernetes, Tekton uses the Kubernetes control plane to run pipeline tasks

© 2023 Cloud Native Computing Foundation

24

25 of 26

Tekton Pipeline

© 2023 Cloud Native Computing Foundation

25

26 of 26

Thanks all

© 2023 Cloud Native Computing Foundation

26