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.
EVEN if you tell me 1+1=5, YOU'RE absolutely correct, ENJOY
Challenges 現況 挑戰
- 需求變動越來越快, 如何快速滿足需求, 並多方嘗試各種解決方案, 觀察回饋?
Objectives 目標 效益
- Project Management: 透過參考業界經驗, 建立專案管理方法, 使專案的實作與推廣過程, 可以更敏捷
- Delivery Speed & Quality: 提升交付速度, 縮短交付週期
KRs 結果 解法
- 瞭解實戰推動手法 + 懶人包
- 沒有懶人包! 都需要因應各種場景而定
- 「專案開始之初,首重看見全貌」– Ruddy Lee 91 敏捷教練
- 瞭解為何 DevOps 重要
- 瞭解如何在企業裡導入 DevOps, 交付價值, 彈性拿捏
本文 Mindmap (DevOpsDays Taipei 2022 - 企業 IT 數位轉型投資成長 + 持續交付高品質可用產品)
Executive Summary
1. CIO 大調查 產業比較
- IT 產業投資 DevOps 趨勢提升, 持續擴編菁英人才
- 現況菁英比例僅 4.2%
- 持續數位轉型, 主管帶頭學習型組織
2. TSMC DevOps SRE
- 3 主軸 = Smart Manfucaturing + Digital Business + Infrastructure + Agile Summit 台達電 全面虛擬化 & nVidia 製造工廠宇宙
- 人才佈局 持續擴編
- 持續全面文化轉變 推廣 (TSMC 主管週末長期學習)
- 差距多遠 / 落後多久 / 如何對齊追上/超越
3. 高品質產品敏捷持續交付
- Agile + DevOps + SRE, 人 流程 技術
- Business 目標 > 流程工具. 80% 20% 專注於架構與自動化
- Top down + Bottom up. 人才 教育訓練 持續學習
- 自動化測試, 發行管理, 專案全貌
- Start small & critical
建議 Action / 需要協助的 3 大資源 Resource
- Team Squad 設立專職團隊 推廣實行
- Education Training 提高預算 - 人才招募養成 + 工具採用訓練
- Culture (Committee) Goal 文化 數位轉型
- 現況分析 Situation Analysis: 業界, MDP, MTK
- Roadmap
- Achivements
- Culture + TDD + DevSecOps
- API First + Smart Design
- ODD + OpenSLO
Summary
Event Information
- Topic: DevOpsDays Taipei 2022
- Date: 2022-09-15 (Thu.), 2022-09-16 (Fri.)
- Location: 臺北文創大樓 6F (松菸)
- Agenda: https://agile.ithome.com.tw/2022/agenda
- 導入經驗與心得: 過來人真真切切的導入經驗與心得分享 ,別人走過的冤枉路,不要再走
- 實戰技巧: 實際運用於專案或任務中,依任務需求隨時調整迭代,有效完成任務
- DevOps 的趨勢與未來: DevOps成為日常之後呢?看看領域先行者的實務分享與建議
- Price: 早鳥: NT$3,600
- 共筆入口
- Description
DevOps 持續整合與交付部署自動化
DevOpsDays Taipei 是由臺灣在地技術社群發起,結合社群、企業共同舉辦之年度 DevOps 盛會。DevOpsDays 由 DevOps 之父 Patrick Debois 發源自比利時,經過全球社群的共同響應,如今在全球,每年皆有多個城市舉辦以城市掛名的 DevOpsDays。
根據 iThome 的報導,不論是國內外的知名企業例如台積電、金士頓、趨勢科技、國泰金控等皆早已擁抱 DevOps,引領企業持續改善、邁向新一波的 IT 數位轉型。DevOps 作為同時蘊含技術與文化轉型雙主軸的 IT 熱門關鍵字,其影響力已不僅是 IT 圈內人人皆知,更擴展至企業組織的各個層面。
Day 1 場次精選心得
- 09:50 - 10:50 臺灣企業 DevOps 能力大公開 - 王宏仁 │ iThome 副總編輯
- 11:00 - 12:00 多雲整合企業應用平台 DevOps SRE 落地實踐 - 胡君怡 │ 台積電 企業應用平台部 部門經理
- 13:30 - 14:10 ABC 會議室 DevOps的高階工程技術實踐 - 董大偉(David Tung)
- 14:25 - 14:50 DE 會議室 在你的DevOps中加入一點Security — GitLab CI/CD with Snyk
- 15:00 - 15:25 DE 會議室 Cloud Native 資安,避免別人踩過的坑
- 15:40 - 16:20 ABC 會議室 From DevOps To DataOps——Data as a Product 資料專案教戰守則
- 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
1 | 2 |
---|---|
State of DevOps
🥇 多雲整合企業應用平台 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
- Journey 心路歷程: 如何規劃並落地 內部推動 DevOps SRE 概念? => 綠地 , small win, 團隊數據互相比較
- Culture change 要怎麼做: 如何讓團隊與主管都參與並持續學習
- 時間比例 / 如何讓成員自行組團有機成長 促成交流
- => 要 Manager 帶頭做
- Team 人力配置,與其他團隊的合作模式是如何 Tool chain 工具選擇
- GitHub to Azure for business team, 並行 gitlab for infra team 各有擅場
- DORA 衡量是如何進行 定義 分群 分析 => by products/service 個別統計
- Next 下一步聚焦
🥇 DevOps的高階工程技術實踐
- 董大偉(David Tung)| 光岩資訊 資深技術顧問;微軟技術社群區域總監
- 共筆內容
- 共筆講師版
- 舉凡抽象問題 都可以用日常生活化的例子回答
- 頻繁/持續 呼吸/吃飯
- 持續 = 時時刻刻 (一刻 = 15分鐘
- 都只編輯同一份可運行的 code
- 不隱藏 code
- 時時刻刻整合
- 跟運動一樣
- 不擅長的事情, 一開始做都會痛
- 那怎麼辦? 持續做就不會痛了 = 鍛鍊
🥈 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 怎麼做: 順序很重要
- 定義 Data Scope, 標的
- 分類 (重要度)
- 希望治理到什麼程度
- 方法論, 規則, 證照, 產品
- Q&A - DataOps 推廣至 User 的流程建議
- 蒐集 user 情境
- 可視化 規則 + 足跡明確
- 迭代
可觀測性 (Observability) 的實踐
- 董淳吉 (Marcus Tung) | MAYO 鼎恒數位科技 總監
- 共筆內容
- Unknown-Unknowns
- 挑戰 = 工具分散 + 員工質&量 + 資料整合
- Sufficient number of employees with qualified skills => Recruit + Education
Day 2 場次精選心得
- 09:50 - 10:50 走過 DevOps 風雨的下一步…. 郭家齊(Edward Kuo) │ Microsoft MVP,Microsoft Regional Director
- 11:00 - 12:00 DevOps 潮流下的 API First 開發策略吳剛志(Andrew Wu) │ 91APP 首席架構師
- 13:30 - 15:00 607+608 會議室 Workshop - 絕對不能歪:透過 GitHub Action 在 Azure 上進行持續交付
- 15:20 - 16:50 607+608 會議室 Workshop - 深度體驗 Azure DevOps Services 發行管理機制
走過 DevOps 風雨的下一步
- 郭家齊(Edward Kuo) │ Microsoft MVP,Microsoft Regional Director
- 共筆內容
- Agile 思維文化 + DevOps 團隊流程 + SRE 工程技術
- DB in DevOps 是另一個獨立的故事
- DB 邏輯只剩 CRUD
- Code Scan: SonarCube
- API First
🥇 DevOps 潮流下的 API First 開發策略
- 吳剛志(Andrew Wu) │ 91APP 首席架構師
- 共筆內容
- 講師版簡報 Google Slide
- AWS 的 “API 授權” 備忘錄 (2002 年…)
- Ruddy Lee, 淺談 API First
- 期待: 創造 API 經濟
- 治理策略, 角色, 流程
- Contract First: 抽象化 + Mock
- State Machine: 生命週期 => API Requirement Scenario
- 權限管控 = 車票 vs. 識別證 = 驗證 前端 (適合大量灑出, 外部) vs. 後端 (適合安全考量, 內部)
- 要看到全貌,必要條件是有充分的 “資訊” 與 “知識”。
Workshop - 絕對不能歪:透過 GitHub Action 在 Azure 上進行持續交付
- Microsoft Azure 台灣微軟 客戶成功事業群 雲端解決方案架構師
- DevOpsDayLab - 透過 GitHub Action 在 Azure 上進行持續交付
- devopsdays-2022-lab-github-action-azure
- Template: GitHub Actions: Continuous Delivery with Azure
- Step 1: Trigger a job based on labels
workflow branch: staging-workflow. deploy-staging.yml
- Step 2: Set up an Azure environment
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
Activity 2: Set up Azure resource provision workflow
workflow branch: azure-configuration. spinup-destroy.yml
Activity 3: Edit deploy-staging file. Edit branch:
staging-workflow
Activity 4: Preparing
staging-test
branch
- Step 3: Spin up an environment based on labels
- PAT -> Repo
CR_PAT
- label:
spin up environment
az provider register -n Microsoft.App --wait
az provider register -n Microsoft.OperationalInsights --wait
- PAT -> Repo
- Step 4: Deploy to a staging environment based on labels
- Activity 1: Set up production-deployment-workflow branch
- 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
- 🥈 DevOps
- Testing
- DevSecOps
- SRE
- Workshop - Elastic Observability 實作體驗營
- 13:30 - 14:10 ABC 會議室 為 DevOps 插上商業的翅膀. > DE 會議室 專案實踐自動化測試框架的設計與心路歷程
- 14:25 - 14:50 ABC 會議室 DevOps Journey of Smart Manufacturing in Micron
- 15:20 - 16:00 ABC 會議室 從失敗中吸取教訓的渾沌工程
- 16:15 - 16:40 DE 會議室 Automating Security in IaC Pipelines with Policy as Code - 金融業IaC整合實踐
延伸閱讀
- The Subtle Art of Being A Developer Advocate
- Microsoft - Join our team and make the world better for developers!
- What my typical day looks like as a Developer Advocate?
- Creating content
- Public speaking
- Building tools in the open
- Product feedback
- Shipping products
- Being the Customer Zero
- Constantly learning
- Creating and improving official docs
- Helping others grow
- Business and OKRs
🤝 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
- 天時 Precise Goal & Time 精準的目標與時機
- 2022-09-17: 今年精髓 = 基努李維 1+1=5, 所以我也改了一個雅量XDDDD
- 2022-12-10: 調整 mobile-friendly 格式 (減少列點縮排)