《移動運營商的DevOps實踐課件》由會員分享,可在線閱讀,更多相關(guān)《移動運營商的DevOps實踐課件(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,1/24/2019,#,1/24/2019,#,技術(shù)創(chuàng)新,變革未來,移動運營商的,DevOps,實踐,技術(shù)創(chuàng)新 變革未來移動運營商的DevOps實踐,1,目錄,運營商的,Devops,成熟,度,結(jié)果,1,搭建彈性高可用,的,構(gòu),建,環(huán)境,2,代碼質(zhì)量檢查提,前,到,開,發(fā),階,段,3,安全高效的應(yīng)用,部,署,4,小結(jié)和思考,5,目錄運營商的Devops成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境,2,研發(fā)運營一體化成熟度評估是什么,一級,二級,三級,四級,五級,初始級,基礎(chǔ)級,全面級,優(yōu)秀級,卓越級,在組織局部范圍內(nèi)開始嘗試,D,e,v,O,p,s,活動并獲得初期效果,在組織較大范圍內(nèi)推行,D,e,
2、v,O,p,s,實踐并獲得局部效率提升,在組織內(nèi)全面推行,D,e,v,O,p,s,實踐并貫穿軟件全生命周期獲得整體效率提升 在組織內(nèi)全面落地,DevOps,并可按需交付用戶價值達到整體效率最優(yōu)化,在組織內(nèi)全面形成持續(xù)改進的文化并不斷驅(qū)動,D,e,v,O,p,s,在更大范圍內(nèi)取得成功,研發(fā)運營一體化成熟度評估是什么一級二級三級四級五級初始級 在,3,持續(xù)交付能力成熟度評估根據(jù)配置管理、構(gòu)建與持續(xù)集成、測試管理、部署與發(fā)布管理、環(huán)境管理、數(shù)據(jù) 管理、度量與反饋等,七大領(lǐng)域,十四個維度,進行。,持續(xù)交付,配置管理,構(gòu)建與持續(xù)集 成,測試管理,部署與發(fā)布管理,環(huán)境管理,數(shù)據(jù)管理,度量與反饋,版本管理,
3、構(gòu)建實踐,測試分層管理,部署與發(fā)布模式,環(huán)境管理,測試數(shù)據(jù)管理,度量指標(biāo),變更管理,持續(xù)集成,代碼質(zhì)量管理,持續(xù)部署流水線,數(shù)據(jù)變更管理,度量驅(qū)動改進,自動化測試,持續(xù)交付成熟評估,持續(xù)交付能力成熟度評估根據(jù)配置管理、構(gòu)建與持續(xù)集成、測試管理,4,評估方式,持續(xù)部署流水線,級別,構(gòu)建方式,構(gòu)建環(huán)境構(gòu)建計劃,構(gòu)建職責(zé),卓越級,持續(xù)改進服務(wù)易用性,持續(xù)改進構(gòu)建性能,實現(xiàn),持續(xù)優(yōu)化的構(gòu)建服務(wù)平臺,,構(gòu)建資源動態(tài)按需分配回,分級構(gòu)建計劃,實現(xiàn)按需,收,如搭建基于云服務(wù)虛,構(gòu)建并達到資源和速度的,擬化和容器化的分布式構(gòu),有效平衡,建集群,將 成,構(gòu)建能力賦予全部團隊 員,并按需觸發(fā)構(gòu)建實,現(xiàn)快速反饋,優(yōu)
4、秀級,分 構(gòu),優(yōu)化構(gòu)建速度,實現(xiàn)增量,實現(xiàn)構(gòu)建服務(wù)化,可按需,化構(gòu)建和模塊化構(gòu)建,如,級構(gòu)建計劃,實現(xiàn)按需,構(gòu)建系統(tǒng)服務(wù)化提供更多,提供接口和用戶界面用于,可采用分布式構(gòu)建集群、,建并達到資源和速度的,用戶使用,構(gòu)建不再局限,可視化構(gòu)建編排,構(gòu)建緩存等技術(shù),實現(xiàn)構(gòu),有效平衡于專業(yè)團隊進行,建資源的共享,全部級,實 一,定義結(jié)構(gòu)化構(gòu)建腳本,現(xiàn)模塊級共享復(fù)用和統(tǒng),維護,有獨立的構(gòu)建集群,構(gòu)建環(huán)境配置實現(xiàn)標(biāo)準(zhǔn)化,,,明確定義構(gòu)建計劃和規(guī)則,,,構(gòu)建工具和環(huán)境由專門團,實現(xiàn)代碼提交觸發(fā)構(gòu)建和,隊維護,并細分團隊人員 定期自動執(zhí)行構(gòu)建職責(zé),基礎(chǔ)級,實,明確定義版本號規(guī)則,并,現(xiàn)腳本自動化,通過手,有獨立
5、的構(gòu)建服務(wù)器,多,根據(jù)發(fā)布策略細分構(gòu)建類,構(gòu)建工具和環(huán)境由專人負,工配置完成構(gòu)建種任務(wù)共享構(gòu)建環(huán)境型,實現(xiàn)每日自動構(gòu)建,責(zé)維護,并使用權(quán)限隔離,初始級,不可靠,構(gòu)建過程不可重復(fù),構(gòu)建任務(wù)計劃,采用手工方式進行構(gòu)建,,使用本地設(shè)備,構(gòu)建環(huán)境,沒有明確的版本號規(guī)則和,構(gòu)建工具和環(huán)境受限于團,隊人員能力,頻繁手動干 預(yù)維護,在能力子項目里,對每個級別做了明確的要求,定基準(zhǔn):確定最快、最好 效率的初步行動,查補缺:哪些實踐必是必須的,評估的方式:,人員訪,談,、材料審查、模式演示,指方向:躍遷需要做什么,評估方式持續(xù)部署流水線級別構(gòu)建方式構(gòu)建環(huán)境構(gòu)建計劃構(gòu)建職責(zé),5,評估結(jié)果,能力域,能力子域,能力項
6、,能力指標(biāo)項,能力得分,評級,持續(xù)交付,配置管理,版本控制,版本控制系統(tǒng),三級,效率和質(zhì) 量提升點,三級,優(yōu)勢點,分支管理,制品管理,單一可信數(shù)據(jù)源,變更管理,變更過程,變更追溯,變更回滾,構(gòu)建與持續(xù) 集成,構(gòu)建實踐,構(gòu)建方式,四級,構(gòu)建環(huán)境,構(gòu)建計劃,構(gòu)建職責(zé),持續(xù)集成,集成服務(wù),集成頻率,集成方式,反饋周期,測試管理,測試分級策略,分層方法,四級,分層策略,測試時機,代碼質(zhì)量管理,質(zhì)量規(guī)約,檢查方式,反饋處理,測試自動化,自動化設(shè)計,自動化開發(fā),自動化執(zhí)行,自動化分析,部署與發(fā)布 管理,部署與發(fā)布模式,部署方式,三級,部分過程,部署策略,部署質(zhì)量,持續(xù)部署流水線,協(xié)作模式,流水線過程,過程
7、可視化,環(huán)境管理,環(huán)境管理,環(huán)境類型,四級,環(huán)境構(gòu)建,環(huán)境依賴與配置管理,數(shù)據(jù)管理,測試數(shù)據(jù)管理,數(shù)據(jù)來源,三級,數(shù)據(jù)覆蓋,數(shù)據(jù)獨立性,數(shù)據(jù)變更管理,變更過程,兼容回滾,數(shù)據(jù)監(jiān)控,度量與反饋,度量指標(biāo),度量指標(biāo)定義,三級,度量指標(biāo)類型,度量數(shù)據(jù)管理,度量指標(biāo)更新,內(nèi)容和生產(chǎn)方式,度量驅(qū)動改進,數(shù)據(jù)和生產(chǎn)方式,數(shù)據(jù)失效性,覆蓋范圍,反饋改進,構(gòu)建和持續(xù)集成,l,構(gòu)建腳本版本管理,l,構(gòu)建環(huán)境容器化,l,構(gòu)建資源彈性高可用,代碼質(zhì)量管理,l,pre-commit,檢查代碼,環(huán)境管理,l,容器的大規(guī)模應(yīng)用,持續(xù)部署流水線,l,Jar,包發(fā)布,l,數(shù)據(jù)與代碼部署分離,變更管理,l,變更項多,觸發(fā)來源廣
8、,評估結(jié)果能力域能力子域能力項能力指標(biāo)項能力得分評級版本控制系,6,人,流程,技術(shù),構(gòu)建和部署活,動,參與的角色 和職責(zé),個人,全棧工程師,團隊,人員合理地安排在 一起,合理地組織起來協(xié) 作,代碼提交流程,,C,o,de,Review,代碼構(gòu)建流程,持續(xù)集成流 水線,應(yīng)用發(fā)布流程,部署流水線,線,源碼、依賴包、制品的管理 工具和方式,代碼質(zhì)量檢查和漏洞分析的 策略和工具,構(gòu)建和部署使用的工具,能力和容量,構(gòu)建和部署要解決的問題,代碼,構(gòu)建關(guān)注軟件代碼到可運行程序之間的過程,通過規(guī)則、資源和工具的有效結(jié)合,提升構(gòu)建 質(zhì)量和構(gòu)建速度,使構(gòu)建成為一個輕量級,可靠可重復(fù)的過程。,部署和發(fā)布模式關(guān)注交付
9、過程中的具體實踐,,將部署活動自動化并前移到研發(fā)階段,,通過頻繁的,演練和實踐部署活動,成為研發(fā)日常工作的一部分,可靠、可重復(fù)的完成部署發(fā)布任務(wù)。,打造,DevOps,工具鏈平臺支撐應(yīng)用構(gòu)建部署,人流程技術(shù)構(gòu)建和部署活動參與的角色 和職責(zé)代碼提交流程,Co,7,目錄,運營商的,Devops,成熟,度,結(jié)果,1,搭建彈性高可用,的,構(gòu),建,環(huán)境,2,代碼質(zhì)量檢查提,前,到,開,發(fā),階,段,3,安全高效的應(yīng)用,部,署,4,小結(jié)和思考,5,目錄運營商的Devops成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境,8,痛點:應(yīng)用接入平臺構(gòu)建的困難,用戶的困難,腳本管理,沒有構(gòu)建腳本,或者 構(gòu)建腳本是個黑盒,職責(zé)調(diào)
10、整,管理構(gòu)建的職責(zé)集中 在,BM,異常處理,使用平臺后構(gòu)建過程 中出錯誰負責(zé),平臺的困難,團隊的差異,代碼、依賴、配置 的管理工具和模式不一樣,工具的差異,應(yīng)用的差異性很大,語言、版本、工具都不相同,規(guī)模,應(yīng)用接入的速度太多,構(gòu) 建資源和管理模式跟不上,痛點:應(yīng)用接入平臺構(gòu)建的困難用戶的困難 平臺的困難,9,舉措一:三步提升構(gòu)建腳本管理,版本管理,構(gòu)建指令的持久化,構(gòu)建腳本版本管理,腳本管理的目標(biāo):腳本可以在任意構(gòu)建主機構(gòu)建應(yīng)用,構(gòu)建過程腳本化,從無到有,為應(yīng)用編寫構(gòu)建腳本,規(guī)范代碼目錄結(jié)構(gòu),規(guī)范應(yīng)用依賴管理,構(gòu)建腳本可以在 任意主機執(zhí)行,從繁到簡,統(tǒng)一代碼倉庫,統(tǒng)一依賴倉庫管理,統(tǒng)一配置管理
11、,去除對本地目錄的依賴,根據(jù)語言、工具自動生成,應(yīng)用編寫構(gòu)建腳本,實現(xiàn)構(gòu)建過程腳本化管理。去除腳本對構(gòu)建主機本地資源的依賴,統(tǒng)一配置 和依賴的管理,標(biāo)準(zhǔn)化的應(yīng)用能夠自動生成構(gòu)建指令。構(gòu)建腳本版本管理,腳本快速獲取,變更過程 可以追溯。,構(gòu)建腳本可以快速獲取,舉措一:三步提升構(gòu)建腳本管理版本管理 腳本管理的目標(biāo):腳本可,10,舉措二:容器化構(gòu)建環(huán)境,構(gòu)建環(huán)境容器化,通過容器封裝不同語言、工具導(dǎo)致構(gòu)建環(huán)境的差異,通過容器規(guī)格劃分和彈性提 升構(gòu)建環(huán)境的資源利用率。,屏蔽編譯環(huán)境差異:不同的容器包含 不同的編譯工具和環(huán)境配置。,提升構(gòu)建主機利用率:在同一個構(gòu) 建主機上啟動多個容器,提升主機 資源的利用
12、率。,構(gòu)建任務(wù)配置:編譯工具和資源訴 求分配對應(yīng)的,mesos,標(biāo)簽,舉措二:容器化構(gòu)建環(huán)境屏蔽編譯環(huán)境差異:不同的容器包含 不同,11,舉措三:搭建彈性高可用的構(gòu)建環(huán)境,Jenkins-maser,高可用,只有一個,jenkins,master,NFS,共享,config,文件,Jenkins-slave,彈性擴縮,jenkins,master,注冊成為Framework,一個,slave,容器只分配一個job,Z,Z,Z,Z,oo,k,ee,p,e,r,quorum,Mesos,Master,Standby,Mesos,On,docker,Jenkins,Slave,J,J,o,o,b,b
13、,J,o,b,Jenkins,Slave,J,J,o,o,b,b,Mesos,slave,On,docker,Jenkins,Slave,J,J,o,o,b,b,J,o,b,Jenkins,Slave,J,J,o,o,b,b,Mesos,slave,Jenkins,Slave,J,J,o,o,b,b,O,n,d,o,c,k,e,r,J,o,b,Jenkins,Slave,J,J,o,o,b,b,Mesos,slave,Marathon,Master,Standby,Marathon,NFS,服務(wù),數(shù)據(jù)共享,域名,On,docker,On,docker,On,docker,On,docker,O
14、n,docker,Jenkins,Slave,J,J,o,o,b,b,J,o,b,Jenkins,Slave,J,J,o,o,b,b,J,o,b,J,o,b,J,o,b,J,o,b,Mesos,slave,/,a,pp,/,d,at,a,/,a,pp,/,d,at,a,/,a,pp,/,d,at,a,/,a,pp,/,d,at,a,On,docker,Jenkins,Slave,Jo,Jo,b,b,J,o,b,Mesos,slave,/,a,pp,/,d,at,a,Jenkins,Master,Jenkins,申請資源啟動,jenkins,slave,Jenkins,分配任務(wù),舉措三:搭建彈性
15、高可用的構(gòu)建環(huán)境Jenkins-maser高,12,舉措四:劃分構(gòu)建流水線類型明確職責(zé),下載編譯代碼掃描單元測試制品上傳,鏡像制作,開發(fā)部署,準(zhǔn)發(fā)流水線,測試流水線,下載,編譯,代碼掃描,單元測試,制品上傳,鏡像制作,測速部署,自動化 測試,漏洞掃描,下載,編譯,代碼掃描,單元測試,制品上傳,鏡像制作,準(zhǔn)發(fā)部署,入網(wǎng)驗收,測試報告,作用:快速集,成,開發(fā)聯(lián)調(diào) 角色:開發(fā),時,間,:,代碼提交,觸,發(fā),jenkins自動構(gòu)建 手工觸發(fā)代,碼,構(gòu)建,進行開發(fā)聯(lián)調(diào),作用:測試驗證 角色:測試,開發(fā) 時,間,:,定時構(gòu)建,特定時間點發(fā)布測試環(huán)境 代碼合,并,、手工觸發(fā),驗證新功能,功能:上線前驗證 角
16、色,:BM,,運維 時間:,手工觸發(fā),迭代結(jié)束前生成上線發(fā)布版本,通過代碼質(zhì)量管理提升代碼構(gòu)建的成功率,減少流水線中斷,團隊內(nèi)部不同角色負責(zé)對應(yīng)類型的流水線,開發(fā)流水線,舉措四:劃分構(gòu)建流水線類型明確職責(zé)下載編譯代碼掃描單元,13,目錄,運營商的,Devops,成熟,度,結(jié)果,1,搭建彈性高可用,的,構(gòu),建,環(huán)境,2,代碼質(zhì)量檢查提,前,到,開,發(fā),階,段,3,安全高效的應(yīng)用,部,署,4,小結(jié)和思考,5,目錄運營商的Devops成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境,14,痛點:代碼質(zhì)量檢測難以推行,代碼質(zhì)量管理是在軟件研發(fā)過程中保證代碼質(zhì)量的一種機制,,當(dāng)代碼變更后,,可以對代碼質(zhì) 量進行檢查、分析,給出結(jié)論和改進建議,對代碼質(zhì)量數(shù)據(jù)進行管理,并可以對代碼質(zhì)量進行追溯。,質(zhì)量規(guī)約,檢查方式,反饋處理,不同廠家的開發(fā)標(biāo)準(zhǔn)不 統(tǒng)一,規(guī)范無法落地,成為一,堆紙上文字,全員,Code,Review,不同的人對規(guī)范的理解 不一樣,全員方式占用太多的時 間,提升速度太慢,新人從 頭開始,技術(shù)債務(wù)沒有能及時處 理,歷史的技術(shù)債務(wù)太大無,法償還,大部分團隊沒 有勇氣去解決歷史賬務(wù),痛點:代碼質(zhì)量檢測難