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

Is it really easy for companies to import Ansible automation

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 ⾃自動化真的容易易嗎
    [ [email protected] ~ ] $ cat .profile

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

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

    View Slide

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

    View 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 Slide

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

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

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


    但值得

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

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

    View Slide

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

    View Slide

  11. 指揮官思維
    Commander Thinking
    11

    View Slide

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

    View Slide

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

    思考整體部署

    View Slide

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

    View 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 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 Slide

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

    例例外⼯工作 Infra

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

    Build stage

    View Slide

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

    Modules
    Engineer
    Staging
    Prod. Release SQA

    Manual
    Manual

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    例例外⼯工作 Infra

    標準化
    設計 Playbooks

    整體架構
    完成 1st

    Playbooks
    串串 Playbooks 和 CI

    打造 CD stage
    2019.09
    2017.03
    已有 CI 和

    Build stage
    2. 打造 CD pipeline

    View 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 Slide

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

    View Slide

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

    例例外⼯工作 Infra

    標準化
    設計 Playbooks

    整體架構
    完成 1st

    Playbooks
    串串 Playbooks 和 CI

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

    Build stage
    3. 加入 Unit Test

    View 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 Slide

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

    View 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 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 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 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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  38. [ [email protected] ~ ] $ 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 Slide

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

    組態
    新需求
    ⼿手動

    組態
    捨本逐末
    R1

    新⼯工作
    B2

    ⼿手動
    協作⼒力力
    39
    B3

    Playbooks
    R4

    協作⼒力力降低

    View Slide

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

    View Slide

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

    品質
    新需求
    ⼿手動

    組態
    預演

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

    新⼯工作
    B2

    ⼿手動
    R3

    害怕變更更
    Ansible

    組態
    41

    View Slide

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

    品質
    新需求
    ⼿手動

    組態
    ⼈人為

    失誤率
    飲鴆⽌止渴 2
    R1

    新⼯工作
    B2

    ⼿手動
    R3

    重蹈覆徹
    從過往

    學習
    42

    View Slide

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

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

    失誤率
    飲鴆⽌止渴 1
    R1

    新⼯工作
    B2

    加班
    R3

    品質下降
    43

    View Slide

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

    View Slide

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

    組態
    新需求
    成長上限
    R1

    新⼯工作
    協作⼒力力
    45
    B2

    Playbooks
    R3

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    思考整體部署

    View 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 Slide

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

    View Slide

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

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

    失誤率
    ⼿手動

    組態
    協作⼒力力
    Pair

    System

    Admin
    ]
    記錄

    變更更
    從過往

    學習
    Ansible
    組態
    預演組態

    變更更成本
    ]
    學習架

    構流程
    撰寫 Ansible

    Playbooks
    Zabbix

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

    架構牆
    ⼯工作完成量量
    CLD

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View 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 Slide

  61. 61
    [ [email protected] ~ ] $ cat .profile

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

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

    View Slide