$30 off During Our Annual Pro Sale. View Details »

Lab: GitOps with GitLab and K8s

Lab: GitOps with GitLab and K8s

(簡報備存,Lab: GitOps with GitLab and K8s @ iThome Cloud Edge Summit 2022 | 2022/07/26)

GitLab 自 2022 年 5 月進入 15 版之後,原廠最新的 Slogan 為 The One DevOps Platform,意指除了過去大家熟知的 Git、CI/CD 功能之外,GitLab 已經是一個完整將 DevOps 核心概念融入其中的 DevOps 平台。

在這場 90 分鐘的 Lab,講師將帶領各位學員快速的體驗在 GitLab 上實作一個簡單的 GitOps;原來 GitOps 並非是遙不可及的未來,而是一個你我都該了解的 DevOps / IaC 當前趨勢。

課程目標
• 認識 IaC 與 DevOps 的熱門趨勢 - GitOps
• 快速以 GitLab 實作一個簡單的 GitOps,體驗何為 GitOps 

Cheng-Wei Chen

January 21, 2023
Tweet

More Decks by Cheng-Wei Chen

Other Decks in Technology

Transcript

  1. View Slide

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


    and K8s

    View Slide

  3. Cheng Wei Chen 陳 正瑋


    Athemaster 炬識科技 / Technology Consultant

    《Effective DevOps 中⽂版》譯者、GitLab Hero
    http://chengweichen.com

    View Slide

  4. Agenda
    ‧GitOps 簡介


    ‧解說 Lab 的案例架構


    ‧講師案例示範及學員實作


    ‧結語

    View Slide

  5. STORY

    View Slide

  6. Commit
    Code OK!
    Dev
    Ops
    Deploy
    Code



    View Slide

  7. Commit
    Code OK!
    Dev
    Ops
    Deploy
    Code



    啊~我忘了說有⼀個新的 Con
    fi

    View Slide

  8. Commit
    Code OK Again !
    Dev
    Ops
    Code
    Deploy



    Again
    Again
    Again

    View Slide

  9. Commit
    Code OK Again !
    Dev
    Ops
    Code
    Deploy



    Again
    Again
    Again
    Ops
    啊!我昨天有⼿動改了
    ⼀個 Con
    fi

    View Slide

  10. Commit
    Code OK Again x2
    Dev
    Ops
    Code
    Deploy



    Again
    Again
    Again
    Agai
    Aga
    Aga






























    View Slide

  11. Commit
    Code OK Again x2
    Dev
    Ops
    Code
    Deploy



    Again
    Again
    Again
    Agai
    Aga
    Aga






























    Infra
    Infra 有⼀些調整,忘了
    跟你說~

    View Slide

  12. Provision
    Code Deploy
    Artifacts Production
    ⼀條龍


    ⼯程師
    Configuration

    View Slide

  13. Provision
    Code Deploy
    CI / CD Production
    ⼀條龍


    ⼯程團隊
    Configuration
    Automation

    View Slide

  14. Code Deploy
    CI / CD Production
    ⼀條龍


    ⼯程團隊
    Configuration
    Automation
    Ops / Infra


    團隊
    Provision

    View Slide

  15. Photo by Fancycrave on Unsplash
    GitOps 簡介

    View Slide

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

    View Slide

  17. GitOps = IaC + MRs + CI/CD
    Continuous Integration
    Continuous Delivery


    And Automation

    View Slide

  18. GitOps = IaC + MRs + CI/CD
    Merge Requests
    Change mechanism


    Code Review / Approvals

    View Slide

  19. 新 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  29. Photo by Fancycrave on Unsplash
    實作練習

    View Slide

  30. DEMO

    View Slide

  31. Photo by Fancycrave on Unsplash
    結語

    View Slide

  32. Tools
    VCS


    CI


    CD


    Container Registry


    CM


    IaC


    Container orchestration
    14.x 15.x

    View Slide

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

    View Slide

  34. GitOps = IaC + MRs + CI/CD
    DevOps

    View Slide

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

    View Slide

  36. DevOps, then GitOps !

    View Slide

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

    View Slide

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

    View Slide

  39. 1. IaC


    2. Automation


    3. Code Review & Approve


    4. Multi environment


    5. CI/CD


    6. Use Repository


    7. Agile & Iteration

    View Slide

  40. 1. IaC


    2. Automation


    3. Code Review & Approve


    4. Multi environment


    5. CI/CD


    6. Use Repository


    7. Agile & Iteration
    DevOps

    View Slide

  41. 1. IaC
    讓⼀切都成為 Code

    View Slide

  42. 2. Automation
    盡可能⾃動化


    如果不成,就紀錄它!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide