DevOpsDays Taipei 2022 - 企業 IT 數位轉型投資成長 + 持續交付高品質可用產品

Overview

同場加映: Agile Summit 2022 敏捷高峰盛會 - VUCA 時代敏捷導入 + 持續交付價值

  • Why 為什麼要 DevOps
    • 應變快速變動的市場需求, 持續(時時刻刻, 穩定可靠)交付高品質軟體產品
  • How 如何 DevOps
    • 確認目標 + 投資(人才/方案) + 教育文化 + 推廣落地 (Squad Team) + 工程實踐 + 保持敏捷 + 持續學習
  • Common Pitfalls 常見的坑
    • 只顧速度, 不顧品質 = 持續交付垃圾 => 自動化測試 + 發行管理
  • 精選內容 🥇🥈
    • 臺灣企業 DevOps 能力大公開 | iThome 王宏仁 副總編輯
    • 多雲整合企業應用平台 DevOps SRE 落地實踐 | TSMC 胡君怡 部門經理
    • DevOps 潮流下的 API First 開發策略 | 91 App Andrew 首席架構師
    • DevOps的高階工程技術實踐 | David 董大偉 技術顧問
    • Workshop - 深度體驗 Azure DevOps Services 發行管理機制 | Will 保哥 技術總監
    • From DevOps To DataOps——Data as a Product 資料專案教戰守則 | 顏良修 CEO
  • 今年流行的警語
    • 以下分享的內容,可能不適用於你、你的公司或團隊,請小心服用.
    • 以下觀點僅適用於特定場景. 若跟你理解的不同, 你不一定是錯的, 我也不一定是對的. Love & Peace.
基努李維 即使你說1+1=5,你也是對的,不客氣

EVEN if you tell me 1+1=5, YOU'RE absolutely correct, ENJOY

Challenges 現況 挑戰

  • 需求變動越來越快, 如何快速滿足需求, 並多方嘗試各種解決方案, 觀察回饋?

Objectives 目標 效益

  • Project Management: 透過參考業界經驗, 建立專案管理方法, 使專案的實作與推廣過程, 可以更敏捷
  • Delivery Speed & Quality: 提升交付速度, 縮短交付週期

KRs 結果 解法

本文 Mindmap (DevOpsDays Taipei 2022 - 企業 IT 數位轉型投資成長 + 持續交付高品質可用產品)

Executive Summary

1. CIO 大調查 產業比較

  1. IT 產業投資 DevOps 趨勢提升, 持續擴編菁英人才
  2. 現況菁英比例僅 4.2%
  3. 持續數位轉型, 主管帶頭學習型組織

2. TSMC DevOps SRE

  1. 3 主軸 = Smart Manfucaturing + Digital Business + Infrastructure + Agile Summit 台達電 全面虛擬化 & nVidia 製造工廠宇宙
  2. 人才佈局 持續擴編
  3. 持續全面文化轉變 推廣 (TSMC 主管週末長期學習)
  4. 差距多遠 / 落後多久 / 如何對齊追上/超越

3. 高品質產品敏捷持續交付

  1. Agile + DevOps + SRE, 人 流程 技術
  2. Business 目標 > 流程工具. 80% 20% 專注於架構與自動化
  3. Top down + Bottom up. 人才 教育訓練 持續學習
  4. 自動化測試, 發行管理, 專案全貌
  5. Start small & critical

建議 Action / 需要協助的 3 大資源 Resource

  1. Team Squad 設立專職團隊 推廣實行
  2. Education Training 提高預算 - 人才招募養成 + 工具採用訓練
  3. Culture (Committee) Goal 文化 數位轉型
  4. 現況分析 Situation Analysis: 業界, MDP, MTK
  5. Roadmap
    1. Achivements
    2. Culture + TDD + DevSecOps
    3. API First + Smart Design
    4. ODD + OpenSLO

Summary

Event Information

DevOps 持續整合與交付部署自動化

DevOpsDays Taipei 是由臺灣在地技術社群發起,結合社群、企業共同舉辦之年度 DevOps 盛會。DevOpsDays 由 DevOps 之父 Patrick Debois 發源自比利時,經過全球社群的共同響應,如今在全球,每年皆有多個城市舉辦以城市掛名的 DevOpsDays。

根據 iThome 的報導,不論是國內外的知名企業例如台積電、金士頓、趨勢科技、國泰金控等皆早已擁抱 DevOps,引領企業持續改善、邁向新一波的 IT 數位轉型。DevOps 作為同時蘊含技術與文化轉型雙主軸的 IT 熱門關鍵字,其影響力已不僅是 IT 圈內人人皆知,更擴展至企業組織的各個層面。


Day 1 場次精選心得

  1. 09:50 - 10:50 臺灣企業 DevOps 能力大公開 - 王宏仁 │ iThome 副總編輯
  2. 11:00 - 12:00 多雲整合企業應用平台 DevOps SRE 落地實踐 - 胡君怡 │ 台積電 企業應用平台部 部門經理
  3. 13:30 - 14:10 ABC 會議室 DevOps的高階工程技術實踐 - 董大偉(David Tung)
  4. 14:25 - 14:50 DE 會議室 在你的DevOps中加入一點Security — GitLab CI/CD with Snyk
  5. 15:00 - 15:25 DE 會議室 Cloud Native 資安,避免別人踩過的坑
  6. 15:40 - 16:20 ABC 會議室 From DevOps To DataOps——Data as a Product 資料專案教戰守則
  7. 16:35 - 17:00 ABC 會議室 可觀測性(Observability)的實踐

🥇 臺灣企業 DevOps 能力大公開

  • 王宏仁 │ iThome 副總編輯
  • 共筆內容
  • 觀點: 產業 | 投資比率 | 能力
    • 目前投入的錢仍然很少, DevOps 佔 IT 預算不到 5%
    • IT 約佔員工比例 5%, 今年各產業皆大幅擴編
  • iThome 2022 CIO大調查 系列文 + DORA. 台灣菁英團隊 ~= 6%
  • 節錄觀點 Executive Summary
    • 目標, 投資與擴編
      • 因應新常態挑戰,企業IT投資今年2位數大成長
      • 4成企業要擴編IT,年砸5百多萬發展DevOps
    • 能力分析與趨勢動向: 僅4.2%企業是精英, 6大新興技術爆紅
    • 轉型: 各產業IT投資和人力總論 - 三大產業今年IT預算破億,金融與服務業上雲投資大增
  • 此章節以下資料來源及版權均屬於 iThome
12
2022 企業 IT 投資成長率各產業 IT 投資成長率
2022 年因應新常態的 IT 對策 Top 152022 年 CIO 年度 Top 10 目標
2022 年多少企業要擴編 IT各產業 IT 人力佔比
企業 DevOps 投資金額台灣企業關鍵 AP 平均部署頻率
各產業 2022 年 IT 投資規模各產業 2022 年八大重點 IT 投資規模
製造業 CIO 2022 年度目標 Top 10製造業 CIO 2022 今年新常態 IT 對策 Top 10
高科技業 IT 今年因應 ESG 作法 Top 10高科技業 2022 新興科技採用 Top 10

🥇 多雲整合企業應用平台 DevOps SRE 落地實踐

  • 胡君怡 │ 台積電 企業應用平台部 部門經理
  • 共筆內容
  • Fab Runs on Code
  • 重視 DevOps 文化: 這兩天 TSMC 攤位來了快 10 人以上,而且與會者的部分不時會看到穿著 TSMC Hackathon 衣服的人,可見其在 DevOps 上的重視跟投資。
  • 持續擴編人才: IT人數2304人,全球員工人數67475. 今年 2022-08 才剛又成立了三個 SRE team (smart manufacture, digital business, infra team)。光是 digital business 的 SRE 就有 10 人, DevOps Engineer 有 300 人,Smart manufacturing 更是有1000+人之多。

Q&A

  1. Journey 心路歷程: 如何規劃並落地 內部推動 DevOps SRE 概念? => 綠地 , small win, 團隊數據互相比較
  2. Culture change 要怎麼做: 如何讓團隊與主管都參與並持續學習
    • 時間比例 / 如何讓成員自行組團有機成長 促成交流
    • => 要 Manager 帶頭做
  3. Team 人力配置,與其他團隊的合作模式是如何 Tool chain 工具選擇
    • GitHub to Azure for business team, 並行 gitlab for infra team 各有擅場
  4. DORA 衡量是如何進行 定義 分群 分析 => by products/service 個別統計
  5. Next 下一步聚焦

🥇 DevOps的高階工程技術實踐

🥈 From DevOps To DataOps——Data as a Product 資料專案教戰守則

  • 顏良修 (Anna) Athemaster 炬識科技 CEO
  • 共筆內容
  • ATHEMASTER-Giveaways
  • 5 stages + 6 roles + 7 checkpoint 更早發現風險 change management
    • Team > Protocol > Design > Develop > Deliver
    • Data Product Owner, User, Definer, Operator, Developer, Sysadmin
    • Scope, Team, Task division , Schedule, Risk evaluation, Technical cost, Workflow
  • Q&A - Data Quality Control 怎麼做: 順序很重要
    1. 定義 Data Scope, 標的
    2. 分類 (重要度)
    3. 希望治理到什麼程度
    4. 方法論, 規則, 證照, 產品
  • Q&A - DataOps 推廣至 User 的流程建議
    1. 蒐集 user 情境
    2. 可視化 規則 + 足跡明確
    3. 迭代

可觀測性 (Observability) 的實踐

Day 2 場次精選心得

  1. 09:50 - 10:50 走過 DevOps 風雨的下一步…. 郭家齊(Edward Kuo) │ Microsoft MVP,Microsoft Regional Director
  2. 11:00 - 12:00 DevOps 潮流下的 API First 開發策略吳剛志(Andrew Wu) │ 91APP 首席架構師
  3. 13:30 - 15:00 607+608 會議室 Workshop - 絕對不能歪:透過 GitHub Action 在 Azure 上進行持續交付
  4. 15:20 - 16:50 607+608 會議室 Workshop - 深度體驗 Azure DevOps Services 發行管理機制

走過 DevOps 風雨的下一步

🥇 DevOps 潮流下的 API First 開發策略

Workshop - 絕對不能歪:透過 GitHub Action 在 Azure 上進行持續交付

  1. Template: GitHub Actions: Continuous Delivery with Azure
  2. Step 1: Trigger a job based on labels
    • workflow branch: staging-workflow. deploy-staging.yml
  3. Step 2: Set up an Azure environment
    1. Activity 1: Configure GITHUB_TOKEN permissions

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      
      # 1. Generate id/credentials on Azure Cloud Shell
      az account show
      # > id => AZURE_SUBSCRIPTION_ID
      
      # 2. Create service principal
      az ad sp create-for-rbac --name "GitHub-Actions" --role contributor \
                              --scopes /subscriptions/{subscription-id} \
                              --sdk-auth
      # > output => AZURE_CREDENTIALS
      
      # 3. Setup GitHub > Settings > Secrets > Actions: AZURE_SUBSCRIPTION_ID, AZURE_CREDENTIALS
      
    2. Activity 2: Set up Azure resource provision workflow

      • workflow branch: azure-configuration. spinup-destroy.yml
    3. Activity 3: Edit deploy-staging file. Edit branch: staging-workflow

    4. Activity 4: Preparing staging-test branch

  4. Step 3: Spin up an environment based on labels
    1. PAT -> Repo CR_PAT
    2. label: spin up environment
    3. az provider register -n Microsoft.App --wait
    4. az provider register -n Microsoft.OperationalInsights --wait
  5. Step 4: Deploy to a staging environment based on labels
    1. Activity 1: Set up production-deployment-workflow branch
  6. Step 5: Deploy to a production environment based on labels

🥇 Workshop - 深度體驗 Azure DevOps Services 發行管理機制

  • 黃保翕(Will 保哥)
  • 共筆連結
  • Deliver value. 釐清測試目標很重要
  • 🥇 實現持續交付的八大原則
    • The process for releaseing/deploying software repateable and reliable.
    • Automate everything.
      • 對系統增加信心, 而不是為了對人增加信心
      • 人工測試過了, 提升的是對人的信心
      • 自動化測試過了, 提升的是對系統的信心
      • 可信度 vs. 可靠度
      • 持續改善對測試的信心(可信度): 50 -> 60 -> 70 -> 80 分
    • If somethings difficult or painful, do it more often.
    • Keep everything in source control.
    • Done means “released”.
    • Build quality in!
    • Everybody has responsibility for the release process.
    • Improve continuously.
  • Continuous Delivery Practices
    • Automated Builds
    • Build Once
    • Trunk Always Prod Ready
    • Fix Immediately
    • Everything in Source Control
    • Feature Flags
    • Blue/Green Deploy
    • Canary Deployment
  • Release Cadence 部署節奏 / 時間 / 環境切割
  • Artifacts: 發行之前先取得一個穩定的成品. Always 只有一份. 但設定會依據環境而不同 => 需要做 Configuration Management
  • Stages: 部署環境. (舞台) 想成是部署的目標. Dev - QA - Production
    • 長期的? 短期的?
    • 誰會用這個環境?
    • 這個環境的目的是什麼?
      • 每個環境都有一個明確目的必須被事先定義
      • 發行一個新功能
      • 確認問題被修復
    • 會是 fresh install 還是覆蓋當前?
    • 你可以接受 downtime 多久?
    • 誰是這個環境的 owner? 誰可以 apply changes?
  • Pre-/Post-deployment approvals, (Release) Gates (REST API, Azure Policy compliance, Azure Function, Azure Monitor alerts, work items, SonarCloud)
  • 發行策略
  • Release Approvals: 人工批准可以幫助建立人們對自動化發行的信心
  • Build once => configuration management + dependency injection
  • SQL Data Quality Test. Ref: Databease in DevOps | Edward Kuo

Others

延伸閱讀

🤝 Community 社群

你怎麼看?

留下你的想法一起討論吧! 🥳

Murmur

  • 2022-09-15: DevOpsDays Taipei 2022 超精實! 明年也要提早報名啊~~
  • 2022-09-16: 胡思亂想: 導入金三角 (持續 + 改"善") 以後我們會專門做一期專文為大家講解
    • 天時 Precise Goal & Time 精準的目標與時機
      • 時機 & 痛點, user 覺得痛 != 阿嬤覺得你餓
      • => OKR, OGSM
    • 地利 Appropriate Flow & Tool 合適的流程與工具
      • 適用場景很重要, 殺雞牛刀
      • => DevOps, SRE
    • 人和 Good Team & Culture 良好的團隊與文化
      • 學習型組織, 有機成長
      • => Agile
  • 2022-09-17: 今年精髓 = 基努李維 1+1=5, 所以我也改了一個雅量XDDDD
    • 基努李維 雅量
  • 2022-12-10: 調整 mobile-friendly 格式 (減少列點縮排)

See also