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

以開發者資料驅動的 CI/CD 優化策略

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

以開發者資料驅動的 CI/CD 優化策略

DevOpsDays Taipei 2024

Avatar for MingLun Wu

MingLun Wu

July 11, 2024

Other Decks in Technology

Transcript

  1. 吳明倫 (Allen Wu) • 玉山銀行 智能金融處 副主任工程師 • DevOps Engineer

    • Former Data Scientist • Blog : Byte and Ink 演講經歷 • DevOpsDays Taipei 2023 以產品思維驅動的 DevOps 策略:金融業 AI 團隊的實踐之旅
  2. CI/CD 是加速優化迭代的關鍵 Act Check Plan Do 目標設定 需求分析 開發與測試 持續整合

    自動部署 監控與回饋 數據分析 回顧及檢討 改善措施 調整策略
  3. MLaaS MLaaS (Machine Learning as a Service) Data Scientist MLaaS

    微服務 模型監控 服務監控 AI 模型 行銷推薦 信用卡盜刷偵測 警示帳戶偵測 票據影像辨識 … Centralized CI/CD
  4. Centralized CI/CD Strategy Blueprint CI/CD Setting CI/CD Setting CI/CD Setting

    Reference Data Scientist Teams DevOps Team 將運行邏輯抽離 統一管理
  5. Simplify the Standardisation and Consistency Efforts Blueprint CI/CD Setting CI/CD

    Setting CI/CD Setting Reference Data Scientist Teams DevOps Team 1.一致的安全措施及規範 2.重用性高 3.易於自動化
  6. Flaky Test v1.2.3 v1.2.3 v1.2.3 V V X V X

    - V V V 09:48 13:42 11:15 But why ?
  7. DORA ? Deployment Frequency The number of times per day

    that a release is deployed into production. Lead Time For Change Total time between the initiation of a feature request to the delivery of that feature to a customer. Mean Time to Recovery (MTTR) Average time it takes the team to restore service when a failure/outage occurs in production. Change Failure Rate Percentage of changes that resulted in degraded services, like the service impairment or outage, and needed to be fixed.
  8. 橫跨 CI/CD 各階段的原始資料 Plan Develop Testing Deploy Board Ticket Commit

    Pull Request Comment Pipeline Status Pipeline Duration Log
  9. Supervisors 04 資料分析 長期的生產力和部署趨勢 了解組織整體的發展與變化 歷史趨勢分析 02 團隊生產力 每個團隊的程式碼提交頻率和數量 04

    CI/CD Pipeline 的部署次數和成功率 評估組織的發佈效率和穩定性 組織層級的 CI/CD 狀態 01 各團隊和人員的工作分佈狀況 了解資源分配是否合理 工作負載分布 03 目標:提升組織效率
  10. DevOps Team 04 資料分析 識別並解決潛在的技術問題 各階段的成功 / 失敗率 Error Log

    從 Log 中分析開發者的具體痛點 取得量化指標 衡量 CI/CD as a Service 的狀態 掌握 Pipeline 狀態 優化 Pipeline 運行時間 提高交付效率 各階段的運行時間 目標:辨別優化方向 02 04 01 03
  11. After : 識別問題層級、進行對應處理 CI/CD Tier 錯誤 優先修正 Blueprint 語法異 常

    10% 60% Application Tier 錯誤 不需處理 單元測試有誤 30% Checkmarx 服務異常 100% Platform Tier 錯誤 優先轉送
  12. 讓數據說話 Before To Do : 我們感覺 CI/CD 的時間很長 : 是喔?我看起來還好呀

    : …@!#$@! 從模糊的質化評估轉為一致的量化指標 After To Do : 我們感覺 CI/CD 的時間很長 : 這個月的時間跟過往差不多, 都在兩分鐘以內耶。 : 好吧! Pipeline 執行時間
  13. 讓數據說話 Before To Do : 我們得來想想導入工具後 該如何量化效益? (人工比對導入前後的結果 ) 量化開發者的體驗變得更加容易

    After To Do : 我們得來想想導入工具後 該如何量化效益? : 可以協助取得團隊上、下半年 的 Test Coverage 嗎? (從資料庫中撈取報表) Pipeline Log
  14. 讓數據說話 Before To Do : Reviewer 都不核准我的 PR ! :

    CI/CD Pipeline 還是成功了? : 是沒錯啦...算了! 善用每一個階段的資料,尋找潛在的癥結點 After To Do : Reviewer 都不核准我的 PR ! : Response Time 上升了 50 % 有必要關心一下。 (確認 Reviewer 狀況) Pull Reqeust, Comment
  15. Before: 中介層的溝通挑戰 CI/CD Tier Data Scientist DevOps Engineer Infra Hey

    ! We have changed something ! :D WTF!! Error Again!!!
  16. After : 提供改善的「起始點」 CI/CD Tier Data Scientist DevOps Engineer Infra

    「開發團隊使用系統時 出現不尋常的跡象!」 「團隊的開發情境有怪味!」
  17. 解決方案,不一定都是技術解 CI/CD Tier 錯誤 優先修正 Blueprint 語法異 常 10% 60%

    Application Tier 錯誤 不需處理 單元測試有誤 30% Checkmarx 服務異常 100% Platform Tier 錯誤 優先轉送
  18. 總結 Data CI/CD 現況 CI/CD 可觀測性 受眾分群 行動及影響 數據驅動的策 略

    分離難以分析的群體 找出具體的痛點及著力點 實踐過程中 數據帶來的轉變 為什麼需要 CI/CD 可觀測性? 玉山銀行智能金融處 CI/CD 現況的分享 透過 Developer 資料建構 CI/CD 可觀測性 Data
  19. CI/CD 可觀測性 • Why : 對於優化 CI/CD Pipeline 至關重要。 •

    Where : 從 CI/CD Platform 中取得開發者資料。 • How : 以數據驅動的思維,逐步建構可觀測性。 • What : 對於組織的變化及影響。