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