版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
技術創(chuàng)新
變革未來移動運營商的DevOps實踐技術創(chuàng)新變革未來移動運營商的DevOps實踐1目錄運營商的Devops成熟度結果1搭建彈性高可用的構建環(huán)境2代碼質量檢查提前到開發(fā)階段3安全高效的應用部署4小結和思考5
目錄運營商的Devops成熟度結果1搭建彈性高可用的構建環(huán)境2研發(fā)運營一體化成熟度評估是什么一級二級三級四級五級初始級基礎級全面級優(yōu)秀級卓越級
在組織局部范圍內開始嘗試DevOps活動并獲得初期效果在組織較大范圍內推行DevOps實踐并獲得局部效率提升在組織內全面推行DevOps實踐并貫穿軟件全生命周期獲得整體效率提升在組織內全面落地DevOps并可按需交付用戶價值達到整體效率最優(yōu)化在組織內全面形成持續(xù)改進的文化并不斷驅動DevOps在更大范圍內取得成功研發(fā)運營一體化成熟度評估是什么一級二級三級四級五級初始級在3持續(xù)交付能力成熟度評估根據配置管理、構建與持續(xù)集成、測試管理、部署與發(fā)布管理、環(huán)境管理、數據管理、度量與反饋等七大領域,十四個維度進行。
持續(xù)交付配置管理構建與持續(xù)集成測試管理部署與發(fā)布管理環(huán)境管理數據管理度量與反饋版本管理構建實踐測試分層管理部署與發(fā)布模式環(huán)境管理測試數據管理度量指標變更管理持續(xù)集成代碼質量管理持續(xù)部署流水線數據變更管理度量驅動改進自動化測試持續(xù)交付成熟評估持續(xù)交付能力成熟度評估根據配置管理、構建與持續(xù)集成、測試管理4評估方式持續(xù)部署流水線級別構建方式構建環(huán)境 構建計劃構建職責卓越級持續(xù)改進服務易用性持續(xù)改進構建性能,實現持續(xù)優(yōu)化的構建服務平臺,
構建資源動態(tài)按需分配回
分級構建計劃,實現按需收,如搭建基于云服務虛
構建并達到資源和速度的擬化和容器化的分布式構 有效平衡建集群將成構建能力賦予全部團隊員,并按需觸發(fā)構建實現快速反饋優(yōu)秀級分構優(yōu)化構建速度,實現增量實現構建服務化,可按需
化構建和模塊化構建,如 級構建計劃,實現按需
構建系統(tǒng)服務化提供更多提供接口和用戶界面用于
可采用分布式構建集群、 建并達到資源和速度的
用戶使用,構建不再局限可視化構建編排 構建緩存等技術,實現構 有效平衡 于專業(yè)團隊進行建資源的共享全部級實一定義結構化構建腳本,現模塊級共享復用和統(tǒng)維護有獨立的構建集群構建環(huán)境配置實現標準化,明確定義構建計劃和規(guī)則,構建工具和環(huán)境由專門團實現代碼提交觸發(fā)構建和
隊維護,并細分團隊人員定期自動執(zhí)行構建 職責基礎級實明確定義版本號規(guī)則,并現腳本自動化,通過手
有獨立的構建服務器,多
根據發(fā)布策略細分構建類
構建工具和環(huán)境由專人負工配置完成構建 種任務共享構建環(huán)境 型,實現每日自動構建
責維護,并使用權限隔離初始級不可靠構建過程不可重復 構建任務計劃采用手工方式進行構建,
使用本地設備,構建環(huán)境
沒有明確的版本號規(guī)則和
構建工具和環(huán)境受限于團隊人員能力,頻繁手動干預維護在能力子項目里,對每個級別做了明確的要求定基準:確定最快、最好效率的初步行動查補缺:哪些實踐必是必須的評估的方式:人員訪談、材料審查、模式演示指方向:躍遷需要做什么
評估方式持續(xù)部署流水線級別構建方式構建環(huán)境 構建計劃構建職責5評估結果能力域能力子域能力項能力指標項能力得分評級持續(xù)交付配置管理版本控制版本控制系統(tǒng)三級效率和質量提升點三級優(yōu)勢點分支管理制品管理單一可信數據源變更管理變更過程變更追溯變更回滾構建與持續(xù)集成構建實踐構建方式四級構建環(huán)境構建計劃構建職責持續(xù)集成集成服務集成頻率集成方式反饋周期測試管理測試分級策略分層方法四級分層策略測試時機代碼質量管理質量規(guī)約檢查方式反饋處理測試自動化自動化設計自動化開發(fā)自動化執(zhí)行自動化分析部署與發(fā)布管理部署與發(fā)布模式部署方式三級部分過程部署策略部署質量持續(xù)部署流水線協(xié)作模式流水線過程過程可視化環(huán)境管理環(huán)境管理環(huán)境類型四級環(huán)境構建環(huán)境依賴與配置管理數據管理測試數據管理數據來源三級數據覆蓋數據獨立性數據變更管理變更過程兼容回滾數據監(jiān)控度量與反饋度量指標度量指標定義三級度量指標類型度量數據管理度量指標更新內容和生產方式度量驅動改進數據和生產方式數據失效性覆蓋范圍反饋改進√構建和持續(xù)集成l 構建腳本版本管理l 構建環(huán)境容器化l 構建資源彈性高可用√代碼質量管理l pre-commit檢查代碼環(huán)境管理l 容器的大規(guī)模應用√持續(xù)部署流水線l Jar包發(fā)布l 數據與代碼部署分離變更管理l 變更項多,觸發(fā)來源廣
評估結果能力域能力子域能力項能力指標項能力得分評級版本控制系6人流程技術構建和部署活動參與的角色和職責個人,全棧工程師團隊,人員合理地安排在一起,合理地組織起來協(xié)作代碼提交流程,CodeReview代碼構建流程,持續(xù)集成流水線應用發(fā)布流程,部署流水線線源碼、依賴包、制品的管理工具和方式代碼質量檢查和漏洞分析的策略和工具構建和部署使用的工具能力和容量
構建和部署要解決的問題代碼構建關注軟件代碼到可運行程序之間的過程,通過規(guī)則、資源和工具的有效結合,提升構建質量和構建速度,使構建成為一個輕量級,可靠可重復的過程。部署和發(fā)布模式關注交付過程中的具體實踐,
將部署活動自動化并前移到研發(fā)階段,
通過頻繁的演練和實踐部署活動,成為研發(fā)日常工作的一部分,可靠、可重復的完成部署發(fā)布任務。打造DevOps工具鏈平臺支撐應用構建部署人流程技術構建和部署活動參與的角色和職責代碼提交流程,Co7目錄運營商的Devops成熟度結果1搭建彈性高可用的構建環(huán)境2代碼質量檢查提前到開發(fā)階段3安全高效的應用部署4小結和思考5
目錄運營商的Devops成熟度結果1搭建彈性高可用的構建環(huán)境8痛點:應用接入平臺構建的困難用戶的困難腳本管理,沒有構建腳本,或者構建腳本是個黑盒職責調整,管理構建的職責集中在BM異常處理,使用平臺后構建過程中出錯誰負責
平臺的困難團隊的差異,代碼、依賴、配置的管理工具和模式不一樣工具的差異,應用的差異性很大,語言、版本、工具都不相同規(guī)模,應用接入的速度太多,構建資源和管理模式跟不上痛點:應用接入平臺構建的困難用戶的困難平臺的困難9舉措一:三步提升構建腳本管理版本管理構建指令的持久化構建腳本版本管理
腳本管理的目標:腳本可以在任意構建主機構建應用構建過程腳本化從無到有為應用編寫構建腳本規(guī)范代碼目錄結構規(guī)范應用依賴管理構建腳本可以在任意主機執(zhí)行從繁到簡統(tǒng)一代碼倉庫統(tǒng)一依賴倉庫管理統(tǒng)一配置管理去除對本地目錄的依賴根據語言、工具自動生成應用編寫構建腳本,實現構建過程腳本化管理。去除腳本對構建主機本地資源的依賴,統(tǒng)一配置和依賴的管理,標準化的應用能夠自動生成構建指令。構建腳本版本管理,腳本快速獲取,變更過程可以追溯。構建腳本可以快速獲取舉措一:三步提升構建腳本管理版本管理腳本管理的目標:腳本可10舉措二:容器化構建環(huán)境構建環(huán)境容器化,通過容器封裝不同語言、工具導致構建環(huán)境的差異,通過容器規(guī)格劃分和彈性提升構建環(huán)境的資源利用率。屏蔽編譯環(huán)境差異:不同的容器包含不同的編譯工具和環(huán)境配置。提升構建主機利用率:在同一個構建主機上啟動多個容器,提升主機資源的利用率。構建任務配置:編譯工具和資源訴求分配對應的mesos標簽
舉措二:容器化構建環(huán)境屏蔽編譯環(huán)境差異:不同的容器包含不同11舉措三:搭建彈性高可用的構建環(huán)境Jenkins-maser高可用只有一個jenkins
masterNFS共享config文件Jenkins-slave彈性擴縮jenkins
master注冊成為Framework一個slave容器只分配一個jobZZZZookeeperquorumMesosMasterStandbyMesosOn
dockerJenkins
SlaveJJoobbJobJenkins
SlaveJJoobbMesos
slaveOn
dockerJenkins
SlaveJJoobbJobJenkins
SlaveJJoobbMesos
slaveJenkins
SlaveJJoobbOn
docker JobJenkins
SlaveJJoobbMesos
slaveMarathonMasterStandbyMarathonNFS服務數據共享域名On
dockerOn
docker On
docker On
docker On
dockerJenkins
SlaveJJoobbJobJenkins
SlaveJJoobbJob Job Job JobMesos
slave/app/data /app/data /app/data /app/dataOn
dockerJenkins
SlaveJoJobbJobMesos
slave/app/dataJenkinsMasterJenkins
申請資源啟動jenkins
slave
Jenkins分配任務舉措三:搭建彈性高可用的構建環(huán)境Jenkins-maser高12舉措四:劃分構建流水線類型明確職責下載 編譯 代碼掃描 單元測試 制品上傳鏡像制作開發(fā)部署準發(fā)流水線測試流水線下載編譯代碼掃描單元測試制品上傳鏡像制作測速部署自動化測試漏洞掃描下載編譯代碼掃描單元測試制品上傳鏡像制作準發(fā)部署入網驗收測試報告作用:快速集成\開發(fā)聯(lián)調角色:開發(fā)時間:代碼提交,觸發(fā)jenkins自動構建手工觸發(fā)代碼構建,進行開發(fā)聯(lián)調
作用:測試驗證角色:測試,開發(fā)時間:定時構建,特定時間點發(fā)布測試環(huán)境代碼合并、手工觸發(fā),驗證新功能功能:上線前驗證角色:BM,運維時間:手工觸發(fā),迭代結束前生成上線發(fā)布版本通過代碼質量管理提升代碼構建的成功率,減少流水線中斷團隊內部不同角色負責對應類型的流水線開發(fā)流水線舉措四:劃分構建流水線類型明確職責下載 編譯 代碼掃描 單元13目錄運營商的Devops成熟度結果1搭建彈性高可用的構建環(huán)境2代碼質量檢查提前到開發(fā)階段3安全高效的應用部署4小結和思考5
目錄運營商的Devops成熟度結果1搭建彈性高可用的構建環(huán)境14痛點:代碼質量檢測難以推行
代碼質量管理是在軟件研發(fā)過程中保證代碼質量的一種機制,
當代碼變更后,
可以對代碼質量進行檢查、分析,給出結論和改進建議,對代碼質量數據進行管理,并可以對代碼質量進行追溯。質量規(guī)約檢查方式反饋處理不同廠家的開發(fā)標準不統(tǒng)一規(guī)范無法落地,成為一堆紙上文字全員Code
Review不同的人對規(guī)范的理解不一樣全員方式占用太多的時間提升速度太慢,新人從頭開始技術債務沒有能及時處理歷史的技術債務太大無法償還,大部分團隊沒有勇氣去解決歷史賬務痛點:代碼質量檢測難以推行代碼質量管理是在軟件研發(fā)過程中保15Sonar掃描代碼能解決的問題規(guī)則落地:所有的規(guī)則和約定,通過代碼規(guī)則配置到soanr。在構建的流水線中對代碼規(guī)則檢查。對質量問題進行通報和跟蹤。代碼質量可視化:通過質量報表展示個應從復雜度分布、重復代碼、單元測試統(tǒng)計、技術債務等維度可視化各應用代碼情況和變化趨勢。不能解決的問題:流水線中斷:流水線構建成功率沒有提升。技術債務:應用的歷史技術債務并沒有隨著減少。團隊或項目組級別規(guī)則次數研發(fā)一組BLOCKERSQLbindingmechanismsshouldbe
used12研發(fā)二組BLOCKERNullpointersshouldnotbe
dereferenced6訂單中心BLOCKERNullpointersshouldnotbe
dereferenced4賬號中心BLOCKERNullpointersshouldnotbe
dereferenced2到期子中心BLOCKERNullpointersshouldnotbe
dereferenced1代碼質量數據采集與分析
Sonar掃描代碼能解決的問題團隊或項目組SQLbind16改進:引入Gerrit工具對代碼進行review(1)引入Gerrit工具進行代碼自動review,將代碼缺陷前置到開發(fā)階段解決
改進:引入Gerrit工具對代碼進行review(1)引入G17改進:引入Gerrit工具對代碼進行review(2)19312848364651200209月3日 9月4日遺留技術債務9月5日 9月6日新增技術債務9月7日當天解決數l提高構建成功率使用Gerrit前置解決代碼缺陷提交代碼git開發(fā)分支開發(fā)人員提交代碼技術債務Gerrit開發(fā)人員構建Sonar掃描不存在 git開發(fā)分支存在代碼提交到倉庫前增加校驗,杜絕質量不合格代碼引入Gerrit前引入Gerrit后缺少校驗,所有問題都遺留構建流水線6584 991050100構建成功率l減少技術債務代碼導致的失敗率實施效果
改進:引入Gerrit工具對代碼進行review(2)19318目錄運營商的Devops成熟度結果1搭建彈性高可用的構建環(huán)境2代碼質量檢查提前到開發(fā)階段3安全高效的應用部署4小結和思考5
目錄運營商的Devops成熟度結果1搭建彈性高可用的構建環(huán)境19痛點:應用接入平臺部署的困難用戶的困難交付物多:一次上線交付物眾多,版本難以對齊流程復雜:上線流程復雜,參與的角色眾多頻率高:微服務改造、交付頻率提升,導致交付壓力劇增
平臺的困難靈活:不同管控級別的項目流程不一致高并發(fā):集中化部署模式,大量集群的部署統(tǒng)一在同一時刻復雜度:涉及的平臺眾多,驗收平臺、緩存中心、配置中心、微服務管控平臺、告警平臺。痛點:應用接入平臺部署的困難用戶的困難平臺的困難20代碼包部署流程及存在問題問題:可用性差:分發(fā)環(huán)節(jié)過多造成發(fā)布可用性差,容易發(fā)生目錄不對,文件覆蓋、傳包失敗、分發(fā)主機僵。性能瓶頸:
代碼分發(fā)服務器模式可擴展性差,由于計算節(jié)點數眾多,同時進行多個代碼包發(fā)布,代碼分發(fā)服務器壓力大容易引發(fā)節(jié)點拉包超時、失敗。無法提前預發(fā)布:代碼包發(fā)布模式在計算節(jié)點上只能保留一個版本,無法進行預發(fā)布來減少發(fā)布窗口時間。版本不一致:發(fā)布過程中部分計算節(jié)點異常(主機Down、Docker
hang)或是計算節(jié)點維修錯過發(fā)布后重新被加入集群,會導致代碼包版本不一致問題。部署流程說明:1、交付平臺將代碼包下載到指定的服務器目錄2、進程將服務器上的代碼包上傳到代碼包分發(fā)服務器;3、進程通知所有的計算節(jié)點到代碼包分發(fā)服務器拉取代碼包;4、容器加載代碼包并啟動應用代碼包交付的部署流程
代碼包部署流程及存在問題問題:部署流程說明:代碼包交付的部署21改進一:鏡像交付部署流程說明:1、交付平臺將代碼包制作成應用鏡像,并推送的鏡像倉庫2、容器管理平臺將鏡像通過P2P分下載到使用鏡像的主機。
提升:架構簡單:分發(fā)環(huán)節(jié)只有鏡像庫這個交互點,解決原先發(fā)布流程復雜帶來可用性差的問題;消除性能瓶頸:
P2P分發(fā)模式只會訪問一次鏡像庫,分發(fā)在計算節(jié)點內部通過P2P方式完成。版本一致:Docker本身的鏡像機制來保證整個過程鏡像的一致性,計算節(jié)點異常(主機Down、Dockerhang),不會拉起不一致版本的鏡像,而是會在其他節(jié)點重新調度;快速預熱回退:計算節(jié)點客戶端可以保留多個鏡像版本,應用回退更快捷。應用實例替換前可以通過預熱分發(fā)鏡像,在發(fā)布窗口只需要重啟應用就完成發(fā)布。鏡像交付的部署流程DevOps平臺容器平臺改進一:鏡像交付部署流程說明:提升:鏡像交付的部署流程22改進二、交付物版本對齊featuredevqamaster1.1-SNAPSHOT1.2-SNAPSHOT1.3-SNAPSHOT功能版本驗證版本發(fā)布版本歸檔commitcommitcommit1.5.RELEASE1.6.RELEASE2.0.PRODXXX.TAGmergemergemerge測試結果安全報告任務開發(fā)人員代碼清單入網報告迭代版本(周期
11-2~11.16)任務任務任務開發(fā)環(huán)境測試環(huán)境準發(fā)環(huán)境。。。。。。提交測試提交上線建立統(tǒng)一的迭代版本,迭代周期內所有的交付物都歸屬該版本需求都拆解為開發(fā)任務,并依據上線時間與迭代版本關聯(lián)約定迭代周期內的版本與分支的對應關系,每一次構建都生成子版本非代碼類交付物與對應的子版本綁定上傳腳本選
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 探索檢測服務合同多樣性3篇
- 安徽稅務行業(yè)勞動合同范本3篇
- 擋土墻施工合同進度報告3篇
- 新郎忠誠誓言書3篇
- 教育集團員工勞動合同3篇
- 安置房買賣合同模板范本3篇
- 方式通訊服務銷售合同3篇
- 早教中心園長招聘合同細則
- 建筑施工安全防護演練合同樣本
- 私人廚師勞務聘用協(xié)議
- DL-T 2231-2021 油紙絕緣電力設備頻域介電譜測試導則
- YY 0054-2010血液透析設備
- 中國心力衰竭診斷和治療指南
- GB/T 16945-2009電子工業(yè)用氣體氬
- GB/T 13538-2017核電廠安全殼電氣貫穿件
- 英語書法比賽專用紙
- 保安服務項目服務質量標準及日常檢查考核標準
- 2022年1月福建省高中學生學業(yè)基礎會考物理試卷及答案
- 空調檢驗報告
- 陜西省西安市碑林區(qū)鐵一中學2020-2021學年七年級上學期期末數學試題(含答案解析)
- 埋地鋼管結構計算
評論
0/150
提交評論