Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做

1,131 views

Published on

這是艦長在 MOPCON 2020 之 Unconf 活動的分享。在活動中介紹了 GitLab Auto DevOps,分享原來 Auto DevOps 並不是什麼萬靈丹,而是建構在 GitLab CI 之上的進階功能,在擁抱了 K8s 並搭配 CI/CD Pipeline Template,讓 GitLab CI 不僅是 CI 更是跨足了自動部署與維運的 DevOps 工具。

Published in: Technology

GitLab Auto DevOps 大解析—CI/CD 原來可以這樣做

  1. 1. Cheng Wei Chen @ MOPCON 2020 / UnconfPhoto by insung yoon on Unsplash GitLab Auto DevOps 大解析 — CI/CD 原來可以這樣做
  2. 2. DevOps Taiwan Community https://devopstw.club
  3. 3. 加入 GitLab Hero ! https://about.gitlab.com/community/heroes/
  4. 4. 天瓏資訊圖書預購網址
 https://bit.ly/3okmvAa ISBN: 9789864345311
  5. 5. Unconf 先交流一下吧 Photo by Camylla Battani on Unsplash 有使⽤用 GitLab 嗎?有使⽤用 Auto DevOps 嗎? 有負責經⼿手 CI/CD Pipeline 的相關⼯工作嗎? 有使⽤用 K8s 嗎?應⽤用程式已經容器化了了嗎?
  6. 6. Q: CI/CD 最大的難關? Photo by Marcos Paulo Prado on Unsplash 安全性?權限?串串接各種服務?打通各個環節? 必須處理理各種不同的環境?必須符合 Production 環境所需的檢核條件? 相依性管理理?Artifacts 的⽣生命週期管理理?
  7. 7. Photo by Sweet Ice Cream Photography on Unsplash CI / CD / Automation 軟體開發新顯學 !!! ??? 並不是,CI/CD 是個老東西
  8. 8. 圖片來來源: http://finda.photo/image/11418 工程師 自動化 老闆 省時、省錢、省資源
  9. 9. code build test release deploy operateplan Continuous Integration Continuous Delivery Automation CI/CD/Automation Continuous Deployment CIcommit dev stagingtest testprod deploy environment dev staging prod local Infrastructure as Code 要處理理許多環節、不同專案所需的 Pipeline 不盡相同。
  10. 10. GitLab Auto DevOps Auto
  11. 11. https://docs.gitlab.com/ee/topics/autodevops/#features
  12. 12. GitLab Auto DevOps Auto 沒這麼 Auto 是有條件的
  13. 13. Commit 檢查 .gitlab-ci.yml GitLab Server 產⽣生 CI/CD Pipeline GitLab Runner 1 有適合我執⾏行行的 CI Job 嗎? 有喔!很多 Job 都指名要你 執行 Job CI Job 回傳 CI Logs 顯⽰示於 Pipeline GitLab Runner 2沒有吻合 Tag 的 Job, 那我先休息嘍。
  14. 14. Commit 檢查 Auto DevOps 相關參參數 GitLab Server 產⽣生 CI/CD Pipeline GitLab Runner 1 執行 Job CI Job K8s GitLab 代管⼀一切 提供資源 提供資源
  15. 15. KubernetesGitLab CI Auto DevOps Prometheus + = Template
  16. 16. KubernetesGitLab CI Auto DevOps Prometheus + = Template Container Cloud Native Container Orchestration Monitor Metric Operation Multi Environment
  17. 17. KubernetesGitLab CI Auto DevOps Prometheus + = Template GitLab CI Runner .gitlab-ci.yml 標準化 客製化
  18. 18. Pipeline 需要兼具
 標準化與客製化
  19. 19. 應用程式所需的 environment? Deploy 找出最大公約數,標準化 如何取得 Artifacts? 是否有其他初始化的動作? 如何因應「部署失敗」? 如何連上主機? 需要額外的組態管理? 如何因應「重新部署」? x2 x2 x3 x3x2 x3 x2
  20. 20. 大致標準化,預留客製空間 tasks: - name: download artifacts get_url: artifacts.zip - name: setup env templates: nginx.conf - name: reload nginx services: nginx reload tasks: - name: download scripts get_url: deploy.sh - name: run scripts command: sh deploy.sh
  21. 21. Auto DevOps CI Template
  22. 22. https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/ templates/Auto-DevOps.gitlab-ci.yml Auto DevOps CI Template 的起點
  23. 23. https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/ templates/Jobs/Build.gitlab-ci.yml 可以依序深入其他的 Template 查看內容
  24. 24. https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/lib/ gitlab/ci/templates/Jobs/Deploy.gitlab-ci.yml 可以依序深入其他的 Template 查看內容
  25. 25. https://docs.gitlab.com/ee/topics/autodevops/customize.html Auto DevOps 運⽤用 heroku buildpack 來來⾃自動判斷 Stage: Build 該做哪些事情
  26. 26. https://docs.gitlab.com/ee/topics/autodevops/ customize.html#environment-variables 有許多專⽤用的 Variables,可以⽤用來來設定 Auto DevOps。
  27. 27. 結語
  28. 28. Auto DevOps 是個好東西
  29. 29. Auto DevOps 但想要上手沒那麼容易
  30. 30. 想要善用 Auto DevOps 須具備 Container 與 K8s 的知識
  31. 31. Container 與 Cloud Native (K8s),仍是 重要的未來趨勢,在經手 CI/CD Pipeline 的路上遲早會碰上的。
  32. 32. CI/CD 能夠帶來許多好處
  33. 33. 但CI/CD的坑,比你想像的多 Oooops
  34. 34. CI/CD需要的資源(人力、工時), 也比你想像的多
  35. 35. CI/CD需要的評估關鍵, 也同樣比你想像的多
  36. 36. • 最⼤大的痛點是什什麼? • 什什麼可以⾃自動化?哪些無法⾃自動化? • 是否真的有必要⾃自動化? • CI/CD/⾃自動化發⽣生故障,
 該如何處理理? • 可以持續投入多少資源? 思考並評估
  37. 37. Photo by Sweet Ice Cream Photography on Unsplash 無法被自動化的事情比人們想像中的少!
  38. 38. Photo by Sweet Ice Cream Photography on Unsplash 自動化是一種力量倍增器,但不是萬靈丹!
  39. 39. 工商服務
  40. 40. https://devopstw.club
  41. 41. 加入 GitLab Hero ! https://about.gitlab.com/community/heroes/
  42. 42. 天瓏資訊圖書預購網址
 https://bit.ly/3okmvAa ISBN: 9789864345311
  43. 43. Photo by Clark Tibbs on Unsplash Thank You

×