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

Is it really easy for companies to import Ansible automation

Chu-Siang Lai
October 17, 2019

Is it really easy for companies to import Ansible automation

# 企業導入 Ansible 自動化真的容易嗎 @ DevOpsDays Taipei 2019

Ansible 是個簡單易用的 Infrastructure as Code 組態設定工具,在雲端盛行的現代,許多企業都想藉由導入自動化工具好 DevOps 起來。好工具一個人用是一回事,但一個團隊、一間企業一起用又是另一回事。

本次凍仁將從導入 Ansible 開始,述說兩年來的自動化組態實踐心得。

Chu-Siang Lai

October 17, 2019
Tweet

More Decks by Chu-Siang Lai

Other Decks in Technology

Transcript

  1. ※ 圖片來來源:https://unsplash.com/photos/FyD3OWBuXnY
    企業導入 Ansible ⾃自動化真的容易易嗎
    [ chusiang@DevOpsDaysTaipei ~ ] $ cat .profile

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

    # Email: [email protected]
    # Blog: https://note.drx.tw
    # Date: 2019-10-17

    View full-size slide

  2. 凍仁翔
    2
    • 美商普維軟體⼯工程師
    • Ansible Taiwan 社群組織者
    • DevOps Taiwan 志⼯工
    • 台灣敏捷協會成員
    @chusiang_lai

    View full-size slide

  3. DevOpsDays Taipei 2019
    3
    12:10 – 13:30 Break
    13:30 – 14:10
    LINE SRE Practice from Observability Viewpoint 洪立遠
    如何利利⽤用遙測⾯面板來來改善品質 蘇義傑
    企業導入 Ansible ⾃自動化真的容易易嗎 凍仁翔
    14:10 – 14:20 Break

    View full-size slide

  4. ※ 圖片來來源:https://unsplash.com/photos/FyD3OWBuXnY
    企業導入 Ansible ⾃自動化真的容易易嗎
    [ chusiang@DevOpsDaysTaipei ~ ] $ cat .profile

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

    # Email: [email protected]
    # Blog: https://note.drx.tw
    # Date: 2019-10-17


    但值得

    View full-size slide

  5. Outline
    Ansible
    1. Ansible 是什什麼
    2. 從 1 到 20 的⾃自動化
    3. 得到什什麼技藝
    4. 回顧
    Auto
    Craft
    Retro

    View full-size slide

  6. 6
    Ansible Auto Craft Retro
    6
    1. Ansible 是什什麼

    View full-size slide

  7. 7
    https://www.ansible.com

    View full-size slide

  8. 8
    https://github.com/chusiang/automate-with-ansible

    View full-size slide

  9. 9
    Ansible 取名⾃自
    Answerable,在⼩小說

    《安德的遊戲》中代表著
    虛構的超光速即時通訊裝置。
    » http://bit.ly/33pjmno
    2013 年年的電影海海報 - https://goo.gl/4xftZT

    View full-size slide

  10. 10
    https:/
    /youtu.be/8wwJd7WUtko

    View full-size slide

  11. 指揮官思維
    Commander Thinking
    11

    View full-size slide

  12. 指揮官性格 (ENTJ)
    1. 坦率、果斷、隨時承擔領導職責。
    2. 能迅速看到不合邏輯和低效的產品策略略,透過建立並
    部署綜合系統,解決組織架構問題。
    3. 消息靈通,知識淵博,樂於擴展知識並傳授給他⼈人。
    12
    » ENTJ | 維基百科 - https://zh.wikipedia.org/wiki/ENTJ

    View full-size slide

  13. 13
    開始⽤用 Ansible
    就該像指揮官

    思考整體部署

    View full-size slide

  14. 14
    Ansible Auto Craft Retro
    14
    2. 從 1 到 20 的⾃自動化

    View full-size slide

  15. 15
    新兵報到
    前置作業
    減少

    例例外⼯工作 Infra

    標準化
    設計 Playbooks

    整體架構
    完成 1st

    Playbooks
    串串 Playbooks 和 CI

    打造 CD stage
    招募 2nd

    Ansibler
    重寫 2nd.

    Playbooks
    2019.09
    2017.03
    幫其他團隊

    寫 Playbooks
    加入 Unit Test
    ⽤用 Docker

    重構 Unit Test
    招募 3rd

    Ansibler
    ⾃自動化歷程圖
    已有 CI 和

    Build stage

    View full-size slide

  16. 16
    Customer
    Git server Development
    GitLab CI Build
    Test
    (Docker)
    Deploy
    (Auto.)
    Release

    Modules
    Engineer
    Staging
    Prod. Release SQA
    Now
    Manual
    Manual

    View full-size slide

  17. 17
    新兵報到
    前置作業
    減少

    例例外⼯工作 Infra

    標準化
    2019.09
    2017.03
    1. 學習架構流程
    已有 CI 和

    Build stage

    View full-size slide

  18. 18
    Customer
    Git server Development
    GitLab CI Build
    Deploy
    (Manual)
    Release

    Modules
    Engineer
    Staging
    Prod. Release SQA

    Manual
    Manual

    View full-size slide

  19. 缺乏⾃自動化部署技能
    19
    招兵買⾺馬
    ⾃自⾏行行培養
    慢 快

    View full-size slide

  20. 20
    第 1 位被徵招的
    Ansibler 在此

    View full-size slide

  21. 前置作業
    21
    Pair Programming
    寫⽂文件
    慢 快

    View full-size slide

  22. ※ 圖片來來源:https://unsplash.com/photos/hLUTRzcVkqg 22
    計畫外⼯工作 / 救火

    View full-size slide

  23. 減少例例外⼯工作
    1. 記錄每次的變更更⼯工作,並從過往學習。
    2. Pair System Administration。
    3. 事先於每⽇日站立會議詢問變更更影響範圍。
    4. 僅於上版⽇日變更更 Staging、Production。
    23

    View full-size slide

  24. 24
    新兵報到
    前置作業
    減少

    例例外⼯工作 Infra

    標準化
    設計 Playbooks

    整體架構
    完成 1st

    Playbooks
    串串 Playbooks 和 CI

    打造 CD stage
    2019.09
    2017.03
    已有 CI 和

    Build stage
    2. 打造 CD pipeline

    View full-size slide

  25. Manual
    Manual

    25
    Customer
    Git server Development
    GitLab CI Build
    Deploy
    (Auto.)
    Release

    Modules
    Engineer
    Staging
    Prod. Release SQA
    > Add "Deploy" stage.

    View full-size slide

  26. _____________________________
    / DevOps ⼈人⼀一定要 \
    \ 知道的持續交付技巧 /
    -----------------------------
    \
    \ ^__^
    \ (oo)\_______
    (__)\ )\/\
    ||----w |
    || ||
    [ chusiang@AgileTourTaichung ~ ]
    $ cat .profile
    # Author: 凍仁翔 / [email protected]
    # Blog: http://note.drx.tw
    # Modified: 2018-01-13 14:00
    # Reference: http://s.drx.tw/cdws
    5th

    View full-size slide

  27. 27
    新兵報到
    前置作業
    減少

    例例外⼯工作 Infra

    標準化
    設計 Playbooks

    整體架構
    完成 1st

    Playbooks
    串串 Playbooks 和 CI

    打造 CD stage
    2019.09
    2017.03
    加入 Unit Test
    已有 CI 和

    Build stage
    3. 加入 Unit Test

    View full-size slide

  28. Manual
    Manual

    28
    Customer
    Git server Development
    GitLab CI Build
    Deploy
    (Auto.)
    Test
    (VM)
    Release

    Modules
    Engineer
    Staging
    Prod. Release SQA
    > Add "Unit Test" stage.

    View full-size slide

  29. 同事:「Unit Test 在多台 HA 架構下,會打架。」
    29
    凍仁:「那就建台專⾨門跑 Unit Test 的 VM 吧!」
    4. ⽀支援 HA 架構

    View full-size slide

  30. Manual
    Manual

    30
    Customer
    Git server Development
    GitLab CI Build
    Test
    (VM)
    Deploy
    (Auto.)
    Release

    Modules
    Engineer
    Staging
    Prod. Release SQA
    > Switch "Deploy" and "Test" stage.

    View full-size slide

  31. 31
    新兵報到
    前置作業
    減少

    例例外⼯工作 Infra

    標準化
    設計 Playbooks

    整體架構
    完成 1st

    Playbooks
    串串 Playbooks 和 CI

    打造 CD stage
    招募 2nd

    Ansibler
    重寫 2nd.

    Playbooks
    2019.09
    2017.03
    幫其他團隊

    寫 Playbooks
    加入 Unit Test
    ⽤用 Docker

    重構 Unit Test
    已有 CI 和

    Build stage
    5. 重構 Unit Test 架構

    View full-size slide

  32. Manual
    Manual

    32
    Customer
    Git server Development
    GitLab CI Build
    Test
    (Docker)
    Deploy
    (Auto.)
    Release

    Modules
    Engineer
    Staging
    Prod. Release SQA
    > Refactor "Unit Test" stage via Docker.

    View full-size slide

  33. 33
    新兵報到
    前置作業
    減少

    例例外⼯工作 Infra

    標準化
    設計 Playbooks

    整體架構
    完成 3rd

    Playbooks
    串串 Playbooks 和 CI

    打造 CD stage
    招募 2nd

    Ansibler
    重寫 2nd.

    Playbooks
    2019.09
    2017.03
    幫其他團隊

    寫 Playbooks
    ⽤用 Docker

    重構 Unit Test
    ⽤用 Docker

    重構 Unit Test
    招募 3rd

    Ansibler
    6. 如果可以重來來
    已有 CI 和

    Build stage

    View full-size slide

  34. 即早交付,即早發揮價值
    1. Ansible playbooks:
    • 1st → 2nd:8 個⽉月。
    • 2nd → 3rd:? 個⽉月。
    2. Unit Test
    • VM → Docker:24 個⽉月。
    34
    技術問題
    vs.
    策略略問題

    View full-size slide

  35. 35
    Ansible Auto Craft Retro
    35
    3. 得到什什麼技藝

    View full-size slide

  36. 起⼿手式
    1. 最明確的部署流程。
    2. 最常重複的操作。
    3. 最易易出錯的地⽅方。
    36
    鬆綁瓶頸點

    View full-size slide

  37. 37
    組態設定⼯工具 = 槓桿解
    Ansible
    SaltStack Chef
    Puppet

    View full-size slide

  38. [ chusiang@AgileTourKaohsiung ~ ] $ cat .profile

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

    # Email: [email protected]

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

    # Date: 2018-12-15

    # Reference: http://s.drx.tw/dpse
    __________________________
    < 系統⼯工程師的 DevOps 實踐之道 >
    --------------------------
    \
    \

    View full-size slide

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

    組態
    新需求
    ⼿手動

    組態
    捨本逐末
    R1

    新⼯工作
    B2

    ⼿手動
    協作⼒力力
    39
    B3

    Playbooks
    R4

    協作⼒力力降低

    View full-size slide

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

    View full-size slide

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

    品質
    新需求
    ⼿手動

    組態
    預演

    變更更成本
    飲鴆⽌止渴 3
    R1

    新⼯工作
    B2

    ⼿手動
    R3

    害怕變更更
    Ansible

    組態
    41

    View full-size slide

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

    品質
    新需求
    ⼿手動

    組態
    ⼈人為

    失誤率
    飲鴆⽌止渴 2
    R1

    新⼯工作
    B2

    ⼿手動
    R3

    重蹈覆徹
    從過往

    學習
    42

    View full-size slide

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

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

    失誤率
    飲鴆⽌止渴 1
    R1

    新⼯工作
    B2

    加班
    R3

    品質下降
    43

    View full-size slide

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

    View full-size slide

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

    組態
    新需求
    成長上限
    R1

    新⼯工作
    協作⼒力力
    45
    B2

    Playbooks
    R3

    共享組態
    ⼿手動組態
    加班時數
    ⼯工作完成量量

    View full-size slide

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

    View full-size slide

  47. 為什什麼⾃自動化
    1. 寫出漂亮⼜又可⽤用的 Ansible Playbooks。
    2. 提⾼高團隊產能。
    3. 降低計畫外⼯工作發⽣生率。
    47

    View full-size slide

  48. – Chu-Siang Lai
    「⾃自動化無法直接減少計畫外⼯工作,我們應
    時常於安全環境預演變更更,減少浪費。」
    48

    View full-size slide

  49. 49
    Ansible Auto Craft Retro
    49
    4. 回顧

    View full-size slide

  50. 50
    開始⽤用 Ansible
    就該像指揮官

    思考整體部署

    View full-size slide

  51. 51
    新兵報到
    前置作業
    減少

    例例外⼯工作 Infra

    標準化
    設計 Playbooks

    整體架構
    完成 1st

    Playbooks
    串串 Playbooks 和 CI

    打造 CD stage
    招募 2nd

    Ansibler
    重寫 2nd.

    Playbooks
    2019.09
    2017.03
    幫其他團隊

    寫 Playbooks
    加入 Unit Test
    ⽤用 Docker

    重構 Unit Test
    招募 3rd

    Ansibler
    ⾃自動化歷程圖
    已有 CI 和

    Build stage

    View full-size slide

  52. 52
    組態設定⼯工具 = 槓桿解
    Ansible
    SaltStack Chef
    Puppet

    View full-size slide

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

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

    失誤率
    ⼿手動

    組態
    協作⼒力力
    Pair

    System

    Admin
    ]
    記錄

    變更更
    從過往

    學習
    Ansible
    組態
    預演組態

    變更更成本
    ]
    學習架

    構流程
    撰寫 Ansible

    Playbooks
    Zabbix

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

    架構牆
    ⼯工作完成量量
    CLD

    View full-size slide

  54. 54
    # — ⾃自我成長 ——————————
    # — DevOps ——————————

    View full-size slide

  55. 「只要你有耐⼼心,先專注在流程改善上,
    隨後⼀一段時間,品質會上升,成本也會上升;
    但不久之後,你便便發覺有些成本快速下降;
    數年年之內,成本⼤大幅下滑,兩兩者兼得。」
    55
    – 彼得.聖吉,《第五項修練》

    View full-size slide

  56. Q & A
    56
    http://bit.ly/32v3G1C

    View full-size slide

  57. 【萍⽔水相逢.tw @ 彩虹市集】
     10/26 (六) 12:00 ~ 18:00 臺灣同志⼤大遊⾏行行 (台北市府前)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  61. 61
    [ chusiang@DevOpsDaysTaipei ~ ] $ cat .profile

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

    # Email: [email protected]
    # Blog: https://note.drx.tw
    # Date: 2019-10-17
    END

    View full-size slide