Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git 和 DevOps - 在混亂的流星群開發流程中找到小確幸

高見龍
November 11, 2023

Git 和 DevOps - 在混亂的流星群開發流程中找到小確幸

高見龍

November 11, 2023
Tweet

More Decks by 高見龍

Other Decks in Programming

Transcript

  1. 五倍學院
    Git & DevOps
    在混亂的流星群開發流程中找到小確幸

    View full-size slide

  2. 五倍學院
    Git & DevOps
    在混亂的流星群開發流程中找到小確幸

    View full-size slide

  3. 五倍學院
    https://5xcamp.us/mopcon2023

    View full-size slide

  4. 五倍學院
    科普:新手以上,中階未滿

    View full-size slide

  5. 五倍學院
    DevOps 需要的技能 + Live Demo

    View full-size slide

  6. 五倍學院
    愛玩、愛現,喜歡冷門的玩具
    網站開發者、講師、作家
    技術推廣、企業訓練、技術諮詢
    部落格:kaochenlong.com
    高見龍
    @eddiekao

    View full-size slide

  7. 五倍學院
    第32刷 發售中 發售中
    發售中

    View full-size slide

  8. 五倍學院
    高見龍
    高見龍

    View full-size slide

  9. 五倍學院
    市場調查

    View full-size slide

  10. 五倍學院
    網站有寫測試嗎?
    市場調查

    View full-size slide

  11. 五倍學院
    有寫測試嗎?
    •有!
    •光程式都來不及寫了,沒空寫測試
    •不知道怎麼寫測試
    •沒有,但我們有專門的 QC 人員會測
    市場調查

    View full-size slide

  12. 五倍學院
    網站怎麼部署?
    市場調查

    View full-size slide

  13. 五倍學院
    網站如何部署?
    •我不知道,我只是個小前端
    •FTP 上傳 & 重開 Server
    •上傳到 GitHub / GitLab 之後好像就自動上線了
    •用 Docker 容器化部署
    •其它不明覺厲的部署方式
    市場調查

    View full-size slide

  14. 五倍學院
    網站多久部署一次?
    市場調查

    View full-size slide

  15. 五倍學院
    網站多久部署一次?
    •我還是不知道,我就只是個小前端
    •不一定,反正改完就部署
    •固定一星期一次
    •每天一次
    •一天很多次、一個晚上七次
    •部署什麼?我都是直接在 Production 上改 code 的!
    市場調查

    View full-size slide

  16. 五倍學院
    Git & DevOps
    在混亂的流星群開發流程中找到小確幸

    View full-size slide

  17. 五倍學院
    開發者們的流星群

    View full-size slide

  18. 五倍學院
    「陪你去看流星雨 ~


    View full-size slide

  19. 五倍學院
    隕石開發の術
    メテオフォール



    View full-size slide

  20. 五倍學院
    在隕石面前,任何開發流程也不堪一擊...

    View full-size slide

  21. 五倍學院

    View full-size slide

  22. 五倍學院
    Git = 流星群中的指南明燈

    View full-size slide

  23. 五倍學院
    有在使用版控系統嗎?
    市場調查

    View full-size slide

  24. 五倍學院
    有在用版控系統嗎?
    •沒有
    •有,使用 CVS / SVN
    •有,使用 Git
    •有,使用 COPY + PASTE 大法
    市場調查

    View full-size slide

  25. 五倍學院
    分支策略

    View full-size slide

  26. 五倍學院
    分支策略
    • 單一分支(master / main)
    • Git Flow
    • main / develop / feature / release / hotfix
    • GitHub Flow
    • main / feature / PR
    • ...更多

    View full-size slide

  27. 五倍學院
    「透過 Git 的分支來減少專案衝突?」

    View full-size slide

  28. 五倍學院
    有使用任何 Flow 嗎?
    市場調查

    View full-size slide

  29. 五倍學院
    有使用任何 Flow 嗎?
    •沒有,那是什麼?
    •有,使用傳統的 Git Flow
    •有,使用 GitHub / GitLab Flow
    •有,使用單位自己調整過的 Flow
    市場調查

    View full-size slide

  30. 五倍學院
    DevOps = 流星群的整合之道

    View full-size slide

  31. 五倍學院
    手動、自動、半自動部署

    View full-size slide

  32. 五倍學院
    CI/CD

    View full-size slide

  33. 五倍學院
    從開發到上線
    CD = Continuous Deployment
    CD = Continuous Delivery
    CI = Continuous Integration



      





    dev

    staging

    production




     





     

    View full-size slide

  34. 五倍學院
    持續整合
    CI = Continuous Integration

    View full-size slide

  35. 五倍學院
    程式建置、執行測試

    View full-size slide

  36. 五倍學院
    持續整合
    • 降低人為疏失
    • 減少繁瑣且重覆的步驟
    • 增加系統一致性
    • 減少團隊開發負擔

    View full-size slide

  37. 五倍學院
    持續交付
    CD = Continuous Delivery

    View full-size slide

  38. 五倍學院
    持續部署
    CD = Continuous Deployment

    View full-size slide

  39. 五倍學院
    所需技能
    •Git / PR / MR
    •撰寫測試
    •常用 CLI 指令
    •CI:Jenkins / GitHub Actions / GitLab CI
    •Docker
    •Dockerfile, docker-compose.yml, 容器化

    View full-size slide

  40. 五倍學院
    https:
    //
    5xcamp.us/ci-video

    View full-size slide

  41. 五倍學院
    Everything as Code
    萬物皆是碼

    View full-size slide

  42. 五倍學院
    Everything as Code
    infrastructure, network, configuration, security...

    View full-size slide

  43. 五倍學院
    IaC
    Infrastructure as Code

    View full-size slide

  44. 五倍學院
    有什麼好處?

    View full-size slide

  45. 五倍學院
    研討會

    View full-size slide

  46. 五倍學院
    「辦 1 個 conf 要多久?」

    View full-size slide

  47. 五倍學院
    「辦 10 個 conf 要多久?」

    View full-size slide

  48. 五倍學院
    架構可加入版控、可以 code review

    View full-size slide

  49. 五倍學院
    CaC
    Conference as Code

    View full-size slide

  50. 五倍學院
    DevOps

    View full-size slide

  51. 五倍學院
    GitOps
    2017 年

    View full-size slide

  52. 五倍學院
    舊酒新裝

    View full-size slide

  53. 五倍學院
    GitOps = IaC + Git + CI/CD

    View full-size slide

  54. 五倍學院
    SSOT
    Single Source of Truth

    View full-size slide

  55. 五倍學院
    「明天段考要考哪些章節?」

    View full-size slide

  56. 五倍學院
    共筆

    View full-size slide

  57. 五倍學院
    Git Repo = SSOT

    View full-size slide

  58. 五倍學院
    GitOps
    •以 Git Repo 當做 Single Source of Truth
    •開發 → PR/MR → merge → CI/CD

    View full-size slide

  59. 五倍學院
    Live Demo
    portainer + docker

    View full-size slide

  60. 五倍學院
    GitOps vs DevOps

    View full-size slide

  61. 五倍學院
    DevOps = 文化
    GitOps = 方法、手段

    View full-size slide

  62. 五倍學院
    沒有最好的,只有最適合的!

    View full-size slide

  63. 五倍學院
    工商服務
    實體、線上課程、企業內訓
    有時間
    來實體
    沒時間
    買線上

    View full-size slide

  64. 五倍學院

    View full-size slide

  65. 五倍學院
    工商服務
    Node / Python / Django / Rust 課程
    有時間
    來實體
    沒時間
    買線上

    View full-size slide

  66. 五倍學院
    愛玩、愛現,喜歡冷門的玩具
    網站開發者、講師、作家
    技術推廣、企業訓練、技術諮詢
    部落格:kaochenlong.com
    高見龍
    @eddiekao

    View full-size slide