DevOps已死,平臺工程才是未來?| 趨勢解讀

在建設(shè)容器云平臺的時候就規(guī)劃了以輕量化容器PaaS平臺為支撐,以“應用管理”為核心的架構(gòu),以PaaS平臺賦能應用的部署、運行、運維管理,提供自動化、自服務化的基礎(chǔ)設(shè)施工具,這其實就是平臺工程所追求的能力。

本文來自微信公眾號“twt企業(yè)IT社區(qū)”,作者/汪照輝。

最近平臺工程的概念很熱,很多人鼓吹DevOps已死,平臺工程才是未來。這本身就是個偽命題,過于武斷。本來也不想多說,但想想還是要澄清一下,免得人云亦云的人多了,總是誤導很多人。

DevOps是什么

DevOps是什么?DevOps的目的是讓開發(fā)作運維嗎?是有很多人鼓吹“誰開發(fā)誰運維”,但是否深入理解了“誰開發(fā)誰運維”的核心內(nèi)涵?是否想過“誰開發(fā)誰運維”要解決什么問題?

如果僅僅是遵循別人鼓吹的方法,而不去考慮為什么,那一定會是教條主義的,一定會和實際有沖突的。不同的環(huán)境照搬別人的方法,可能平滑運行嗎?所以,在采取某種方法的時候一定要根據(jù)自身實際來考慮、來剪裁、來調(diào)整以使其適應自身的環(huán)境和實際。DevOps本質(zhì)是一種方法論。

SRE讓運維人員參與開發(fā)并通過錯誤預算來協(xié)調(diào)研發(fā)和運維之間的關(guān)系,以確保軟件系統(tǒng)的可靠性滿足某項指標要求。這或許給DevOps方法論帶來了啟示,也因此可以說DevOps方法論的核心是協(xié)調(diào)和平衡研發(fā)和運維的利益訴求,而不是去實現(xiàn)一個DevOps平臺或CICD工具鏈。所以DevOps嘗試解決的是生產(chǎn)關(guān)系問題,而不是生產(chǎn)工具和生產(chǎn)力問題。

SRE可以看作是DevOps的一種實踐,但SRE是偏運維的,關(guān)注的是軟件的可靠性問題。為了讓運維人員熟悉軟件的處理邏輯和異常處理,以便更快的實現(xiàn)故障定位和故障恢復,SRE被要求其開發(fā)工作量不低于50%。這是一種很好的嘗試,嘗試讓運維人員熟悉研發(fā),對軟件架構(gòu)和設(shè)計、軟件代碼和邏輯等有深入的認識和理解,這樣遇到軟件異常和故障時就能快速判斷根因所在,快速的解決問題。

運維人員可以做開發(fā),開發(fā)者為什么就不能做運維?開發(fā)者就高人一等嗎?你不懂運維你如何能設(shè)計開發(fā)出滿足可靠性要求的軟件?不懂網(wǎng)絡、不懂存儲、不懂部署架構(gòu)、不懂操作系統(tǒng)等基本內(nèi)容,如何讓你開發(fā)的軟件匹配實際環(huán)境要求?不了解、不理解基礎(chǔ)設(shè)施,就難以設(shè)計開發(fā)出高可靠性的軟件。就像你不懂數(shù)據(jù)庫,如何能寫出高優(yōu)化的SQL語句?

DevOps方法論的目的并不是非要讓開發(fā)人員去做運維,特別是運維不熟悉的基礎(chǔ)設(shè)施。但開發(fā)人員需要對基礎(chǔ)設(shè)施有基本認識,需要具備相應的知識和認知,在軟件研發(fā)時避免引入低級的錯誤和不必要的麻煩,以提升系統(tǒng)可靠性,減少運行故障。軟件工程中,人是最大的不可控因素。軟件人員的效率和其認知及情緒密切相關(guān)。也因此協(xié)調(diào)和平衡好軟件工程中相關(guān)人員的利益訴求,使其沒有后顧之憂,是DevOps方法論重要的使命之一。

平臺工程是什么

平臺工程又是一個新概念,但其本質(zhì)并沒有質(zhì)變。為什么現(xiàn)在很多人提平臺工程而去貶低DevOps?這本身就是因為兩個概念前后錯位的問題。

平臺工程追求的是自服務敏捷基礎(chǔ)設(shè)施能力,這在多年前云原生中就已經(jīng)提出來了,只是大家都習慣于單體系統(tǒng)的建設(shè),對底層基礎(chǔ)設(shè)施能力沒有統(tǒng)一的要求,但云計算使底層基礎(chǔ)設(shè)施成為一個統(tǒng)一的平臺。云原生應用的研發(fā)和部署運維對統(tǒng)一的平臺支撐能力有了明確的要求,平臺工程才被重視。

由于前期對DevOps的錯誤認知和不重視自服務敏捷基礎(chǔ)設(shè)施的建設(shè),把DevOps方法論等同于去構(gòu)建基礎(chǔ)的研發(fā)運維支撐平臺,讓研發(fā)人員去做運維但卻沒有基礎(chǔ)設(shè)施的支撐和賦能,所以導致開發(fā)人員的心里落差,對DevOps沒有好感。筆者幾年前就強調(diào)過:運維的敏捷才能真正帶來研發(fā)的敏捷。沒有自服務敏捷基礎(chǔ)設(shè)施的支撐,讓研發(fā)人員去做運維會使生產(chǎn)力達不到生產(chǎn)關(guān)系的要求。

DevOps是方法論,協(xié)調(diào)的是生產(chǎn)關(guān)系;平臺工程追求的是工具賦能,是生產(chǎn)工具;生產(chǎn)工具體現(xiàn)著生產(chǎn)力。也因此說科技是第一生產(chǎn)力,科技進步會帶來生產(chǎn)工具變革,從而使生產(chǎn)力變變革,推動生產(chǎn)關(guān)系變革。正是因為平臺工程的能力沒有實現(xiàn)就去做DevOps,明顯是生產(chǎn)關(guān)系超前了,生產(chǎn)力跟不上,就像曾經(jīng)的空想社會主義一樣,結(jié)果是失敗的。

所以平臺工程是基礎(chǔ),構(gòu)建新的生產(chǎn)工具,代表新的生產(chǎn)力,理論上應該先推行,以促進生產(chǎn)力的變革,從而促進生產(chǎn)關(guān)系的變革。否則,只會使先進的生產(chǎn)關(guān)系是無法適應的,使先進的生產(chǎn)關(guān)系水土不服。這也是目前在推不動DevOps的時候開始關(guān)注平臺工程。并不是DevOps不好,而是關(guān)系錯位了。

DevOps的推行需要良好的自服務敏捷基礎(chǔ)設(shè)施的建設(shè),也就是平臺工程所追求和需要實現(xiàn)的。平臺工程的價值在于提供統(tǒng)一的標準的基礎(chǔ)設(shè)施,賦能研發(fā)、運維等相關(guān)人員,從而減少這些人員的重復建設(shè)工作量,提升效率和敏捷性,做到運維的敏捷。所以說運維的敏捷是基礎(chǔ),以更好的支撐研發(fā)的敏捷。

平臺工程關(guān)注的能力是層次架構(gòu)分層中的中下層基礎(chǔ)設(shè)施能力,DevOps關(guān)注的是應用生命周期中的利益平衡和協(xié)調(diào)問題。DevOps落地需要平臺工程的支撐,或者說,平臺工程是DevOps方法論中的一部分。兩者并不矛盾,不是非此即彼的問題,而是相輔相成的。

360截圖16251112669372.png

再看SRE的價值是什么

SRE其實比較好的解決了平臺工程的問題。筆者一直也強調(diào)運維基礎(chǔ)設(shè)施和運維平臺的重要性。在建設(shè)容器云平臺的時候就規(guī)劃了以輕量化容器PaaS平臺為支撐,以“應用管理”為核心的架構(gòu),以PaaS平臺賦能應用的部署、運行、運維管理,提供自動化、自服務化的基礎(chǔ)設(shè)施工具,這其實就是平臺工程所追求的能力。SRE關(guān)注運維,關(guān)注用軟件工程的方法來運維、實現(xiàn)自動化、自服務化、平臺化等,從而提升可靠性。SRE也通過“數(shù)字”來和研發(fā)進行協(xié)調(diào),是數(shù)字化的很好嘗試。但由于其早期探索性,還在不斷的發(fā)展中,也有一定的局限性。

將SRE、DevOps和平臺工程等結(jié)合來看,可以更好的認識和理解系統(tǒng)的建設(shè)思路和發(fā)展趨勢。我們不能簡單的把這些概念割裂開來去看待,否則就容易得出非此即彼的錯誤認知。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論