Google DevOps


由于 DevOps 是一個系統(tǒng)性工程,所以很難用一句話來說明,即使我們用一句話說明,也很難理解。要不然,也顯示不出它的優(yōu)越性!

1948 - TPS(豐田生產(chǎn)方式)
豐田生產(chǎn)方式(英語:Toyota Production System,縮寫為 TPS),是由豐田提出的一個整合的社會-技術(shù)系統(tǒng),包含一套管理理念和實踐。豐田生產(chǎn)方式為汽車制造安排生產(chǎn)和物流,當(dāng)中包括與供應(yīng)商和客戶的互動。該系統(tǒng)是更通用的“精益生產(chǎn)”的先驅(qū)。大野耐一、新鄉(xiāng)重夫和豐田英二在1948年和1975年之間,開發(fā)了這個系統(tǒng)。
針對于流水線自動化,工業(yè)制造行業(yè)是領(lǐng)先于軟件行業(yè)的。早在1948年,豐田就采用 TPS 模式,與德國大眾,美國通用汽車一起成為世界三大汽車制造商。TPS 的核心在于杜絕浪費,簡單理解,就是豐田在生產(chǎn)銷售的各個階段做到了成本最優(yōu)。
其實,軟件開發(fā)的流程中,尋求的也是成本最優(yōu),只不過,我們逐漸把這個淡忘了而已。
1960 - Kanban(工業(yè)制造)
Kanban 源于豐田生產(chǎn)模式,Kanban 一詞來源于日文。隨后,在2006年,軟件行業(yè)中也出現(xiàn)了 Kanban 的概念。
用過一張對比圖來看一下 TPS 中的 Kanban 與軟件行業(yè)中的看板。

由上圖可見,軟件行業(yè)中使用的 Kanban(比如 Trello,Jira)這些應(yīng)用,其實都是來源于 TPS。所以,軟件公司里要求員工使用類似的 Kanban,根本原因,不是為了彰顯公司多專業(yè),而是從工業(yè)領(lǐng)域的實踐中來的。
當(dāng)然,工具是一方面,怎么去運用 Kanban 是另一個話題了,只有在工具和運用配合得當(dāng)?shù)臅r候,才可以發(fā)揮作用,不然 Kanban 就只會變成一個擺設(shè)。
簡單來講,運用 Kanban,我們可以追蹤項目進度。
1970 - Waterfall(軟件行業(yè))
直到 1970年,軟件開發(fā)流程一直是一個瀑布模型。這個模型其實很好理解,就是從頭到尾一氣合成。我們在學(xué)校里或者剛開始工作的時候,采用的都是這個模型。有不少小公司,采用的也是這種模型。

什么情況下,適合使用此類模型?
瀑布模型已經(jīng)不推薦企業(yè)使用,說的再白一點,如果是團隊,就應(yīng)該避開瀑布模型。也就是說,如果是一個人開發(fā),可以采用瀑布模型,或者是不用后期維護的一次性開發(fā),比如,做一個靜態(tài)頁面的網(wǎng)站。
1986 - Scrum(工業(yè)制造)
從單詞本身來翻譯,Scrum 的意思是爭吵。用于開發(fā)、交付和維持錯綜復(fù)雜產(chǎn)品的敏捷框架。所以,不是指我們每天做的站會,站會只是 Scrum 的一個體現(xiàn)形式而已。
在工業(yè)生產(chǎn)領(lǐng)域,Scrum 體現(xiàn)了一個生產(chǎn)線的流程。在軟件開發(fā)領(lǐng)域,Scrum 屬于 Agile(敏捷開發(fā))的一個方法論,我們會在下文中介紹。

1991 - Lean manufacturing
精益生產(chǎn),一種系統(tǒng)性的生產(chǎn)方法,其目標(biāo)在于減少生產(chǎn)過程中的無益浪費。這個概念也來源于 TPS。簡單來說,精實生產(chǎn)的核心是用最少工作,創(chuàng)造價值,是 TPS 的發(fā)展產(chǎn)物。
1995 - Scrum(軟件行業(yè))
軟件行業(yè)中的 Scrum 由工業(yè)制造中而來,只一套敏捷開發(fā)的方法論。我們在日常工作中遇到的 Milestone,Epic,Spring,Task,站會,都屬于 Scrum 里的概念。每個公司都應(yīng)該有一套自己的 Scrum 模式,而不是去抄襲別的公司的模式,甚至說,一個公司的不同團隊,都會有自己的 Scrum 模式,因為團隊是由人來構(gòu)成的,每一個人的能力,性格的差異,會決定這個團隊的生產(chǎn)力。

1995 - Agile(軟件行業(yè))
比起 Scrum,Lean 這些詞匯,Agile(敏捷開發(fā))應(yīng)該是在國內(nèi)聽到的最多的詞匯。很多我們使用的產(chǎn)品,例如,Jira,Trello,云效,Coding 這些產(chǎn)品,它的核心價值也是實現(xiàn)敏捷開發(fā)。
提到 Agile,不得不提起 Agile Manifesto(Agile 宣言)。在2001年,十七名軟件開發(fā)人員在猶他州的雪鳥度假村會面,討論這些輕量級的開發(fā)方法,并由Jeff Sutherland,Ken Schwaber和Alistair Cockburn發(fā)起,一同發(fā)布了“敏捷軟件開發(fā)宣言”。

現(xiàn)今的 Agile 的內(nèi)容已經(jīng)豐富了很多,不過在當(dāng)時,Agile 宣言的主要內(nèi)容如下:
-
個體和互動:高于流程和工具。
-
工作的軟件:高于詳盡的文檔。
-
客戶合作:高于合同談判。
-
響應(yīng)變化:高于遵循計劃。
說的白一點,Agile 注重團隊協(xié)同。 這不就是公司內(nèi)部一直在宣傳的口號嗎?
2003 - Lean(軟件行業(yè))
直到 2003年,Agile 框架中,除了 Scrum 方法論,又添加了 Lean 方法論。上面我們提到,Lean 就是使用最少的成本,達(dá)到目的。
-
消除浪費
-
增強學(xué)習(xí)
-
盡量延遲決定
-
盡快發(fā)布
-
下放權(quán)力
-
嵌入質(zhì)量
-
全局優(yōu)化
2006 - Kanban(軟件行業(yè))
在 2006年,軟件行業(yè)也開始大規(guī)模應(yīng)用 Kanban 模式,也出現(xiàn)了相應(yīng)的 SaaS 服務(wù)。國內(nèi)現(xiàn)在也已經(jīng)普及了 Kanban 模式的使用,不過,大多數(shù)情況,并沒有應(yīng)用的得心應(yīng)手。Kanban 的存在很多時候,都是在應(yīng)付每周一次的例會。
2009 - DevOps(軟件行業(yè))
直到 2009年,DevOps 的概念又悄然升起。DevOps 并不屬于 Agile 框架。如果去搜索 DevOps 概念,每一個大公司都會給出一個自己的概念。
簡單來說,DevOps 是一個企業(yè)的生產(chǎn)文化,是 Agile 框架的一個補充和拓展。
-
亞馬遜的定義:https://aws.amazon.com/devops/what-is-devops/
-
谷歌的定義:https://cloud.google.com/devops#section-2
-
微軟的定義:https://azure.microsoft.com/en-gb/overview/what-is-devops/#devops-overview
-
Atlassian 的定義:https://www.atlassian.com/devops/what-is-devops/benefits-of-devops
我們會在后續(xù)的文章中,詳細(xì)介紹這兩個的區(qū)別點。這里我們只給出一個簡單的介紹。

2014 - ChatOps(軟件行業(yè))
2014年,ChatOps 又從 DevOps 里衍生出來。ChatOps 是一種協(xié)作模型,它將人員、工具、流程和自動化連接到一個透明的工作流中。
不好理解對不對?簡單來說,就是通過 Chat 模式(使用企業(yè)微信,叮叮,飛書,Slack)等工具 后臺的機器人,以聊天的模式完成工作流。
舉個例子:
我在 Git 上提交了一個代碼,這時候,后臺機器人會自動往企業(yè)微信群里推送一個Git commit信息,你需要回復(fù)同意構(gòu)建/部署,才會進行到下一步。
這也是為什么 Slack 等工具里,經(jīng)常出現(xiàn) bot(后臺機器人)等產(chǎn)品的原因。其實也好理解,自動客服也是類似的原理。
GitOps
2017年,又出現(xiàn)了 GitOps 的概念。
GitOps 是一種為云原生應(yīng)用程序?qū)崿F(xiàn)持續(xù)部署的方式。它通過使用開發(fā)人員已經(jīng)熟悉的工具,包括 Git 和持續(xù)部署工具,專注于在操作基礎(chǔ)設(shè)施時以開發(fā)人員為中心的體驗。
FinOps
FinOps 是“云財務(wù)運營”或“云財務(wù)管理”或“云成本管理”的簡寫。這是一種將財務(wù)責(zé)任引入云的可變支出模型的做法,使分布式團隊能夠在速度、成本和質(zhì)量之間進行業(yè)務(wù)權(quán)衡。
AiOps
到現(xiàn)在為止,沒有達(dá)到規(guī)模性應(yīng)用,還處于孵化階段。說白一點,就是要把 AI 技術(shù)放到運維當(dāng)中。

在接下來的文章中,會介紹 DevOps 與企業(yè)收益,DevOps 衡量,DevOps 與個人收益等話題。
問題:到底需不需要引入 DevOps?
答案:需要,而且必須。