現(xiàn)狀背景
會(huì)議電視產(chǎn)品,從立項(xiàng)到現(xiàn)在已經(jīng)有十幾年的歷史,項(xiàng)目流程發(fā)展也在不斷改進(jìn)提升,但是當(dāng)前依然面臨的諸多問(wèn)題。
需求評(píng)審跟蹤依然是通過(guò)excel+SVN的方式進(jìn)行,導(dǎo)致跟蹤不及時(shí)且很難閉環(huán)管理;
迭代過(guò)程中代碼提交無(wú)評(píng)審,代碼錯(cuò)誤、編譯錯(cuò)誤等等不能提前發(fā)現(xiàn),導(dǎo)致集成頻繁回退版本;
UT/FT/ST等測(cè)試無(wú)管理,都是各個(gè)小組單獨(dú)進(jìn)行,版本無(wú)關(guān)聯(lián)性,測(cè)試結(jié)果也沒(méi)有集中管理,測(cè)試質(zhì)量無(wú)法保證。
為了解決上述問(wèn)題,我們引入了Devops工具鏈,整體改進(jìn)上述流程中出現(xiàn)的問(wèn)題。
解決方案
引入Devops工具鏈后,整個(gè)項(xiàng)目從流程上完成了閉環(huán)管理,項(xiàng)目的各個(gè)階段的都有專門的系統(tǒng)進(jìn)行統(tǒng)一管理。工具鏈不管是在數(shù)據(jù)查詢、統(tǒng)計(jì)、追溯上還是業(yè)務(wù)閉環(huán)操作上都給出比較滿意的解決方案。整個(gè)解決方案流程如下。
自從項(xiàng)目引入敏捷后,工具鏈在我們項(xiàng)目的核心業(yè)務(wù)上起到至關(guān)重要的作用。wiki作為內(nèi)容管理貫穿整個(gè)項(xiàng)目的始終,所有的項(xiàng)目文檔,會(huì)議紀(jì)要等等都是通過(guò)wiki進(jìn)行記錄管理;TFS管理用戶故事、測(cè)試用例、測(cè)試過(guò)程等等,從需求到開發(fā)再到測(cè)試形成了統(tǒng)一的管理流程;GIT、Gerrit為代碼管理的核心工具,透過(guò)gerrit與CI的配合,提前發(fā)現(xiàn)代碼問(wèn)題,提高了代碼管理效率;云CI為代碼評(píng)審,代碼質(zhì)量檢查(如KW、復(fù)雜度等)、UT、FT等提供一個(gè)自動(dòng)化的評(píng)審、檢查、測(cè)試的流程。與制品庫(kù)配合可以完成從代碼、測(cè)試到版本發(fā)布的全流程管理,與BDA系統(tǒng)配合可以完成研發(fā)過(guò)程的質(zhì)量監(jiān)管,以清晰的圖表展示研發(fā)過(guò)程數(shù)據(jù)統(tǒng)計(jì);云測(cè)試,由于產(chǎn)品本身的特性只能在私有云里面進(jìn)行自動(dòng)化測(cè)試,所有的數(shù)據(jù)均通過(guò)云CI管理并上傳至相關(guān)的系統(tǒng)如BDA系統(tǒng)等。
實(shí)踐情況
解決方案中我們提出了明確的流程以及相關(guān)的工具,在實(shí)踐中我們將展示整個(gè)實(shí)踐過(guò)程具體操作以及相關(guān)的數(shù)據(jù)。
TFS輔助敏捷流程,跟蹤用戶故事、需求等,根據(jù)Feature下達(dá)任務(wù)計(jì)劃,完成項(xiàng)目任務(wù)跟蹤。
需求澄清,系統(tǒng)化的使用Confluence,及時(shí)快捷的對(duì)需求進(jìn)行澄清
迭代開發(fā),迭代開發(fā)很重要的一部分是代碼管理,使用GIT工具管理源碼,不僅提高代碼獲取效率,而且與Gerrit配合開啟代碼評(píng)審功能,提高合入效率。
持續(xù)集成,CI全流程囊括整個(gè)研發(fā)過(guò)程,從代碼提交/代碼檢查入庫(kù)、UT到集成版本構(gòu)建、FT、入庫(kù)再到系統(tǒng)測(cè)試全流程管理。
整個(gè)云CI流程有幾個(gè)關(guān)鍵的CI流程,分別是VerifyCI、MergeCI以及DailyCI,關(guān)鍵CI流程的實(shí)踐如下:
1.VerifyCI
開發(fā)人員提交代碼后自動(dòng)觸發(fā)CI流程,完成模塊版本的構(gòu)建、代碼KW、Lizard檢查、UT、推送數(shù)據(jù)到看板系統(tǒng)并發(fā)送郵件到相關(guān)的開發(fā)人員以展示相關(guān)的編譯、檢查以及測(cè)試結(jié)果。
2.MergeCI
每天定時(shí)完成版本構(gòu)建、全版本的KW,復(fù)雜度檢查、FT、推送數(shù)據(jù)看板并發(fā)送郵件到相關(guān)的人員以展示構(gòu)建、檢查以及測(cè)試結(jié)果
3.DailyCI
每天定時(shí)完成ST測(cè)試,并把數(shù)據(jù)推送至看板系統(tǒng),發(fā)送郵件展示測(cè)試用例詳細(xì)的執(zhí)行結(jié)果:
所有的數(shù)據(jù)均有推送到看板系統(tǒng),以圖表形式展示整個(gè)研發(fā)周期內(nèi)的相關(guān)數(shù)據(jù)
FT數(shù)據(jù),看板數(shù)據(jù)反映FT的測(cè)試用例總數(shù)、測(cè)試用例數(shù)、以及通過(guò)率數(shù)據(jù)。
KW,看板數(shù)據(jù)反映每個(gè)項(xiàng)目的KW的錯(cuò)誤告警數(shù),以及相關(guān)的告警消除趨勢(shì)
復(fù)雜度檢查,看板數(shù)據(jù)實(shí)時(shí)反映每個(gè)項(xiàng)目的Lizard復(fù)雜度告警數(shù)件
制品庫(kù),每次MergeCI構(gòu)建的版本,都會(huì)推送到制品庫(kù)上,供FT、ST測(cè)試使用
ST數(shù)據(jù),看板數(shù)據(jù)反映ST的測(cè)試用例總數(shù)、測(cè)試用例數(shù)、以及通過(guò)率數(shù)據(jù)下
改進(jìn)提效
會(huì)議電視引入Devops工具鏈后整個(gè)項(xiàng)目周期得到了有力的監(jiān)管,并且很高的提高的項(xiàng)目運(yùn)作效率,但是依然面臨的一些問(wèn)題,依然有改進(jìn)的空間,改進(jìn)提效持續(xù)進(jìn)行中。
針對(duì)相關(guān)的問(wèn)題提出了一系列的改進(jìn)措施。持續(xù)改進(jìn)中,大量引進(jìn)自動(dòng)化工具,修改相關(guān)的流程。詳細(xì)改進(jìn)對(duì)比如下:
編譯實(shí)踐長(zhǎng),工具鏈引入后通過(guò)工具系統(tǒng)的配合使得整個(gè)編譯消息提高了70%以上
代碼回退率高,是因?yàn)殄e(cuò)誤沒(méi)有在入庫(kù)之前發(fā)現(xiàn)導(dǎo)致,引入云CI、Gerrit之后,在代碼入庫(kù)之前會(huì)自動(dòng)觸發(fā)代碼的相關(guān)檢查如編譯、KW、復(fù)雜度等等,檢查結(jié)果直接影響代碼是否能入庫(kù),可以提前發(fā)現(xiàn)代碼問(wèn)題,如下圖所示Verified +2表示該模塊完成的相關(guān)的檢查可以入庫(kù).
代碼質(zhì)量無(wú)量化,代碼寫的時(shí)候精簡(jiǎn),有無(wú)泄露等等問(wèn)題以前是沒(méi)有辦法量化的,引入相關(guān)的工具后代碼質(zhì)量可以詳細(xì)具體到每個(gè)方法
版本無(wú)統(tǒng)一管理,以前集成測(cè)試和系統(tǒng)測(cè)試版本是分開的,集成測(cè)試過(guò)程中版本編譯由集成測(cè)試完成,系統(tǒng)測(cè)試版本由技術(shù)部構(gòu)建,引入制品庫(kù)后集成測(cè)試,系統(tǒng)測(cè)試,以及工程均由制品庫(kù)出版本,只是版本獲取方法由權(quán)限或者流程進(jìn)行控制。
-
會(huì)議電視
+關(guān)注
關(guān)注
0文章
5瀏覽量
7949 -
CI
+關(guān)注
關(guān)注
0文章
14瀏覽量
11402 -
代碼
+關(guān)注
關(guān)注
30文章
4779瀏覽量
68521
原文標(biāo)題:DevOps案例 | 會(huì)議電視X項(xiàng)目端到端案例
文章出處:【微信號(hào):ZTEdeveloper,微信公眾號(hào):中興開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論