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