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

Overview

Ref: 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 結果 解法

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 下一步聚焦
  • 加碼: 【獨家披露】台積電30年IT和AI發展史(1996~2020和未來)| iThome

    • 台積電30年IT和AI發展史(1996~2020和未來)

🥇 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. 方法論, 規則, 證照, 產品
    • 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 上進行持續交付

  • Microsoft Azure 台灣微軟 客戶成功事業群 雲端解決方案架構師
  • DevOpsDayLab - 透過 GitHub Action 在 Azure 上進行持續交付
  • devopsdays-2022-lab-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
  • 體驗 Azure Devops
    • 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: 人工批准可以幫助建立人們對自動化發行的信心
  • Q&A

Backups

延伸閱讀

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
    • 基努李維 雅量