Photo by Rae Tian on Unsplash Cheng Wei Chen @ twMVC#40
GitOps is IaC done right
先交流一下吧
Photo by Camylla Battani on Unsplash
正在導入 GitOps? 正在使⽤用 K8s?
你認為 K8s 是⼀一種 IaC 嗎?
Cheng Wei Chen 陳 正瑋

DevOps Taiwan Community 志工、GitLab Hero、譯者、作者
http://chengweichen.com
https://devopstw.club
加入 GitLab Hero !
https://about.gitlab.com/community/heroes/
天瓏購書網址

https://bit.ly/3okmvAa
ISBN: 9789864345311
Agenda
‧認識 IaC 與 GitOps
‧開始實踐 GitOps
‧結語
STORY
Photo by Timothy Meinberg on Unsplash
Commit
Code OK!
Ops
Code
Photo by Jonathan Daniels on Unsplash
Dev
Commit
………
Ops
Code
Photo by Jonathan Daniels on Unsplash
Dev
Deploy
炸
炸炸
Commit
啊,抱歉,我忘了了說 Application
有⼀一個新的 Config ~
Ops
Code
Photo by Michelle Tresemer on Unsplash
Dev
Deploy
炸
炸炸
Commit
Ops
Code
Photo by Jonathan Daniels on Unsplash
Dev
Code OK !
Application Config OK !
Commit
Ops
Code
Photo by Jonathan Daniels on Unsplash
Dev
…………這次不是我的問題喔~
Deploy
炸
炸炸
AgainAgainAgain
Commit
Ops
Code
Photo by Thomas Bormans on Unsplash
Ops
啊,我昨天有⼿手動改了了⼀一個
Service 的 Config,該不會
是我的錯吧?
Dev
Deploy
炸
炸炸
AgainAgainAgain
Commit
Ops
Code
Photo by Jonathan Daniels and Thomas Bormans on Unsplash
Dev
Code OK !
Application Config OK !
Ops
Service Config OK!
Commit
Ops
Code
Dev
…...這次不是我們問題喔~
Ops
炸
炸
AgainAgainAgain
AgaiAgaAga
炸
炸炸炸
炸炸
炸
炸炸
炸
炸炸
炸
炸炸
炸
炸炸
炸
炸炸
炸
炸
炸炸
炸
炸炸
炸Deploy
Photo by Jonathan Daniels and Thomas Bormans on Unsplash
Commit
Ops
Code
Infra
炸
炸
AgainAgainAgain
AgaiAgaAga
炸
炸炸炸
炸炸
炸
炸炸
炸
炸炸
炸
炸炸
炸
炸炸
炸
炸炸
炸
炸
炸炸
炸
炸炸
炸Deploy
Dev
Photo by maskedemann on Unsplash
我包,Infra 有⼩小微調,
我是不是沒有通知你?
Dev
Ops
Infra
Photo by Jonathan Daniels, Thomas Bormans and maskedemann on Unsplash
炸
炸
炸
Photo by Fancycrave on Unsplash
認識 IaC 與 GitOps
Provision
Code
⼀一條龍
⼯工程師
Configuration
DeployArtifacts
Production
Environment
Code DeployCI / CD
Automation
Configuration
⼀一條龍
⼯工程團隊
Provision
Production
Environment
Code DeployCI / CD
⼀一條龍
⼯工程團隊
Configuration
Ops / Infra
團隊
Provision
Production
Environment
Automation
你需要
Infrastructure as Code
(IaC)
Automation
Server
Production
Environment
Network Storage
Measurable
Reduced risks
Consistency
Version control
Testing
Immutable
IaC
Practices
Benefits
Collaboration
Automation
Server
Production
Environment
Network Storage
Measurable
Reduced risks
Consistency
IaC
Practices
Benefits
Version control
Testing
Immutable
Collaboration
⼈人⽣生總是有個
But…
Server
Production
Environment
Network Storage
IaC
Server
Production
Environment
Network Storage
IaC
Cloud Service
Config files
Container
Pipeline
IaC
也許你可以試試
GitOps?
圖片來來源 https://youtu.be/Usb9iUphT6Y
圖片來來源

https://argoproj.github.io/argo-cd/
圖片來來源 https://gitlab.com/gitops-demo/readme
GitOps = IaC + MRs + CI/CD
GitLab 說的~
GitOps = IaC + MRs + CI/CD
Infrastructure as Code
Infrastructure Configuration Dependency
GitOps = IaC + MRs + CI/CD
Continuous Integration
Continuous Delivery
And Automation
GitOps = IaC + MRs + CI/CD
Merge Requests
GitOps = IaC + MRs + CI/CD
DevOps
新 Issue
Coding
Commit CI/CD Pipeline
建立 Feature branch
測試驗收
Feature branch
Master branch
Prod Pipeline
新 Issue
Merge
Merge
Monitor
Production branch
Feedback
Code Review
CI/CD Pipeline
Commit
檢查 .gitlab-ci.yml
GitLab
Server
產⽣生 CI/CD Pipeline
GitLab
Runner
執行 Job
CI Job
回傳 Logs
顯⽰示於 Pipeline
Terraform Ansible
Cloud
Vault Repository
Cloud
Cloud
App
Infra
GitLab
Runner
1. Application 有更更新嗎?
2. Infrastructure 有更更新嗎?
3.有!執⾏行行異異動!
Worker
Build Test Release
Validate Plan
Validate Plan Approve
圖片來來源 https://gitlab.com/gitops-demo/readme
Photo by Fancycrave on Unsplash
如何開始實踐 GitOps
1. IaC
2. Automation
3. Code Review & Approve
4. Multi environment
5. CI/CD
6. Use Repository
7. Agile & Iteration
DevOps
1. IaC
讓⼀一切都成為 Code
2. Automation
盡可能⾃自動化
如果不成,就紀錄它!
3. Code Review & Approve
審查、複閱、檢查、稽核
4. Multi environment
運⽤用在所有的環境!
5. CI/CD
⾃自動化的唯⼀一觸發點!
6. Use Repository
分⽀支策略略、Flow、Workflow
7. Agile & Iteration
⼩小粒度、多迭代
0. reborn ?
打掉重練
直接改換 K8s ⽣生態系
Photo by Timothy Meinberg on Unsplash
Photo by Fancycrave on Unsplash
結語
IaC, but !
GitOps = IaC + MRs + CI/CD
GitOps is IaC done right !
DevOps, then GitOps !
GitOps is not for everyone !
(with K8S)
GitOps is not for everyone !
(with K8S)
but, IaC.
工商服務
https://devopstw.club
加入 GitLab Hero !
https://about.gitlab.com/community/heroes/
天瓏購書網址

https://bit.ly/3okmvAa
ISBN: 9789864345311

GitOps is IaC done right