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

Is it really easy for companies to import Ansib...

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. 凍仁翔 2 • 美商普維軟體⼯工程師 • Ansible Taiwan 社群組織者 • DevOps

    Taiwan 志⼯工 • 台灣敏捷協會成員 @chusiang_lai
  2. 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
  3. ※ 圖片來來源: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 難 , 但值得
  4. Outline Ansible 1. Ansible 是什什麼 2. 從 1 到 20

    的⾃自動化 3. 得到什什麼技藝 4. 回顧 Auto Craft Retro
  5. 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
  6. 16 Customer Git server Development GitLab CI Build Test (Docker)

    Deploy (Auto.) Release
 Modules Engineer Staging Prod. Release SQA Now Manual Manual
  7. 18 Customer Git server Development GitLab CI Build Deploy (Manual)

    Release
 Modules Engineer Staging Prod. Release SQA Ⅰ Manual Manual
  8. 24 新兵報到 前置作業 減少 例例外⼯工作 Infra 標準化 設計 Playbooks 整體架構

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

    Build Deploy (Auto.) Release
 Modules Engineer Staging Prod. Release SQA > Add "Deploy" stage.
  10. _____________________________ / 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
  11. 27 新兵報到 前置作業 減少 例例外⼯工作 Infra 標準化 設計 Playbooks 整體架構

    完成 1st Playbooks 串串 Playbooks 和 CI 打造 CD stage 2019.09 2017.03 加入 Unit Test 已有 CI 和 Build stage 3. 加入 Unit Test
  12. 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.
  13. 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.
  14. 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 架構
  15. 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.
  16. 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
  17. 即早交付,即早發揮價值 1. Ansible playbooks: • 1st → 2nd:8 個⽉月。 •

    2nd → 3rd:? 個⽉月。 2. Unit Test • VM → Docker:24 個⽉月。 34 技術問題 vs. 策略略問題
  18. [ 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 實踐之道 > -------------------------- \ \
  19. 業務專案 待辦量量 IT 內部專案 ⼯工作量量 Ansible 組態 新需求 ⼿手動
 組態

    捨本逐末 R1 新⼯工作 B2 ⼿手動 協作⼒力力 39 B3 Playbooks R4 協作⼒力力降低
  20. 業務專案 待辦量量 IT 內部專案 ⼯工作量量 計畫外⼯工作 發⽣生率 變更更⼯工作
 品質 新需求

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


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

    加班時數 ⼈人為
 失誤率 飲鴆⽌止渴 1 R1 新⼯工作 B2 加班 R3 品質下降 43
  23. 業務專案 待辦量量 IT 內部專案 ⼯工作量量 Ansible 組態 新需求 成長上限 R1

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

    成長上限 Ansible 組態 ーー 協作⼒力力 ⼿手動組態、加班、 ⼯工作完成量量
  25. 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
  26. 53 業務專案 待辦量量 IT 內部專案 ⼯工作量量 計劃外⼯工作 發⽣生頻率 變更更⼯工作
 品質

    新需求 加班時數 ⼈人為
 失誤率 ⼿手動
 組態 協作⼒力力 Pair
 System Admin ] 記錄 變更更 從過往 學習 Ansible 組態 預演組態
 變更更成本 ] 學習架
 構流程 撰寫 Ansible
 Playbooks Zabbix 監控 系統掌握度 便便利利貼 架構牆 ⼯工作完成量量 CLD
  27. 61 [ chusiang@DevOpsDaysTaipei ~ ] $ cat .profile # Author:

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