一文讀懂云原生2.0時(shí)代的DevOps體系框架 | IDCF

來(lái)源:華為云DevCloud
作者:姚冬
一、云原生緣起

二、企業(yè)應(yīng)用架構(gòu)發(fā)展歷程

組件化、松耦合、自治、去中心化? 一組小的服務(wù)? 獨(dú)立部署運(yùn)行和擴(kuò)展? 獨(dú)立開發(fā)和演化? 獨(dú)立團(tuán)隊(duì)和自治?
三、微服務(wù)有高度,采納需謹(jǐn)慎

四、云原生能力構(gòu)建

采用服務(wù)化架構(gòu)/微服務(wù)架構(gòu)實(shí)現(xiàn)全面解耦:把系統(tǒng)劃分多個(gè)功能內(nèi)聚、粒度合適、業(yè)務(wù)邊界清晰、獨(dú)立自治的服務(wù)/微服務(wù)。以(微)服務(wù)為單位演進(jìn)系統(tǒng)架構(gòu),演進(jìn)式的以絞殺者模式,而不是革命式的一次性改造;單個(gè)(微)服務(wù)以大于一個(gè)的無(wú)狀態(tài)進(jìn)程運(yùn)行,實(shí)現(xiàn)自身的高可用和負(fù)載均衡;把業(yè)務(wù)數(shù)據(jù)分布到不同的(微)服務(wù)中實(shí)現(xiàn)數(shù)據(jù)的垂直切分;? 通過(guò)API,重用云原生公共服務(wù)提供的基礎(chǔ)能力和架構(gòu)能力:內(nèi)部每個(gè)(微)服務(wù)須充分利用云原生的公共服務(wù)提供底層基礎(chǔ)能力,例如微服務(wù)管控與生命周期管理服務(wù)、數(shù)據(jù)庫(kù)服務(wù)、消息隊(duì)列服務(wù)、緩存服務(wù)等;內(nèi)部每個(gè)(微)服務(wù)須充分利用應(yīng)用與資源編排服務(wù),實(shí)現(xiàn)部署、配置自動(dòng)化;? 通過(guò)API,打造生態(tài)化經(jīng)濟(jì):API是非常重要的方式,除了定義服務(wù)之間的業(yè)務(wù)邊界,更重要的是可以通過(guò)API的方式做整個(gè)生態(tài),數(shù)字化轉(zhuǎn)型中比如開放銀行,都是這樣的思路,搭一個(gè)平臺(tái),通過(guò)各種合作伙伴在不同的行業(yè)、不同的領(lǐng)域提供相關(guān)的服務(wù),這些服務(wù)是相互進(jìn)行連接,通過(guò)鏈接和網(wǎng)絡(luò)的思維來(lái)去做這個(gè)事情。華為云也在打造自己的API生態(tài)。
系統(tǒng)與環(huán)境、流程、配置解耦:與架構(gòu)層面解耦相匹配,系統(tǒng)和環(huán)境、流程、配置等等需要解耦,工程層面也需要去相應(yīng)的匹配跟解耦。開發(fā)、測(cè)試、生產(chǎn)環(huán)境等價(jià),屏蔽環(huán)境差異性;采納不可變的基礎(chǔ)設(shè)施(immutable infrastructure);? 構(gòu)建端到端的DevOps研發(fā)體系:研發(fā)流程標(biāo)準(zhǔn)化、敏捷化;嚴(yán)格的區(qū)分構(gòu)建、分布、運(yùn)行的準(zhǔn)入準(zhǔn)出,并進(jìn)行版本化和自動(dòng)化;全自動(dòng)化測(cè)試(單元測(cè)試、集成測(cè)試、自動(dòng)生成Mock依賴服務(wù));一切皆代碼,代碼、配置與環(huán)境嚴(yán)格分離,并進(jìn)行版本化和自動(dòng)化;(微)服務(wù)持續(xù)交付流水線(按需發(fā)布版本);? 研發(fā)運(yùn)維一體化:運(yùn)維和開發(fā)互相融合,高度協(xié)同,共擔(dān)職責(zé);自動(dòng)監(jiān)控,持續(xù)可視化反饋,并最終傳導(dǎo)到開發(fā)團(tuán)隊(duì);按需實(shí)時(shí)部署、配置熱加載實(shí)時(shí)生效;? 使用自服務(wù)、敏捷的云化基礎(chǔ)設(shè)施服務(wù):基礎(chǔ)設(shè)施以自服務(wù)的方式對(duì)開發(fā)團(tuán)隊(duì)提供。依賴底層云化基礎(chǔ)設(shè)施的計(jì)算服務(wù)、存儲(chǔ)服務(wù)、網(wǎng)絡(luò)服務(wù)提供基礎(chǔ)運(yùn)行資源;使用云監(jiān)控服務(wù)監(jiān)控自身的運(yùn)行狀態(tài)包括基礎(chǔ)資源使用狀態(tài)、自身業(yè)務(wù)運(yùn)行狀態(tài),同時(shí)根據(jù)自身運(yùn)行狀態(tài)觸發(fā)相應(yīng)的運(yùn)維事件,實(shí)現(xiàn)彈性伸縮、故障自愈等關(guān)鍵架構(gòu)特征; 核心度量外部指標(biāo):業(yè)務(wù)層面的核心的一個(gè)業(yè)務(wù)指標(biāo)叫TTM,在DevOps有另外一個(gè)詞叫Lead Time,就是你的前置時(shí)間,從業(yè)務(wù)需求提出來(lái)那一刻起,到這個(gè)業(yè)務(wù)需求上線的時(shí)間叫前置時(shí)間,這個(gè)是可以被客戶可知的,所以是端到端的業(yè)務(wù)指標(biāo)。技術(shù)層面,對(duì)應(yīng)的有多個(gè)前置時(shí)間,工程這一側(cè)的,則是從提交代碼那一刻起,一直到代碼上線,這段時(shí)間是完全工程可控的,理論上應(yīng)該是控制在分鐘級(jí)。這個(gè)指標(biāo),也是華為云最為看重的一個(gè)。?
遵循康威定律:應(yīng)用的架構(gòu)和組織架構(gòu)之間是高度的匹配,單體的應(yīng)用,逐漸到服務(wù)化的方式,到逐漸分布式的模式。組織架構(gòu)也是轉(zhuǎn)移到自組織,沒(méi)有一個(gè)唯一的中心在里面,自組織團(tuán)隊(duì)的敏捷性與多樣性需要兼顧。整個(gè)團(tuán)隊(duì)的規(guī)模,典型的就是5-10人規(guī)模;? 全功能團(tuán)隊(duì):從全功能團(tuán)隊(duì)一直到云化的運(yùn)維團(tuán)隊(duì)。以服務(wù)為單位組織整個(gè)團(tuán)隊(duì),涵蓋設(shè)計(jì)、開發(fā)、測(cè)試、發(fā)布、部署、運(yùn)維全流程職能;開發(fā)人員、發(fā)布工程師、IT和運(yùn)維之間可信合作;? 云化運(yùn)維團(tuán)隊(duì):基于云平臺(tái)的提供的監(jiān)控、報(bào)警等能力,成立專門的團(tuán)隊(duì)負(fù)責(zé)系統(tǒng)運(yùn)行時(shí)的質(zhì)量,保障系統(tǒng)可用性和業(yè)務(wù)無(wú)中斷的升級(jí)、回滾;? 自主經(jīng)營(yíng),面向服務(wù)的全生命周期:逐漸轉(zhuǎn)型為自主經(jīng)營(yíng)的全功能團(tuán)隊(duì)。除了技術(shù)棧是全功能以外,每一個(gè)服務(wù)化的團(tuán)隊(duì)都需要面向服務(wù)進(jìn)行全生命周期的考慮,除了技術(shù)層面的怎么樣去產(chǎn)品的設(shè)計(jì)、開發(fā)出來(lái)部署,架構(gòu)層面保持優(yōu)美,更多的還需要去考慮商業(yè)層面的東西,需要考慮服務(wù)定位,考慮產(chǎn)品上線以后,運(yùn)營(yíng)層面應(yīng)該做什么事情,應(yīng)該做什么樣的拉新的活動(dòng),怎么樣促活,怎么樣留存。整個(gè)團(tuán)隊(duì)都需要有商業(yè)思維和產(chǎn)品運(yùn)營(yíng)的思維。這是整個(gè)思維上的轉(zhuǎn)變,去考慮這個(gè)服務(wù)為什么這么做、誰(shuí)去用、用的場(chǎng)景是什么,怎樣完成商業(yè)的閉環(huán)。

五、持續(xù)交付實(shí)施框架

六、云原生時(shí)代的DevOps體系框架

從商業(yè)決策上由基于Gate(Charter/DCP)的業(yè)務(wù)決策,轉(zhuǎn)變?yōu)榛贠BP的周期性審視;? 從服務(wù)化組織上,支持E2E全功能團(tuán)隊(duì),開發(fā)運(yùn)維一體化,對(duì)團(tuán)隊(duì)充分授權(quán);? 從架構(gòu)上進(jìn)行服務(wù)化解耦,支持按服務(wù)小包獨(dú)立交付; 從開發(fā)和運(yùn)維流程上,加強(qiáng)開發(fā)與運(yùn)維的協(xié)同,支持更短的周期,更快的反饋;? 從IT工具環(huán)境上,重用已有的成熟工具,引入先進(jìn)的開源和商用軟件,實(shí)現(xiàn)輕量級(jí)端到端DevOps工具鏈;? 從服務(wù)流程上,支持服務(wù)的獨(dú)立交付,自動(dòng)化的環(huán)境部署。?

評(píng)論
圖片
表情

