什麼是 DevOps?

八月初的時候,DevOps Taiwan 社團舉辦了第一次的 Meetup,並邀請了三位講者來分享講題。我有幸能擔任其中一位講者並分享《摩登開發團隊的 DevOps 之道》這個講題。

講題乍看之下似乎太過故弄玄虛了一點,因為這題目原本是用來投稿 iThome 與 Taiwan WebConf 主辦的 Modern Web 2015 所準備的,因此故意在題目命名上誇張了一些,其實講題內容很單純,就是想跟大家聊一聊「什麼是 DevOps?」。

當然很可惜當時投稿沒上,因此在這次 Meetup 就可以直接厚臉皮地拿出來講,反正從來也沒人聽過我講,再者「什麼是 DevOps?」這樣的內容用來作為 DevOps Taiwan 社團第一次 Meetup 的開場講題其實是相當合適的。

DevOps 之瞎子摸象

DevOps 到底是什麼?我覺得這實在很難用簡單的一句話來解釋,因此我們會看到有人說 DevOps 就是敏捷開發,也有人說 DevOps 就是持續交付 (Continuous Delivery),事實上這些說法也不能說它錯,但好像有一點不夠完全,無法完整的描繪出 DevOps 的整體面貌,似乎大家就像是「瞎子摸象」一樣,嘗試勾勒出 DevOps 這隻大象,但是會不會 DevOps 根本不是一隻大象?搞不好其實是一隻恐龍或是其他種類的生物?

毋庸置疑 DevOps 就是潮

但不論 DevOps 到底是什麼,有一件事可以肯定,那就是它絕對是目前非常「潮」的一個詞,因為你隨便 Google 你可以找到一堆文章、報導、教學、報告、服務、工具或職務…等,全都掛上了 DevOps,即便你都還不真正的認識它,但你已經無法阻止自己看到它出現在各個地方。

What is DevOps

延續前面提到的,DevOps 很難很簡單的被解釋,那麼有沒有比較複雜又完整的定義或解釋呢? 答案是有的,除了 Wiki 之外,只要 Google 「What is DevOps」就可以找到一堆,而若你真的去 Google,你很可能會發現目前有滿多人是用 CAMS 來解釋 What is DevOps。

CAMS 當然並不是另一個新詞,它代表另外四個關鍵字:

  • C = Culture
  • A = Automation
  • M = Measurement
  • S = Sharing

Culture

DevOps 其實是一種文化,所以它並不是單指某一種工具或解決方案,它其實是一種文化層面的改變。在傳統的組織架構當中,人人可能只關注在自己的領域與工作,但別忘了在開發流程當中除了 coding 之外,後續還有 test、deploy、operate…等,難道當開發者將程式碼交給維運部門之後,後面發生的任何異常狀況都與開發者無關了嗎?

因此 DevOps 的精髓在於「設計一個系統,讓每個人為自己的行為所造成的後果負責任」,所以 DevOps 真正的核心價值正是文化,建立一個強調合作、協作、負責任及分享的文化。

Automation

DevOps 另一個重點即是「自動化」,盡可能的將能夠自動化的動作都導入自動化。這就會扯到另兩個重量級關鍵字「Continuous Integration」、「Continuous Delivery」。

這也是為何有人會說 DevOps 就是 Continuous Delivery,事實上也是如此,實踐 Continuous Delivery 確實佔了 DevOps 很大部份。

Measurement

提到 Measurement 同樣會扯出更多關鍵字「Monitor」、「Metrics」及「Analytics」,而重點就是「讓數據說話」,從開發到維運每個階段中收集到的各種數據中產生有用的回饋,以此作為後續改善的基礎。

Sharing

前面提到 DevOps 是一種文化,而文化不正是需要透過人與人的互動之中產生,因此 DevOps 非常強調「分享」這個概念。有什麼可以分享?有什麼需要分享?像是經驗、工具、數據…等都需要分享。

讓我們用數據為例,前面講到 Measurement,今天我們收集到了一堆有用的數據,數據若只是保存在維運部門之內,就太可惜了。應該要將數據分享給開發部門,讓數據說話,甚至最好能建立一個專門的 dashborad 方便有需要者都能方便地察看數據,讓數據真正發揮果效。

建議閱讀

本文僅很簡短的說明 CAMS,建議大家多多 Google,因為可以參考的資料實在太多。到底 DevOps 是大象還是恐龍?就留給各位自己去解答了。

這裡就先列出幾個我覺得可以參考的簡報,幫大家節省一點時間:

2015/09/05 再補充

之前忘了在哪看到也有人說 DevOps = CALMS,但是當時沒有特別記下來。但是在這次 iThome 舉辦的 DevOps 2015 (Taiwan),來自 Chef 的全球傳教士 Michael Ducy 的簡報中,就有提到 DevOps = CALMS,其中 L = Lean。於是特別找了一下,發現當初似乎就是在 New Relic 的文章中看到,隨手記錄一下。

2016/01/25 再補充

決定繼續來多寫一點 What is DevOps 的相關文章,決定將之前做的簡報轉換成文章的形式。文章可點此連結前往。

轉貼本文時禁止修改,禁止商業使用,並且必須註明來自「艦長,你有事嗎?」原創作者 Cheng Wei Chen,及附上原文連結。

工商服務

更多文章