以敏捷研發(fā)模式運(yùn)作,結(jié)合其主要使用Java語言開發(fā),產(chǎn)品架構(gòu)包括后臺(tái)服務(wù)、前端Web和APP以及多個(gè)軟件部件的特點(diǎn),對(duì)整個(gè)產(chǎn)品計(jì)劃研發(fā)應(yīng)用中需求管理、特性故事管理、代碼托管、持續(xù)構(gòu)建、自動(dòng)化測(cè)試、版本發(fā)布、故障管理等都做了合適的規(guī)范要求和約定,并很快建立起一套比較完整的DevOps工具鏈支持。
【關(guān)鍵詞】
DevOps,Docker,云CI,制品庫,自動(dòng)化測(cè)試,度量
【工具鏈介紹】
整個(gè)產(chǎn)品規(guī)劃研發(fā)應(yīng)用使用一序列工具鏈支撐:
1)原始需求由最貼近市場(chǎng)的用戶錄入原始需求管理系統(tǒng)系統(tǒng)并由規(guī)劃組人員收集分析整理形成正式的產(chǎn)品需求。
2)產(chǎn)品需求錄入需求管理系統(tǒng)后由需求分析人員組織需求實(shí)例化分析,在線完成需求到特性再到故事任務(wù)的分解。
3)需求管理系統(tǒng)中待實(shí)現(xiàn)的特性故事任務(wù)由開發(fā)團(tuán)隊(duì)評(píng)估并納入迭代開發(fā)計(jì)劃,開發(fā)人員進(jìn)行開發(fā),經(jīng)過代碼審查、故事特性測(cè)試、BA驗(yàn)收后在線變?yōu)殚_發(fā)完成狀態(tài)。
4)代碼托管使用Gerrit系統(tǒng),編譯構(gòu)建使用云CI系統(tǒng),代碼靜態(tài)檢查使用Klockwork云檢查系統(tǒng),版本使用制品庫管理,自動(dòng)化測(cè)試接入云測(cè)試管理系統(tǒng)。
5)整個(gè)產(chǎn)品研發(fā)過程使用Wiki進(jìn)行產(chǎn)品研發(fā)應(yīng)用及各個(gè)團(tuán)隊(duì)協(xié)作信息共享管理,各個(gè)階段信息接入度量系統(tǒng)進(jìn)行度量分析和信息共享展示。
【實(shí)踐情況】
DevOps幾個(gè)重要支撐工具關(guān)系圖
代碼庫遷移:
SVN向Gerrit遷移,Gerrit遷移使用后帶來一下好處:
1.除了創(chuàng)建子庫和配置子庫訪問權(quán)限組需要由管理員配置操作之外,頻度較高的子庫訪問權(quán)限成員增減交給團(tuán)隊(duì)自己決定,解決之前SVN權(quán)限管理審批流程較長的問題。
2.單庫下載速度提升較多,約10倍的提速率。
3.代碼規(guī)模統(tǒng)計(jì)與度量系統(tǒng)接口簡單,能夠快速通過度量系統(tǒng)配置個(gè)人代碼規(guī)模統(tǒng)計(jì)和統(tǒng)計(jì)結(jié)果郵件自動(dòng)推送至項(xiàng)目組。
4.公司層面Gerrit代碼托管整理效率更高更安全。
云CI部署使用:
DevOps提供的基于Jenkins的CI服務(wù),擁有海量資源供項(xiàng)目實(shí)現(xiàn)高并發(fā)調(diào)度,使得項(xiàng)目不必關(guān)心底層資源,只專注于業(yè)務(wù)本身。
代碼Klockwork靜態(tài)檢查:
項(xiàng)目開發(fā)語言以Java為主,使用Klockwork工具對(duì)Java代碼進(jìn)行靜態(tài)掃描檢查。Klockwork靜態(tài)檢查分為兩步進(jìn)行:
1.開發(fā)人員編碼完成歸檔代碼之前,本地通過集成到Eclipse開發(fā)環(huán)境中的Klockwork插件對(duì)新增代碼進(jìn)行掃描,發(fā)現(xiàn)告警消除后再歸檔到Gerrit上。項(xiàng)目約定,歸檔代碼到Gerrit庫之后發(fā)現(xiàn)的Klockwork告警,按開發(fā)人員泄漏故障對(duì)待。KW本地Java代碼掃描告警消除配置參閱《Klocwork Eclipse插件的安裝和使用》。
2.項(xiàng)目部署云KW掃描,每日對(duì)項(xiàng)目代碼進(jìn)行靜態(tài)掃描,發(fā)現(xiàn)告警信息推送到項(xiàng)目組。每日KW掃描郵件推送結(jié)果。
版本發(fā)布管理:
開發(fā)團(tuán)隊(duì)按版本計(jì)劃開發(fā)完成版本后,向版本需求者發(fā)布不同性質(zhì)的交付版本。歷史發(fā)布版本記錄到版本發(fā)布管理系統(tǒng),能夠回溯查詢和版本應(yīng)用管理。開發(fā)團(tuán)隊(duì)交付發(fā)布版本分為項(xiàng)目內(nèi)部集成版本、外部集成版本、內(nèi)部驗(yàn)收版本、外部驗(yàn)收版本、正式商用版本、實(shí)驗(yàn)定向版本、用戶試用版本、商用補(bǔ)丁版本。根據(jù)外部關(guān)系協(xié)作及上下游交付流程,不同時(shí)期發(fā)布不同性質(zhì)的版本滿足各方需求。開發(fā)團(tuán)隊(duì)對(duì)外發(fā)布的各種不同性質(zhì)的版本,記錄到版本發(fā)布管理庫中,能夠支持歷史版本信息查詢,歷史版本信息度量統(tǒng)計(jì),方便內(nèi)外部干系人很容易獲取版本相關(guān)信息,減少版本相關(guān)信息溝通成本,提升DevOps鏈在交付版本環(huán)節(jié)管理效率。
外部故障跟蹤管理:
鑒于產(chǎn)品外部應(yīng)用面分布交廣,外部故障信息收集和跟蹤比較困難的情況,借用需求開發(fā)管理系統(tǒng)的外部故障管理跟蹤功能,用戶直接將外部問題錄入需求開發(fā)管理系統(tǒng),自動(dòng)推送郵件到項(xiàng)目研發(fā)團(tuán)隊(duì)進(jìn)行跟蹤處理,并向外部干系人自動(dòng)推送問題解決進(jìn)度。如下圖所示:
協(xié)作與度量:
借助Wiki系統(tǒng)實(shí)現(xiàn)項(xiàng)目團(tuán)隊(duì)間信息傳遞與共享,通過度量系統(tǒng)推送項(xiàng)目團(tuán)隊(duì)和成員等不同維度的研發(fā)構(gòu)成度量指標(biāo)信息。
度量系統(tǒng)應(yīng)用:
研發(fā)過程與度量系統(tǒng)對(duì)接,各個(gè)階段研發(fā)過程指標(biāo)通過度量系統(tǒng)匯總分析并推送給項(xiàng)目組。度量指標(biāo)展示說明:
度量系統(tǒng)應(yīng)用極大效率提升及時(shí)了解研發(fā)過程各個(gè)環(huán)節(jié)各個(gè)團(tuán)隊(duì)度量指標(biāo)信息,將人力從人肉度量數(shù)據(jù)統(tǒng)計(jì)中解放出來,度量數(shù)據(jù)展示更靈活,速度更快,且自動(dòng)實(shí)施。
【效果評(píng)價(jià)】
項(xiàng)目有一套完整的DevOps端到端的應(yīng)用實(shí)踐,為提升項(xiàng)目研發(fā)效率,快速便捷地實(shí)現(xiàn)信息共享發(fā)揮積極作用。需求管理線借助原始需求管理系統(tǒng)系統(tǒng)、需求開發(fā)管理系統(tǒng)支撐需求分析、迭代開發(fā)和版本交付的流程。Gerrit、云CI、云KW、制品庫、云測(cè)試、版本發(fā)布管理支撐從代碼托管、版本構(gòu)建、靜態(tài)檢查、版本管理、自動(dòng)化測(cè)試和版本發(fā)布管理的各階段管理。
【DevOps工具鏈改進(jìn)建議】
1.原始需求管理系統(tǒng)系統(tǒng)與下游需求分析管理系統(tǒng)實(shí)現(xiàn)對(duì)接。
2.云KW增量代碼掃描結(jié)果推送,將引入KW告警關(guān)聯(lián)到個(gè)人。
3.云測(cè)試增強(qiáng)對(duì)第三方測(cè)試工具報(bào)告解析格式轉(zhuǎn)換兼容支持,方便獲取更多自動(dòng)化測(cè)試細(xì)節(jié)信息。
4.度量系統(tǒng)配置項(xiàng)較多時(shí),上下翻滾尋找比較困難,建議增加下一級(jí)分類。
5.度量系統(tǒng)右面趨于彈出對(duì)話框與滾動(dòng)條位置沒有關(guān)聯(lián),建議彈出對(duì)話框顯示在滾動(dòng)條當(dāng)前位置。
6.度量系統(tǒng)指標(biāo)項(xiàng)過濾條件過于簡單,計(jì)算過濾昨天數(shù)據(jù)不方便實(shí)現(xiàn)。
7.云KW掃描規(guī)則需要方便配置和修改。
-
JAVA
+關(guān)注
關(guān)注
19文章
2966瀏覽量
104701 -
Docker
+關(guān)注
關(guān)注
0文章
457瀏覽量
11846 -
devops
+關(guān)注
關(guān)注
0文章
113瀏覽量
12014
原文標(biāo)題:DevOps案例 | *網(wǎng)絡(luò)* 項(xiàng)目端到端應(yīng)用實(shí)踐
文章出處:【微信號(hào):ZTEdeveloper,微信公眾號(hào):中興開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論