Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Photo by Abele Gigante on Unsplash Cheng Wei Chen @ iThome Cloud Sumit 2022 Lab: GitOps with GitLab and K8s

Slide 3

Slide 3 text

Cheng Wei Chen 陳 正瑋 Athemaster 炬識科技 / Technology Consultant
 《Effective DevOps 中⽂版》譯者、GitLab Hero http://chengweichen.com

Slide 4

Slide 4 text

Agenda ‧GitOps 簡介 ‧解說 Lab 的案例架構 ‧講師案例示範及學員實作 ‧結語

Slide 5

Slide 5 text

STORY

Slide 6

Slide 6 text

Commit Code OK! Dev Ops Deploy Code 炸 炸 炸

Slide 7

Slide 7 text

Commit Code OK! Dev Ops Deploy Code 炸 炸 炸 啊~我忘了說有⼀個新的 Con fi

Slide 8

Slide 8 text

Commit Code OK Again ! Dev Ops Code Deploy 炸 炸 炸 Again Again Again

Slide 9

Slide 9 text

Commit Code OK Again ! Dev Ops Code Deploy 炸 炸 炸 Again Again Again Ops 啊!我昨天有⼿動改了 ⼀個 Con fi

Slide 10

Slide 10 text

Commit Code OK Again x2 Dev Ops Code Deploy 炸 炸 炸 Again Again Again Agai Aga Aga 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸

Slide 11

Slide 11 text

Commit Code OK Again x2 Dev Ops Code Deploy 炸 炸 炸 Again Again Again Agai Aga Aga 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 炸 Infra Infra 有⼀些調整,忘了 跟你說~

Slide 12

Slide 12 text

Provision Code Deploy Artifacts Production ⼀條龍 ⼯程師 Configuration

Slide 13

Slide 13 text

Provision Code Deploy CI / CD Production ⼀條龍 ⼯程團隊 Configuration Automation

Slide 14

Slide 14 text

Code Deploy CI / CD Production ⼀條龍 ⼯程團隊 Configuration Automation Ops / Infra 團隊 Provision

Slide 15

Slide 15 text

Photo by Fancycrave on Unsplash GitOps 簡介

Slide 16

Slide 16 text

GitOps = IaC + MRs + CI/CD GitLab 說的~

Slide 17

Slide 17 text

GitOps = IaC + MRs + CI/CD Continuous Integration Continuous Delivery And Automation

Slide 18

Slide 18 text

GitOps = IaC + MRs + CI/CD Merge Requests Change mechanism Code Review / Approvals

Slide 19

Slide 19 text

新 Issue Coding Commit CI/CD Pipeline 建立 Feature branch 測試驗收 Feature branch Main branch Prod Pipeline 新 Issue Merge Merge Monitor Production branch Feedback Code Review CI/CD Pipeline

Slide 20

Slide 20 text

GitOps = IaC + MRs + CI/CD Infrastructure as Code Git repository / VCS

Slide 21

Slide 21 text

GitOps = IaC + MRs + CI/CD Infrastructure as Code ???

Slide 22

Slide 22 text

GitOps = IaC + MRs + CI/CD 圖片來源 https://youtu.be/Usb9iUphT6Y

Slide 23

Slide 23 text

GitOps = IaC + MRs + CI/CD 圖片來源 https://youtu.be/Usb9iUphT6Y

Slide 24

Slide 24 text

圖片來源 https://youtu.be/Usb9iUphT6Y GitOps = IaC + MRs + CI/CD

Slide 25

Slide 25 text

GitOps = IaC + MRs + CI/CD 圖片來源 https://youtu.be/Usb9iUphT6Y

Slide 26

Slide 26 text

GitOps = IaC + MRs + CI/CD 圖片來源 https://youtu.be/Usb9iUphT6Y

Slide 27

Slide 27 text

App Infra Worker 1. App 有更新嗎? 2. infra 有更新嗎? 3.有!執⾏異動! PULL or PUSH

Slide 28

Slide 28 text

App Infra Worker 1-1. App 有更新,該做事了! 1-2. infra 有更新,該做事了! 2.收到!開始執⾏異動! PULL or PUSH

Slide 29

Slide 29 text

Photo by Fancycrave on Unsplash 實作練習

Slide 30

Slide 30 text

DEMO

Slide 31

Slide 31 text

Photo by Fancycrave on Unsplash 結語

Slide 32

Slide 32 text

Tools VCS CI CD Container Registry CM IaC Container orchestration 14.x 15.x

Slide 33

Slide 33 text

資料來源 https://gitlab.com/gitops-demo/readme

Slide 34

Slide 34 text

GitOps = IaC + MRs + CI/CD DevOps

Slide 35

Slide 35 text

GitOps = IaC + MRs + CI/CD GitOps is IaC done right !

Slide 36

Slide 36 text

DevOps, then GitOps !

Slide 37

Slide 37 text

GitOps is not for everyone ! (with K8S) ⽔很深請⼩⼼

Slide 38

Slide 38 text

Photo by Fancycrave on Unsplash 如何開始實踐 GitOps

Slide 39

Slide 39 text

1. IaC 2. Automation 3. Code Review & Approve 4. Multi environment 5. CI/CD 6. Use Repository 7. Agile & Iteration

Slide 40

Slide 40 text

1. IaC 2. Automation 3. Code Review & Approve 4. Multi environment 5. CI/CD 6. Use Repository 7. Agile & Iteration DevOps

Slide 41

Slide 41 text

1. IaC 讓⼀切都成為 Code

Slide 42

Slide 42 text

2. Automation 盡可能⾃動化 如果不成,就紀錄它!

Slide 43

Slide 43 text

3. Code Review & Approve 審查、複閱、檢查、稽核

Slide 44

Slide 44 text

4. Multi environment 運⽤在所有的環境!

Slide 45

Slide 45 text

5. CI/CD ⾃動化的唯⼀觸發點!

Slide 46

Slide 46 text

6. Use Repository 分⽀策略、Flow、Workflow

Slide 47

Slide 47 text

7. Agile & Iteration ⼩粒度、多迭代