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 開始,述說兩年來的自動化組態實踐心得。

C754ece92411be3261a2c3f1dd3aa3cc?s=128

Chu-Siang Lai

October 17, 2019
Tweet

Transcript

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

    cat .profile # Author: 凍仁翔 (Chu-Siang Lai) # Email: chusiang@drx.tw # Blog: https://note.drx.tw # Date: 2019-10-17
  2. 凍仁翔 2 • 美商普維軟體⼯工程師 • Ansible Taiwan 社群組織者 • DevOps

    Taiwan 志⼯工 • 台灣敏捷協會成員 @chusiang_lai
  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
  4. ※ 圖片來來源:https://unsplash.com/photos/FyD3OWBuXnY 企業導入 Ansible ⾃自動化真的容易易嗎 [ chusiang@DevOpsDaysTaipei ~ ] $

    cat .profile # Author: 凍仁翔 (Chu-Siang Lai) # Email: chusiang@drx.tw # Blog: https://note.drx.tw # Date: 2019-10-17 難 , 但值得
  5. Outline Ansible 1. Ansible 是什什麼 2. 從 1 到 20

    的⾃自動化 3. 得到什什麼技藝 4. 回顧 Auto Craft Retro
  6. 6 Ansible Auto Craft Retro 6 1. Ansible 是什什麼

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

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

  9. 9 Ansible 取名⾃自 Answerable,在⼩小說
 《安德的遊戲》中代表著 虛構的超光速即時通訊裝置。 » http://bit.ly/33pjmno 2013 年年的電影海海報

    - https://goo.gl/4xftZT
  10. 10 https:/ /youtu.be/8wwJd7WUtko

  11. 指揮官思維 Commander Thinking 11

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

    » ENTJ | 維基百科 - https://zh.wikipedia.org/wiki/ENTJ
  13. 13 開始⽤用 Ansible 就該像指揮官
 思考整體部署

  14. 14 Ansible Auto Craft Retro 14 2. 從 1 到

    20 的⾃自動化
  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
  16. 16 Customer Git server Development GitLab CI Build Test (Docker)

    Deploy (Auto.) Release
 Modules Engineer Staging Prod. Release SQA Now Manual Manual
  17. 17 新兵報到 前置作業 減少 例例外⼯工作 Infra 標準化 2019.09 2017.03 1.

    學習架構流程 已有 CI 和 Build stage
  18. 18 Customer Git server Development GitLab CI Build Deploy (Manual)

    Release
 Modules Engineer Staging Prod. Release SQA Ⅰ Manual Manual
  19. 缺乏⾃自動化部署技能 19 招兵買⾺馬 ⾃自⾏行行培養 慢 快

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

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

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

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

    僅於上版⽇日變更更 Staging、Production。 23
  24. 24 新兵報到 前置作業 減少 例例外⼯工作 Infra 標準化 設計 Playbooks 整體架構

    完成 1st Playbooks 串串 Playbooks 和 CI 打造 CD stage 2019.09 2017.03 已有 CI 和 Build stage 2. 打造 CD pipeline
  25. Manual Manual Ⅱ 25 Customer Git server Development GitLab CI

    Build Deploy (Auto.) Release
 Modules Engineer Staging Prod. Release SQA > Add "Deploy" stage.
  26. _____________________________ / DevOps ⼈人⼀一定要 \ \ 知道的持續交付技巧 / ----------------------------- \

    \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || [ chusiang@AgileTourTaichung ~ ] $ cat .profile # Author: 凍仁翔 / chusiang@drx.tw # Blog: http://note.drx.tw # Modified: 2018-01-13 14:00 # Reference: http://s.drx.tw/cdws 5th
  27. 27 新兵報到 前置作業 減少 例例外⼯工作 Infra 標準化 設計 Playbooks 整體架構

    完成 1st Playbooks 串串 Playbooks 和 CI 打造 CD stage 2019.09 2017.03 加入 Unit Test 已有 CI 和 Build stage 3. 加入 Unit Test
  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.
  29. 同事:「Unit Test 在多台 HA 架構下,會打架。」 29 凍仁:「那就建台專⾨門跑 Unit Test 的

    VM 吧!」 4. ⽀支援 HA 架構
  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.
  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 架構
  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.
  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
  34. 即早交付,即早發揮價值 1. Ansible playbooks: • 1st → 2nd:8 個⽉月。 •

    2nd → 3rd:? 個⽉月。 2. Unit Test • VM → Docker:24 個⽉月。 34 技術問題 vs. 策略略問題
  35. 35 Ansible Auto Craft Retro 35 3. 得到什什麼技藝

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

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

  38. [ chusiang@AgileTourKaohsiung ~ ] $ cat .profile # Author: 凍仁翔

    (Chu-Siang Lai) # Email: chusiang@drx.tw # Blog: https://note.drx.tw # Date: 2018-12-15 # Reference: http://s.drx.tw/dpse __________________________ < 系統⼯工程師的 DevOps 實踐之道 > -------------------------- \ \
  39. 業務專案 待辦量量 IT 內部專案 ⼯工作量量 Ansible 組態 新需求 ⼿手動
 組態

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

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

    ⼿手動
 組態 預演 變更更成本 飲鴆⽌止渴 3 R1 新⼯工作 B2 ⼿手動 R3 害怕變更更 Ansible 組態 41
  42. 業務專案 待辦量量 IT 內部專案 ⼯工作量量 ⼯工作完成量量 變更更⼯工作
 品質 新需求 ⼿手動


    組態 ⼈人為
 失誤率 飲鴆⽌止渴 2 R1 新⼯工作 B2 ⼿手動 R3 重蹈覆徹 從過往 學習 42
  43. 業務專案 待辦量量 IT 內部專案 ⼯工作量量 計畫外⼯工作 發⽣生率 變更更⼯工作
 品質 新需求

    加班時數 ⼈人為
 失誤率 飲鴆⽌止渴 1 R1 新⼯工作 B2 加班 R3 品質下降 43
  44. –《第五項修練》 「眼光凝聚在長期焦點。如果可能的話,完全摒 除那種短期對策。除非短期對策只是⽤用來來換取時 間,以尋求更更妥善的長期解決⽅方案。」 44 飲鴆⽌止渴 Ansible 組態 ⼿手動組態、加班

  45. 業務專案 待辦量量 IT 內部專案 ⼯工作量量 Ansible 組態 新需求 成長上限 R1

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

    成長上限 Ansible 組態 ーー 協作⼒力力 ⼿手動組態、加班、 ⼯工作完成量量
  47. 為什什麼⾃自動化 1. 寫出漂亮⼜又可⽤用的 Ansible Playbooks。 2. 提⾼高團隊產能。 3. 降低計畫外⼯工作發⽣生率。 47

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

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

  50. 50 開始⽤用 Ansible 就該像指揮官
 思考整體部署

  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
  52. 52 組態設定⼯工具 = 槓桿解 Ansible SaltStack Chef Puppet

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

    新需求 加班時數 ⼈人為
 失誤率 ⼿手動
 組態 協作⼒力力 Pair
 System Admin ] 記錄 變更更 從過往 學習 Ansible 組態 預演組態
 變更更成本 ] 學習架
 構流程 撰寫 Ansible
 Playbooks Zabbix 監控 系統掌握度 便便利利貼 架構牆 ⼯工作完成量量 CLD
  54. 54 # — ⾃自我成長 —————————— # — DevOps ——————————

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

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

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

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

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

  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

  61. 61 [ chusiang@DevOpsDaysTaipei ~ ] $ cat .profile # Author:

    凍仁翔 (Chu-Siang Lai) # Email: chusiang@drx.tw # Blog: https://note.drx.tw # Date: 2019-10-17 END