$30 off During Our Annual Pro Sale. View Details »

My DevOps Tour 2.3

Chu-Siang Lai
December 28, 2019

My DevOps Tour 2.3

# 系統工程師的 DevOps 實踐之道 3/e
 
DevOps 是一個從國外紅到國內的名詞。有的人以為它是一種提高生產力的自動化工具,有一派人馬認為它是基於多種學說的集大成者,更有人說它是一場文化的變革。
 
本次凍仁將藉由系統思考 (Systems Thinking) 這門技藝,來述說自己兩年來的 DevOps 實踐心得。
 
* Blog 文章:https://note.drx.tw/2018/12/devops-practice-of-system-engineer.html
* 活動網址:Agile Tour Taichung 2019 - https://agilecommtw.kktix.cc/events/agiletourtaichung2019
 
#DevOps #AgileTour #AgileTourTaichung #AgileTourTaichung2019 #SystemsThinking

Chu-Siang Lai

December 28, 2019
Tweet

More Decks by Chu-Siang Lai

Other Decks in Technology

Transcript

  1. [ chusiang@AgileTourTaichung ~ ] $ cat .profile

    # Author: 凍仁翔 (Chu-Siang Lai)

    # Email: [email protected]

    # Blog: https://note.drx.tw

    # Date: 2019-12-28
    _____________________________
    < 系統⼯工程師的 DevOps 實踐之道 3/e >
    -----------------------------
    \
    \

    View Slide

  2. Agile Tour Taichung 2019
    2
    09:30 - 10:20 該敏捷的不是專案,是⼈人⽣生 ~ 董⼤大偉
    10:30 - 11:20 槍林林彈雨中的敏捷 伊森李
    11:30 - 12:30 系統⼯工程師的 DevOps 實踐之道 3/e 凍仁翔
    12:30 – 14:00 Lunch & Lighting Talk

    View Slide

  3. 凍仁翔
    3
    • 系統⼯工程師
    • Ansible Taiwan 社群組織者
    • DevOps Taiwan 志⼯工
    • 台灣敏捷協會會員
    @chusiang_lai

    View Slide

  4. 4
    http://wiki.drx.tw/#!presentation.md

    View Slide

  5. 5
    ※ 圖片來來源:https://unsplash.com/photos/FXFz-sW0uwo
    Linux System Engineer

    View Slide

  6. 6
    ※ 圖片來來源:https://unsplash.com/photos/j-MPRQOJfVU
    Recovery work

    View Slide

  7. Amazon - https://goo.gl/visckK
    7
    《鳳凰專案》
    踏入 DevOps 之旅的第⼀一本書
    - http://s.drx.tw/tppb

    View Slide

  8. R1
    新工作
    8
    業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    新需求
    加班時數
    ⼈人為

    失誤率
    ⼿手動

    組態
    協作⼒力力
    Pair

    System

    Admin
    記錄

    變更更
    從過往

    學習
    Ansible
    組態
    預演組態

    變更更成本
    學習架

    構流程
    撰寫 Ansible

    Playbooks
    Zabbix

    監控
    系統掌握度
    便便利利貼

    架構牆
    ⼯工作完成量量
    B4
    加班
    B8
    人工
    R13
    共享
    組態
    B12
    自動化
    B11
    即時
    偵錯
    B17
    遙測
    R18
    可視化
    CLD 3/e

    View Slide

  9. 9
    業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生頻率
    變更更⼯工作

    品質
    新需求
    加班時數
    ⼈人為

    失誤率
    ⼿手動

    組態
    協作⼒力力
    Pair

    System

    Admin
    ]
    記錄

    變更更
    從過往

    學習
    Ansible
    組態
    預演組態

    變更更成本
    ]
    學習架

    構流程
    撰寫 Ansible

    Playbooks
    Zabbix

    監控
    系統掌握度
    便便利利貼

    架構牆
    ⼯工作完成量量
    CLD 2/e

    View Slide

  10. 1. DevOps 是什什麼?
    2. 從系統思考看 DevOps 實踐
    3. 系統基模分析
    4. 回顧
    Outline
    Analysis
    DevOps
    Practice
    Retro

    View Slide

  11. 1. DevOps 是什什麼?
    11
    Analysis
    DevOps Practice Retro

    View Slide

  12. 12
    Infra
    Dev Ops
    ITSM
    狹義的 DevOps 是什什麼?
    ※ 本圖修改⾃自許峰於 DevOpsDays Taipei 2017 的 DevOps in a value stream 分享 - https://youtu.be/qWbcujKw57c?t=9m39s
    DevOps

    View Slide

  13. Agile
    Agile 是什什麼?
    13
    Infra
    Dev Ops
    ITSM
    Invest
    Req
    ※ 本圖修改⾃自許峰於 DevOpsDays Taipei 2017 的 DevOps in a value stream 分享 - https://youtu.be/qWbcujKw57c?t=9m39s
    DevOps

    View Slide

  14. 廣義的 DevOps 是什什麼?
    14
    Infra
    Dev Ops
    ITSM
    Agile
    Req
    Invest
    Use
    Value
    ※ 本圖修改⾃自許峰於 DevOpsDays Taipei 2017 的 DevOps in a value stream 分享 - https://youtu.be/qWbcujKw57c?t=9m39s
    DevOps

    View Slide

  15. 廣義的 DevOps 是什什麼?
    15
    Infra
    Dev Ops
    ITSM
    Agile
    Req
    Invest
    Use
    Value
    DevOps
    ※ 本圖修改⾃自許峰於 DevOpsDays Taipei 2017 的 DevOps in a value stream 分享 - https://youtu.be/qWbcujKw57c?t=9m39s
    DevOps

    View Slide

  16. 16
    ※ Design by Ruddy Lee - http://bit.ly/2RCvICV

    View Slide

  17. 17
    ※ Design by Ruddy Lee - http://bit.ly/2RCvICV

    View Slide

  18. 「系統思考將引導⼀一條
    路路,使⼈人由看片段到整
    體;從對現狀狀做被動反
    應,轉為創造未來來;從迷
    失在複雜的細節中,到掌
    握動態的均衡搭配。」
    – 彼得.聖吉,《第五項修練》
    18
    天瓏網路路書店 - http://bit.ly/351G9WL

    View Slide

  19. – Chu-Siang Lai
    「系統思考是⼀一項⽤用因果關係,推導變量量間的
    關係和結構,進⽽而從整體看⾒見見系統⾏行行為、
    找出槓桿解的⾼高深技藝。」
    19

    View Slide

  20. 20
    系統當機 重新開機
    根治問題
    +
    - -
    -
    LOOPY - http://s.drx.tw/CLD-reboot
    B1
    重開
    R2
    學習
    ⼩小試⾝身⼿手
    1. 正相關:
    2. 負相關:
    3. 時間延遲:
    4. 平衡環路路:Balance
    5. 增強環路路:Reinforcing
    +
    -

    View Slide

  21. 21
    ▲重開機,治百病 - http://s.drx.tw/CLD-reboot

    View Slide

  22. http://bit.ly/2QXbYNC
    22
    四種⼯工作類型
    4 Types of Work in IT

    View Slide

  23. 業務專案
    IT 內部專案
    變更更⼯工作
    計劃外⼯工作
    23

    View Slide

  24. 業務專案
    24
    ※ 圖片來來源:https://unsplash.com/photos/hUV5dE9jh1s

    View Slide

  25. IT 內部專案
    25
    ※ 圖片來來源:https://unsplash.com/photos/r6FbzziRN88

    View Slide

  26. 變更更⼯工作
    26
    ※ 圖片來來源:https://unsplash.com/photos/RLw-UC03Gwc

    View Slide

  27. 計劃外⼯工作
    27
    ※ 圖片來來源:https://unsplash.com/photos/e5s4jQxEExo

    View Slide

  28. R3
    救火
    R2
    失誤
    R1
    新工作
    四種⼯工作類型 → CLD
    28
    業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    +
    變更更⼯工作

    品質
    +
    +
    -
    -
    -
    新需求
    +

    View Slide

  29. 29
    ▲《鳳凰專案》四種⼯工作類型 - http://s.drx.tw/4ToW

    View Slide

  30. 2. 從系統思考看 DevOps 實踐
    30
    Analysis
    DevOps Practice Retro

    View Slide

  31. B4
    加班
    R1
    新工作
    加班!?
    31
    業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    新需求
    加班時數
    治標不治本
    R2
    失誤
    R3
    救火
    R5
    超載

    View Slide

  32. 保護變更更⼯工作
    當變更更⼯工作沒做好
    ,就成了了計劃外⼯工作!
    《The Phoenix Project》
    天瓏網路路書店 - https://goo.gl/bRUHq6
    32

    View Slide

  33. ⾝身為⼀一位系統⼯工程師,

    我想要提升變更更⼯工作品質

    、降低計劃外⼯工作發⽣生率,

    這樣才能建立與企業雙贏

    的⼯工作環境,提早下班!
    33

    View Slide

  34. ⾝身為⼀一位系統⼯工程師,

    我想要提升變更更⼯工作品質

    、降低計劃外⼯工作發⽣生率,

    這樣才能建立與企業雙贏

    的⼯工作環境,提早下班!
    34

    View Slide

  35. Kobo - http://bit.ly/360g23G
    35
    《我要 準時下班!》
    我想提早下班

    View Slide

  36. 提升變更更⼯工作品質
    36
    業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    新需求
    加班時數
    減少變更更範圍
    、降低例例外發⽣生
    R1
    新工作
    B4
    加班
    R5
    超載
    R6
    減少變更範圍
    R7
    降低例外

    View Slide

  37. R9
    人為失誤
    B4
    加班
    37
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    加班時數
    ⼈人為

    失誤率
    ⼿手動

    組態
    協作⼒力力
    ⼯工作完成量量
    瓶頸 1:⼈人為失誤
    B8
    人工
    R3
    救火

    View Slide

  38. 38
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    加班時數
    ⼈人為

    失誤率
    ⼿手動

    組態
    協作⼒力力 記錄

    變更更
    從過往

    學習
    ⼯工作完成量量
    記錄變更更、
    從過往學習
    R3
    救火
    B8
    人工
    B4
    加班
    瓶頸 1:⼈人為失誤
    R10
    Retro
    R9
    人為失誤

    View Slide

  39. 39
    Whiteboard Issue Tracking
    記錄變更更

    View Slide

  40. 40
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    加班時數
    ⼈人為

    失誤率
    ⼿手動

    組態
    協作⼒力力
    Pair

    System

    Admin
    記錄

    變更更
    從過往

    學習
    ⼯工作完成量量
    Pair System
    Administration
    B8
    人工
    B4
    加班
    瓶頸 1:⼈人為失誤
    B11
    即時
    偵錯
    R3
    救火
    R10
    Retro
    R9
    人為失誤

    View Slide

  41. – Chu-Siang Lai
    「⼀一個好的站立會議,可以避免救不完火的⼀一
    天!」
    41
    https://twitter.com/chusiang_lai/status/919977398686294016
    ⼈人為

    失誤率
    Ask on

    Stand-up

    Meeting
    瓶頸 1:⼈人為失誤

    View Slide

  42. B12
    自動化
    42
    IT 內部專案
    ⼯工作量量
    Ansible
    組態
    學習架

    構流程
    撰寫 Ansible

    Playbooks
    瓶頸 2:導入 Ansible ⾃自動化

    View Slide

  43. 43
    Write documents
    ※ 圖片來來源:https://unsplash.com/photos/s9CC2SKySJM

    View Slide

  44. 44
    Pair Programming
    ※ 圖片來來源:https://www.flickr.com/photos/esti/4638056301

    View Slide

  45. 45
    IT 內部專案
    ⼯工作量量
    ⼈人為

    失誤率
    協作⼒力力
    Ansible
    組態
    預演組態

    變更更成本
    學習架

    構流程
    撰寫 Ansible

    Playbooks
    B12
    自動化
    R13
    共享
    組態
    瓶頸 2:導入 Ansible ⾃自動化

    View Slide

  46. 46
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    ⼈人為

    失誤率
    ⼿手動

    組態
    協作⼒力力
    Pair

    System

    Admin
    記錄

    變更更
    從過往

    學習
    ⼯工作完成量量
    導入 Ansible ⾃自動化前
    B11
    即時
    偵錯
    B8
    人工
    R3
    救火
    R9
    人為失誤

    View Slide

  47. B14
    降低人為失誤
    47
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    ⼈人為

    失誤率
    協作⼒力力
    Pair

    System

    Admin
    記錄

    變更更
    從過往

    學習
    Ansible
    組態
    預演組態

    變更更成本
    學習架

    構流程
    撰寫 Ansible

    Playbooks
    ⼯工作完成量量
    導入 Ansible ⾃自動化後
    B11
    即時
    偵錯
    B12
    自動化
    R13
    共享
    組態
    B15
    降低預演成本
    B16
    降低例外
    組態管理理
    欲速則不達

    View Slide

  48. 48
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    Zabbix

    監控
    系統掌握度
    瓶頸 3:降低計劃外⼯工作
    B17
    遙測

    View Slide

  49. 49
    Zabbix 監控

    View Slide

  50. _______________________
    < 簡單易易⽤用的 Zabbix 監控服務 >
    -----------------------
    \
    \
    [ chusiang@DevOpsTaiwan ~ ]
    $ cat .profile
    # Author: 凍仁翔 / [email protected]
    # Blog: https://note.drx.tw
    # Modified: 2018-05-26 14:00
    .::!!!!!!!:.
    .!!!!!:. .:!!!!!!!!!!!!
    ~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
    :$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
    $$$$$##WX!: .$$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
    ^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
    "*$bd$$$$ '*$$$$$$$$$$$o+#"
    """" """""""
    http://s.drx.tw/Zbx01

    View Slide

  51. Monitoring 是什什麼?
    51
    Infra
    Dev Ops
    ITSM
    Agile
    Req
    Invest
    Use
    Value
    ※ 本圖修改⾃自許峰於 DevOpsDays Taipei 2017 的 DevOps in a value stream 分享 - https://youtu.be/qWbcujKw57c?t=9m39s

    View Slide

  52. 52
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    Zabbix

    監控
    系統掌握度
    便便利利貼

    架構牆
    瓶頸 3:降低計劃外⼯工作
    B17
    遙測
    R18
    可視化

    View Slide

  53. R1
    新工作
    53
    業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    新需求
    加班時數
    ⼈人為

    失誤率
    ⼿手動

    組態
    協作⼒力力
    Pair

    System

    Admin
    記錄

    變更更
    從過往

    學習
    Ansible
    組態
    預演組態

    變更更成本
    學習架

    構流程
    撰寫 Ansible

    Playbooks
    Zabbix

    監控
    系統掌握度
    便便利利貼

    架構牆
    ⼯工作完成量量
    B4
    加班
    B8
    人工
    R13
    共享
    組態
    B12
    自動化
    B11
    即時
    偵錯
    B17
    遙測
    R18
    可視化
    Practice

    View Slide

  54. 3. 系統基模分析
    54
    Analysis
    DevOps Practice Retro
    捨本逐末、飲鴆⽌止渴、成長上限

    View Slide

  55. 「將注意⼒力力集中在根本解。但如果問題急迫
    ,由於根本解的效果受時間滯延影響,在進⾏行行
    根本解的過程中,可暫時使⽤用症狀狀解
    來來換取時間。」
    55
    捨本逐末
    Ansible 組態
    ⼿手動組態

    View Slide

  56. 業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    Ansible

    組態
    新需求
    ⼿手動

    組態
    捨本逐末
    R1
    新工作
    B8
    人工
    協作⼒力力
    56
    B12
    自動化
    R19
    協作力下降

    View Slide

  57. 「眼光凝聚在長期焦點。如果可能的話,完全摒
    除那種短期對策。除非短期對策只是⽤用來來換取
    時間,以尋求更更妥善的長期解決⽅方案。」
    57
    飲鴆⽌止渴
    Ansible 組態
    ⼿手動組態、加班

    View Slide

  58. 業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    計畫外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    新需求
    ⼿手動

    組態
    預演

    變更更成本
    飲鴆⽌止渴 3
    R1
    新工作
    B8
    人工
    R20
    害怕變更
    Ansible

    組態
    58

    View Slide

  59. 業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    ⼯工作完成量量 變更更⼯工作

    品質
    新需求
    ⼿手動

    組態
    ⼈人為

    失誤率
    飲鴆⽌止渴 2
    R1
    新工作
    B2
    人工
    R21
    重蹈覆徹
    從過往

    學習
    59

    View Slide

  60. 業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    計畫外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    新需求
    加班時數
    ⼈人為

    失誤率
    飲鴆⽌止渴 1
    R1
    新工作
    B4
    加班
    R5
    超載
    60

    View Slide

  61. 「不要去推動『增強 -- 成長 -- 環路路』
    ,應該要除去 (或減弱) 限制的來來源。」
    61
    成長上限
    Ansible 組態、協作⼒力力
    ⼿手動組態、加班
    、⼯工作完成量量

    View Slide

  62. 業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    Ansible

    組態
    新需求
    成長上限
    R1
    新工作
    協作⼒力力
    62
    B12
    自動化
    R13
    共享組態
    ⼿手動組態
    加班時數
    ⼯工作完成量量

    View Slide

  63. 4. 回顧
    63
    Analysis
    DevOps Practice Retro

    View Slide

  64. DevOps 價值流
    64
    Infra
    Dev Ops
    ITSM
    Agile
    Req
    Invest
    Use
    Value
    DevOps
    ※ 本圖取⾃自許峰於 DevOpsDays Taipei 2017 分享的 DevOps in a value stream - https://youtu.be/qWbcujKw57c?t=9m39s
    DevOps

    View Slide

  65. R1
    新工作
    65
    業務專案
    待辦量量
    IT 內部專案
    ⼯工作量量
    計劃外⼯工作
    發⽣生率
    變更更⼯工作

    品質
    新需求
    加班時數
    ⼈人為

    失誤率
    ⼿手動

    組態
    協作⼒力力
    Pair

    System

    Admin
    記錄

    變更更
    從過往

    學習
    Ansible
    組態
    預演組態

    變更更成本
    學習架

    構流程
    撰寫 Ansible

    Playbooks
    Zabbix

    監控
    系統掌握度
    便便利利貼

    架構牆
    ⼯工作完成量量
    B4
    加班
    B8
    人工
    R13
    共享
    組態
    B12
    自動化
    B11
    即時
    偵錯
    B17
    遙測
    R18
    可視化
    Practice

    View Slide

  66. 系統基模
    捨本逐末、飲鴆⽌止渴、成長上限
    天瓏網路路書店 - http://bit.ly/351G9WL
    66

    View Slide

  67. 67
    Q & A

    View Slide

  68. https://www.facebook.com/groups/agile.kaohsiung/
    https://www.facebook.com/AgileTourHsinchu/
    https://www.facebook.com/groups/AgileNeihu/
    68
    http:/
    /fb.me/AgileCommunity.tw

    View Slide

  69. https://t.me/devopstw
    https://www.facebook.com/groups/DevOpsTaiwan/
    https://devopstw.club/
    DevOps Taiwan
    69

    View Slide

  70. Ansible Taiwan
    https://t.me/ansible_tw
    https://github.com/ansible-tw
    http://ansible.tw
    70

    View Slide

  71. 71
    買禮物?
    → http://萍⽔水相逢.tw

    View Slide

  72. -` `-/+oooo+/-`
    /+. `/shhs+/:--:/+shhs/`
    .hhNs:` `:sds-
    `smohh:` `:/+-:/-. `+ms`
    .dh. /md+`yMMdNMMmdso:` .hd.
    `dh` `oNmMMMMMMMNMMNNh: `hd`
    +M. -NMMMMMMMMMMNmmdo` .M+
    dd .smMMMMMMMMMMMMMNNy dd
    dm /mMmMMMMMMMMMMMMMNdy` dd
    oM- `sMMMMMMMMMMMMMMMMMMMM:.Mo
    `md` -mMMMmhyo:+MMMMMMMMMMMM+hm`
    -md:-dNh/` :mMMMMMMMMMMMMNm-
    .yNh+/.`.-+dMMMMMMMMMMMMMMy.
    :hMNNNNNMMMMMMMMMMMMMMh:
    .+hNMMMMMMMMMMMMNh+.
    `./+ssyyss+/.`
    END
    Taichung 2019

    View Slide