Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

以自動化先行的 DevOps 實踐經驗分享

於台灣軟體的生命力 III - DevOps 的產業實務作法 分享主題「以自動化先行的 DevOps 實踐經驗分享」
(活動網址 https://www.seat.org.tw/event/taiwantalk3)

導入 DevOps有人強調要 Agile 先行、 Lean 先行、KanBan 先行,那麼是否有可能以「自動化」先行作為實踐 DevOps 的第一步?DevOps 不等於自動化,但自動化的確是實踐 DevOps 時不可缺少的重要環節,也許我們可以將自動化作為實踐 DevOps 其中一座重要的灘頭堡,作為導入 DevOps 的加速器。本場分享會談一談常見之 DevOps 與自動化的誤解,並分享兩個案例。

  • Login to see the comments

以自動化先行的 DevOps 實踐經驗分享

  1. 1. Cheng Wei Chen @台灣軟體工程學會 - 台灣軟體的生命力 III - DevOps 的產業實務作法圖片來來源: http://finda.photo/image/11418 以自動化先行之 DevOps實踐經驗分享
  2. 2. Cheng Wei Chen 陳 正瑋 http://chengweichen.com
  3. 3. https://devopsdays.tw/cfs https://devopstw.club Call for Speakers & Sponsors
  4. 4. Photo by Xenia Bogarova on Unsplash 先說個故事吧
  5. 5. 老闆:「⼩小陳,我最 近聽說外⾯面有⼀一個叫 做 DevOps 的技術似乎 很熱⾨門!」 ⼩小陳:「!?!?!?」 老闆 小陳 Photo by Pascal van de Vendel, Niko Lienata on Unsplash
  6. 6. 老闆:「所以從明天 開始,你就是公司的 DevOps 負責⼈人!」 ⼩小陳:「!?!?!?!?!?!?!?」 老闆 小陳 !? Photo by Pascal van de Vendel, Niko Lienata on Unsplash
  7. 7. 老闆:「從下⼀一季開 始,你要讓所有⼈人全 ⾯面善⽤用⾃自動化,全體 ⼯工作效率要提升 2 倍 以上!」老闆 !?!?!?!?!? 小陳
  8. 8. Agenda 1 DevOps 與自動化的誤解 2 自動化的誤區 3 案例分享 4 結語
  9. 9. 誤解⼀一:DevOps 即是 CI / CD Photo by NeONBRAND on Unsplash
  10. 10. 持續整合 CI Continuous Integration 1999 年年
  11. 11. 持續交付 CD Continuous Delivery 2010 年年
  12. 12. 持續交付 2.0 Container、 Cloud Native…
  13. 13. 老闆:「所以我們公 司何時能導入完畢 DevOps 的 CI / CD 呢?」 老闆 小陳 「早在三年年前就導入了了」 Photo by Pascal van de Vendel, Niko Lienata on Unsplash
  14. 14. 誤解⼆二:DevOps 即是 Automation Photo by NeONBRAND on Unsplash
  15. 15. 最常見、最糟糕的一種誤解 Photo by Kelly Sikkema on Unsplash
  16. 16. Photo by Cesar Carlevarino Aragon on Unsplash 認為 DevOps 不過是引入 某種工具或解決方案。
  17. 17. 老闆:「從下⼀一季開 始,你要讓所有⼈人全 ⾯面善⽤用⾃自動化,全體 ⼯工作效率要提升 X 倍 以上!」老闆 到底是故事?還是真實案例例?
  18. 18. 誤解三:DevOps 即是銀彈與特效藥 Photo by NeONBRAND on Unsplash
  19. 19. Photo by Cesar Carlevarino Aragon on Unsplash 認為 DevOps 在短期之內 就能產生巨大的成效
  20. 20. 即對、也錯
  21. 21. 品質不佳的⾃自動化腳本 違章建築的⾃自動化流程 千瘡百孔的⾃自動化平台 Photo by Paweł Czerwiński on Unsplash
  22. 22. 圖片來來源: https://www.offworlddesigns.com/game-over-t-shirt/ 死亡⼭山⾕谷
  23. 23. Agenda 1 DevOps 與自動化的誤解 2 自動化的誤區 3 案例分享 4 結語
  24. 24. 理想與現實的差距
  25. 25. 會遇到的坑,比想像的多 Oooops
  26. 26. 誤區⼀一:⽋欠缺全局觀 Photo by Branden Tate on Unsplash
  27. 27. Step7 Step8 Step3 Step4 Step6 Step2 Step1 「局部優化」能提供 的助益有限 Step5
  28. 28. 需具備 全局觀 從 瓶頸點 著⼿手 Photo by Saketh Garuda on Unsplash
  29. 29. 在「非瓶頸點」省下的每 個小時都是虛幻的。 高德拉特博士
  30. 30. code build test release deploy operateplan Continuous Integration Continuous Delivery Automation 你會從何處著手? Continuous Deployment CIcommit dev stagingtest testprod deploy environment dev staging prod local Infrastructure as Code
  31. 31. 老闆:「快提升效率, 讓⾃自動化可以做到每 ⼩小時部署10次!」 老闆 小陳 「老闆,可是我們每個⽉月 才出⼀一個新版本。」 Photo by Pascal van de Vendel, Niko Lienata on Unsplash
  32. 32. 誤區⼆二:技能喪失、埋下危機 Photo by Branden Tate on Unsplash
  33. 33. ⾃自動化 導致喪失 專業技能 Photo by Ahmed zayan on Unsplash
  34. 34. 開發⾃動化控制系統的設計⼈員,努 ⼒彌補⼈為執⾏的不可靠性,卻在不 知不覺中創造了導致新錯誤的機會, 這個錯誤甚至可能比他們原本極⼒避 免的更加嚴重。 —James Reason
  35. 35. 老闆:「⼩小陳,我忘 記要如何 ssh 登入伺 服器了了!」 老闆 小陳 「誰叫你都只會按下按鈕」 Photo by Pascal van de Vendel, Niko Lienata on Unsplash
  36. 36. 誤區三:喪失靈活性 Photo by Branden Tate on Unsplash
  37. 37. 應用程式所需的 environment? Deploy 自動化之前 如何取得 Artifacts? 是否有其他初始化的動作? 如何因應「部署失敗」? 如何連上主機? 需要額外的組態管理? 如何因應「重新部署」? x2 x5 x3 x6x5 x3 x2
  38. 38. 應用程式所需的 environment? Deploy 自動化之後,過度標準化 如何取得 Artifacts? 是否有其他初始化的動作? 如何因應「部署失敗」? 如何連上主機? 需要額外的組態管理? 如何因應「重新部署」? x1 x1 x1 x1x1 x1 x1
  39. 39. • ⾃自動化腳本能兼容遺 產與新專案? • ⾃自動化平台能兼
 Monolith Architecture 與 Microservices Architecture? Photo by Paweł Czerwiński on Unsplash
  40. 40. 誤區四:⽋欠缺維護性、可配置性 Photo by Branden Tate on Unsplash
  41. 41. ⾃自動化腳本不只要能 運⾏行行 還要能 長長久久 Photo by Marco Secchi on Unsplash
  42. 42. 50% 傳統 Ops https://landing.google.com/sre/book.html 50% 研發/改善
  43. 43. Automation 需要 持續維護 與 維運 Photo by rawpixel on Unsplash
  44. 44. 老闆:「為何你們導 入⾃自動化後,⼿手上還 有⼀一堆⼯工作?」 老闆 小陳 「你以為⾃自動化腳本不⽤用經 過 CI / CD / Code Review 嗎?」 Photo by Pascal van de Vendel, Niko Lienata on Unsplash
  45. 45. 誤區五:⼯工具決策優先 Photo by Branden Tate on Unsplash
  46. 46. ⼯工具與技術決策?
  47. 47. 技術及工具的決策? Add or Delete AWS DNS (Route 53) • 團隊主要的技術棧為 php • 擅長串串接 API 與第三⽅方服務 • 剛開始採⽤用 Ansible • 預定建立內部的⾃自動化管理理平台 AWS SDK for Python Ansible Module - AWS Module AWS SDK for PHP
  48. 48. 人們並不抵制改變, 他們抵制的是被改變。 —— Linda Rising Photo by Sasha Freemind on Unsplash
  49. 49. 並非新 技術 ⽽而是⼀一套需要 持續實現的 實踐⽅方法
  50. 50. 工具 = 文化的加速器
  51. 51. 工具決策與組織文化有關
  52. 52. 康威定律與工具
  53. 53. 老闆:「我鄭重宣布 從明天開始,所有員 ⼯工⼀一律律都只能使⽤用⼯工 具 A!」 老闆 小陳 「為什什麼不選 B?」 「我跟⼩小城溝通都⽤用 C,
 跟⼩小盧協作都⽤用 D。」 Photo by Pascal van de Vendel, Niko Lienata on Unsplash
  54. 54. Agenda 1 DevOps 與自動化的誤解 2 自動化的誤區 3 案例分享 4 結語
  55. 55. 案例例⼀一:嵌入式裝置之公司 Photo by Branden Tate on Unsplash
  56. 56. 產 品 專 案 多 ⽽而 雜 硬體組態配置 程式總數量量多 產品維護期長 困境
  57. 57. 開發 維運 從單一專案之流水線開始 產出物、組態配置儲存庫 發佈自動化整合測試 自動化組態配置 自動化建置測試環境 監控提 升 產 品 的 靈 活 性 更更 彈 性 的 組 態 配 置 自動化 自動化 自動化 自動化 自動化 複製經驗至其他專案
  58. 58. 開發 驗證 整合 測試 打包 交付 反饋 迭代 產品 設計 持續改善 自動化成效 產品設計 架構設計
  59. 59. 案例例⼆二:網站開發公司之案例例 Photo by Branden Tate on Unsplash
  60. 60. 困境 Dev Ops / Infra Support 小型 網站 CMS API 路由器 交換器 實體機 虛擬機需要大量伺服器,不同環境需求 Support
  61. 61. 困境 Dev Ops / Infra Support 小型 網站 CMS API 路由器 交換器 實體機 虛擬機需要大量伺服器,不同環境需求 Support 開發: 老闆等著看, 伺服器好了了沒? 維運: 都忙你要的, 其他⼯工作 都不要做了了
  62. 62. 實踐過程 Ops / Infra IaC 虛擬化 / 容器化 SOP / 標準化 自動化平台 工單管理 / 追蹤 自動化建置伺服器 自動化建置鏡像 API Dev 自動建置環境 ChatOps Dev Ops 開始研發 自家的 自動化維運平台
  63. 63. 人/文化 流程 技術/工具 自動化成效 跨部門協作 產品研發
  64. 64. Agenda 1 DevOps 與自動化的誤解 2 自動化的誤區 3 案例分享 4 結語
  65. 65. Photo by Sven Scheuermeier on Unsplash Automation 是個 老把戲
  66. 66. 老狗也可以變出新把戲 Photo by Valerie Elash on Unsplash Automation
  67. 67. 圖片來來源: http://finda.photo/image/11418 工程師 自動化 ⼜又懶懶,⼜又有⽣生產⼒力力的⼀一群⼈人
  68. 68. 圖片來來源: http://finda.photo/image/11418 反思,Automation? 自動化 / 工具對於你的意義為何?
  69. 69. 圖片來來源: http://finda.photo/image/11418 1. 沒有自動化,純手動。 2. 個人自行使用與維護系統特定用途之 腳本、程序、服務。 3. 多人共同維護共用之特定用途的腳本、 程序、服務。 4. 半自動觸發、執行的自動化平台。 5. 全自動、無需人為介入的自動化平台 (甚至具備自癒能力)。 Automation 的演進
  70. 70. 50% 傳統 Ops https://landing.google.com/sre/book.html 50% 研發/改善
  71. 71. 建議與結語 LEAN • 建立全局觀 • 從瓶頸點著⼿手 • 消除價值流中的浪費 • ⾃自動化⼀一切值得⾃自動化之處
  72. 72. • 萬物皆程式碼 • 重視維護性、可配置性 • 敏捷 Agile • 重視靈活性與標準化的取捨 建議與結語 軟體工程
  73. 73. • 建立灘頭堡 • 康威、逆康威定律律 • 重視⼯工具之於⼈人的價值 • 失敗的是流程,不是⼯工具 • 反饋、持續改善 建議與結語 文化
  74. 74. • Automation 絕對是 DevOps 的重要關鍵。 • ⾃自動化是⼀一種⼒力力量量倍增器,但不是銀彈。 • 萬物皆程式碼,優良的軟⼯工能⼒力力⽇日趨重要。 • 以 Automation 先⾏行行是可⾏行行的,但⽂文化、價值 觀的轉變要跟上腳步。 • DevOps 需要持續監測、持續反饋、持續改進。 Key Takeaways
  75. 75. 工商服務
  76. 76. https://devopsdays.tw/cfs https://devopstw.club Call for Speakers & Sponsors
  77. 77. 參參與社群,與⼈人互動 安全、開放、熱情 圖片來來源: https://unsplash.com/@saksham?photo=YVgOh8w1R4s Open your mind, Move your body
  78. 78. Photo by Clark Tibbs on Unsplash Thank You

×