Ruddy Lee 分享空間

Emergent Design 演化設計

什麼是DevOps?

with 2 comments

什麼是 DevOps? 從字面上的定義來回答:

DevOps 是維運和研發工程師一起參與,在產品的整個服務生命週期中,從設計到開發過程中,全程支援產品的做法。

.

英國政府數位服務設計手冊上面的定義:

DevOps 是一種組織內文化與既有職責變革(movement),用以回應大型組織內常見分工謬誤的問題

( 內容說明了: Devops 不是一種方法論或框架, 而是一些指導原則 與致力於打破組織藩籬的決心。)

.

這可能是今年最熱門的主題了! 幾乎所有的廠商都在推銷他們的DevOps解決方案。這些工具及產品(還有即將來襲的DevOps叢書)已經多到令人有些迷惑的地步。如果你曾經好奇的上網去Wiki上查詢DevOps的定義的話,你會得到以下的錯誤資訊:

 .

DevOps(英文Development和Operations的組合)是一組過程、方法與系統的統稱,用於促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。

.

實在很難說它寫錯了,但基本它的描述是不正確的! 因為 DevOps 絕對不是他所說的:「一組過程、方法與系統」。正確地說法: 其實它是一種文化! 為什麼會錯得這麼離譜呢? 這是一種有趣的現象,因為所有的大廠都在開發自己的解決方案,也就很容易讓人誤解它是一種開發方法(但它根本沒有任何規範,更沒有描述任何解題的步驟,因此絕對不是一種方法)。但基本上要作到DevOps,是一串繁複的過程,你要先打通層層的關卡,但真正難的是持續維護的作業。它牽扯到的是企業的文化,這是是一種文化層面的東西,所以必須由改善企業文化來解決問題。他跟敏捷開發強力推廣他的四大宣言一樣,我們舉敏捷開發的第一宣言來作說明:

.

個人與互動 重於 流程與工具

.

他描述的有些形而上,讓人看了以後一時難以完全意會。其實它的目的是要我們「先弄清楚自己要做什麼事、為什麼這樣做、這樣做了能解決什麼問題」,強調運用會議和溝通來找到真正的問題並建立共識才更重要,目的是讓團隊先去弄清問題,再思考解決問題需要那些流程跟工具。這樣的解釋好像簡單了一點,但事實正是如此。(如果從以上的說明,你還看不出哪裡有問題的話;請趕緊去微軟HPIBM的網站上去看一下他們對 DevOps的描述說明,你會很容易的看出來,其實它是一種文化,根本不是一種方法或是可以衍生出來的一種系統。謝天謝地! 這表示廠商們本身並沒有搞錯,只是wiki上的解釋容易誤導讀者,以為DevOps是一種方法)。

.

微軟Devops 在網站上的定義

MS devops

 .

改變文化難 — 要用改善效能的行為來形成文化

以往我們都會認為「改變組織文化,在於改變人的觀念」,而如何改變觀念,往往被視為是一件艱鉅的任務;但 DevOps則沿用精實的理論,它不會嘗試去直接改變人們的觀念,反而選擇以直接改善人們的行為方式,來形成一種團隊的責任精神,用責任文化來改善企業文化。就這一點而言;豐田企業Toyota的選擇是發揮 Lean 精實的精神,以消除浪費的原則來增進組織的工作效率,真實的運用它來改進企業的文化。

※ 這便是精實Lean理論在DevOps中所佔重要地位的原因。

.

(聽眾很容易被各個廠商在宣傳DevOps的影片所誤導! 看完、聽完了之後,難免會容易以為它是一種工具或是解決問題的開發方法,這是因為廠商談的都是產品,很容易讓人誤以為他是一種方法的實踐。希望學員們在聽完我的演講之後,不會再這麼認為了。 今年的Techdays 2015及 Rubyconf taiwan 2015 的 Keynote 上我都會談到這個主題。另外,我也會談到一項值得強調的Microservice的技術,工程師可能會對他比較感興趣,有機會再來談囉 !)

.

下面這張圖,是採用看板方法的角度來看DevOps實施之前跟之後的現象。

0dev0

.

上圖中將產品的整個生命周期都串連起來了,這是透過實施看板方法來讓DevOps完全透明化的圖示。我一直以為看板方法是解決DevOps 必經的過程,請大家拭目以待吧 !

.

Patrick Debois

DevOps 之父

請參考:

(如果你對 DevOps的歷史感興趣的話: http://itrevolution.com/the-history-of-devops/)

1. Patrick Debois (DevOps教父)在Youtube上回答一些基本的DevOps問題的座談會 https://youtu.be/uRMV6tT_mu0

2. http://theagileadmin.com/what-is-devops/ 上的說明。

3. http://newrelic.com/devops/what-is-devops 上的說明。

4. DevOps沒有宣言manifesto,比較務實的說明是: DevOps emphasizing collaboration and integration also looks to automation tools that can leverage an increasingly programmable and dynamic infrastructure from a lifecycle perspective.

Written by ruddyllee

2015 年 08 月 31 日 於 12:47:44

2 回應

Subscribe to comments with RSS.

  1. 感謝! 可以借分享連結嗎?

    Alexander Lin

    2016 年 05 月 02 日 at 23:26:14


發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: