阿里云上海專業(yè)的運維代理商:結(jié)合個人經(jīng)歷談?wù)勅绾卫斫釩ALMS模型
一、前言
DevOps的概念在國內(nèi)已經(jīng)發(fā)展了一段時間了,目前大部分開發(fā)人員都被要求有一定的運維能力,這就是“開發(fā)運維”。
提到DevOps的話,不得不提CALMS。CAMS代表Culture, Automation, Measurement, Sharing四個單詞的首字母縮寫。CAMS已經(jīng)成為許多DevOps從業(yè)者的價值參考模型。
下面我和你一同分析這五點,并結(jié)合我自己的工作經(jīng)驗體會,希望你看了之后能有自己的理解。
二、Culture(文化)
Culture(文化)- 是指擁抱變革,促進協(xié)作和溝通。
隨著項目不斷實踐,我們的管理和流程會慢慢發(fā)生變化。比如小型企業(yè)隨著業(yè)務(wù)的不斷增長,需要招聘獨立的DBA去管理數(shù)據(jù)庫,當(dāng)有新的流程引入之后,必定會導(dǎo)致之前的業(yè)務(wù)流程發(fā)生變化。
那么,在團隊內(nèi)部,我們就需要的是對變化本身采取接受的態(tài)度,并提前進行相關(guān)培訓(xùn)。
文化這個東西,乍一看是虛的,如果我們想要落地,就需要花時間去培養(yǎng)。
三、Automation(自動化)
Automation(自動化)- 是指將人為干預(yù)的環(huán)節(jié)從價值鏈中消除。
自動化區(qū)別去手動化,早期的服務(wù)器部署工作,需要我們手動創(chuàng)建服務(wù)器,并配置網(wǎng)絡(luò)和基礎(chǔ)環(huán)境。
DevOps通過設(shè)施即代碼(Iac)的方式,用配置文件的方式管理服務(wù)器、網(wǎng)絡(luò)、數(shù)據(jù)庫,并且整個流程可以復(fù)用。
這么做的好處有
? 高度復(fù)用,不會因為某個服務(wù)器手動配置出錯而出現(xiàn)問題
? 反應(yīng)迅速,擴容及時,減少操作時間
為了達到目的我們需要維護全程的自動化,包括 基礎(chǔ)設(shè)施、持續(xù)集成、構(gòu)建、測試、持續(xù)交付、部署后測試。
四、Lean(精益)
Lean(精益)- 是指通過使用精益原則促使高頻率循環(huán)周期。
我最早聽到精益這個詞,是精益創(chuàng)業(yè),其實這個詞來源于制造業(yè),精益的本質(zhì)是消除浪費,到了以工程師作為生產(chǎn)力的軟件行業(yè),則是提高軟件迭代的循環(huán)周期,這其實也可以理解為消除了浪費,只不過從實體行業(yè)的原材料變成了軟件行業(yè)的溝通和流程。
上面一條自動化,消除了大量人工操作帶來的不確定性和時間成本,也就達到了精益的目的。
我覺得,精益還有一層含義,就是對整體效率的提升,整個團隊成員因為DevOps流程的變化,加上相互學(xué)習(xí)提高水平,最終共同提高了整個團隊的效率。
五、Metrics(指標(biāo))
Metrics(指標(biāo))- 是指衡量每一個環(huán)節(jié),并通過數(shù)據(jù)來改進循環(huán)周期。
我們能看到的指標(biāo)就是云平臺(亞馬遜、阿里云、騰訊云)的控制面板,以及各種日志推送。
上家公司的老大一直在重復(fù)的一句話就是,判斷問題不能瞎猜,要有證據(jù)。
不能說我們發(fā)現(xiàn)了一個地方出了bug,就很自然地認為是哪里的問題,然后馬上去修復(fù)。一定要有證據(jù),比如數(shù)據(jù)的異常、日志、瀏覽器調(diào)試等等。
不通過指標(biāo)盲目去做事,本身就不精益了。
此外,指標(biāo)不但能夠告訴我們哪里做錯了,還能告訴我們性能上是不是有提升,改進的策略是否有效。
直覺會騙人,但是數(shù)據(jù)不會。
六、Sharing(分享)
Sharing(分享)- 是指與他人開放分享成功與失敗的經(jīng)驗,并在錯誤中不斷學(xué)習(xí)改進。
積極分享的目的是實現(xiàn)共同進步,改善整個行業(yè)或者團隊。所以我從能帶團隊開始,一直鼓勵團隊的內(nèi)部分享,和團隊外部的博客分享。
我們能從復(fù)述自己的錯誤中不斷改進,別人也能從學(xué)習(xí)別人的錯誤中找到解決方案。
七、總結(jié)
CALMS模型從DevOps中來,也會一直伴隨我們進入云原生。CALMS模型是一種團隊的思想,每個關(guān)鍵詞都有基本的含義,和結(jié)合自己實際經(jīng)驗學(xué)到的含義。
