版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
大型企業(yè)CI平臺(tái)建設(shè)和實(shí)施分享騰訊陳小光Agenda現(xiàn)狀&挑戰(zhàn)實(shí)踐分享-平臺(tái)建設(shè)實(shí)踐分享-實(shí)施推廣總結(jié)Q&A7年研發(fā)管理和優(yōu)化經(jīng)驗(yàn),跨越銀行、互聯(lián)網(wǎng)等行業(yè)目前騰訊持續(xù)交付、持續(xù)集成實(shí)踐者愛(ài)好廣泛包括且不限敏捷實(shí)踐,音樂(lè),數(shù)學(xué)微博@v陳小光v
現(xiàn)狀&挑戰(zhàn)-挑戰(zhàn)-平臺(tái)同時(shí)存在CI平臺(tái)五套,各自為政,平臺(tái)不一,資源浪費(fèi),是否要整合?當(dāng)項(xiàng)目代碼量超過(guò)百萬(wàn)時(shí),如何提升構(gòu)建效率?如何管理復(fù)雜構(gòu)建依賴?CI集群30臺(tái),如何能及時(shí)有效的更新工具和軟件以及配置到相關(guān)環(huán)境里面?如何保證從開發(fā)->測(cè)試->上線三個(gè)步驟的源碼和二進(jìn)制包版本一致性?如果處理來(lái)自不同團(tuán)隊(duì)的對(duì)CI平臺(tái)的需求?現(xiàn)狀&挑戰(zhàn)-挑戰(zhàn)-實(shí)施BU老大們對(duì)CI理解不一,如何獲取他們的支持?開發(fā)對(duì)持續(xù)構(gòu)建的失敗漠不關(guān)心怎么辦?如何讓不到五人的CI團(tuán)隊(duì),高滿意度的支持大于五百人團(tuán)隊(duì)實(shí)施CI?如何提高開發(fā)編寫單元測(cè)試的積極性?底層代碼隨意變更提交,影響到上層代碼怎么辦?解決方案-平臺(tái)-設(shè)計(jì)思想平臺(tái)設(shè)計(jì)思想:統(tǒng)一平臺(tái)和運(yùn)維,減少維護(hù)成本和機(jī)器資源,成果共享環(huán)境保證絕對(duì)權(quán)威,跟線上、測(cè)試、開發(fā)保持一致提升易用性,減少用戶學(xué)習(xí)成本統(tǒng)一測(cè)試和上線的包出口工具盡量使用開源JenkinsSubversionTestlink解決方案-平臺(tái)-高效構(gòu)建系統(tǒng)基于開源scons自研的一套分布式統(tǒng)一構(gòu)建系統(tǒng)支持c++,java,probuf,swig等多種語(yǔ)言代碼變更后可以自動(dòng)分析依賴關(guān)系集構(gòu)建,測(cè)試,靜態(tài)代碼檢查,高亮錯(cuò)誤顯示等功能支持增量和分布式編譯和測(cè)試解決了構(gòu)建效率和依賴管理問(wèn)題其他提升構(gòu)建速度方法:
使用tmpfs,IO效率基本為0,需要大內(nèi)存機(jī)器
使用cache機(jī)制,比如ccache
分布式編譯,比如distcc
源碼分層:抽離基礎(chǔ)庫(kù)代碼專人維護(hù),包括common和thirdparty解決方案-構(gòu)建分級(jí)構(gòu)建類型NightlyBuild:夜間,全量測(cè)試和構(gòu)建,重建cacheCheckInBuild:CheckInSvn,增量ut,增量構(gòu)建,基于cacheHandleBuild:按需,全量構(gòu)建和測(cè)試,為了打包解決方案-平臺(tái)-統(tǒng)一接入腳本概述:統(tǒng)一某種類型的項(xiàng)目或代碼的公共動(dòng)作(比如編譯,執(zhí)行ut,靜態(tài)檢查,包上傳等)到一個(gè)腳本或工具里面,用戶只需要輸入路徑配置即可完成CI的配置,減少用戶學(xué)習(xí)和使用成本。C++:
寫好腳本ci_execcompile_dir=$dir1ut_dir=$dir2st_dir=$dir3Java(ant為例):解決方案-平臺(tái)-統(tǒng)一環(huán)境管理-Jenkins管理環(huán)節(jié)通過(guò)Jenkins本身管理構(gòu)建環(huán)境,slave正在以后即可做。通過(guò)Jenkins多Slave配置完成:規(guī)劃好SVN里面目錄Confbin等在Slave機(jī)器上配置bin目錄到$PATH優(yōu)點(diǎn):使用方便,測(cè)試通過(guò)以后直接提交到SVN即可更新Jenkins直接輻射到各個(gè)Slave,更新方便缺點(diǎn):沒(méi)有整體視圖SubversionJenkinsmasterJenkinsslave1Jenkinsslave1…修改工作區(qū)CheckIn解決方案-平臺(tái)-presubmit方案-client模式Dev工作區(qū)SubversionCheckSvnServiceUpload.py專用提交腳本Check.py檢查:提交的注釋里面是否有指定加密串通知:通過(guò)對(duì)應(yīng)人Upload.py:1.檢查是否被模塊ownerCodereview且被Approved2.在內(nèi)存文件系統(tǒng)tmpfs中快速run編譯和ut3.做CodeStyle檢查以及靜態(tài)檢查4.成功則自動(dòng)提交,在注視里面加標(biāo)記5.失敗給予提示upload.py–i33896–I后為codereviewid目的:把問(wèn)題扼殺在提交到代碼庫(kù)之前,減少影響Dev工作區(qū)SourceControlSystemCheckSvnServicepresubmit.py腳本檢查、信息搜集、打diff、上傳Check.py檢查:提交的注釋是否有指定加密串通知:通過(guò)對(duì)應(yīng)人兩種Presubmit模式-Client/Server模式Presubmit服務(wù)器驗(yàn)證、提交解決方案-平臺(tái)-報(bào)表平臺(tái)jenkins構(gòu)建的報(bào)表平臺(tái)保存如下數(shù)據(jù)構(gòu)建成功率構(gòu)建時(shí)長(zhǎng)測(cè)試覆蓋率接入率等有開源插件可支持?jǐn)?shù)據(jù)報(bào)表展現(xiàn)!解決方案-實(shí)施-先試點(diǎn)試點(diǎn)項(xiàng)目選擇:交付壓力小的重點(diǎn)項(xiàng)目成立聯(lián)合虛擬項(xiàng)目組運(yùn)作做好評(píng)估:缺陷率,代碼質(zhì)量等試點(diǎn)目標(biāo)目標(biāo):摸索經(jīng)驗(yàn)平臺(tái)建立樹立標(biāo)桿建立影響透明效果取得重視解決方案-實(shí)施-制度化接口人制度:1.需要實(shí)施CI部門指定接口人2.每個(gè)部門對(duì)應(yīng)CI實(shí)施責(zé)任人3.對(duì)CI實(shí)施接口人進(jìn)行trainingCI平臺(tái)需求管理流程:1.把CI平臺(tái)當(dāng)做“產(chǎn)品”來(lái)做2.明確需求管理流程3.排期實(shí)現(xiàn),可視化進(jìn)度沉淀制度1.把CI實(shí)施框架和FAQ沉淀到wiki2.每周專人值班輔助接口人3.常見問(wèn)題沉淀到wiki合作,而非推廣總結(jié)平臺(tái)總體架構(gòu):統(tǒng)一平臺(tái),包服務(wù)器,統(tǒng)一出口構(gòu)建平臺(tái):構(gòu)建平臺(tái),管理依賴,支持分布,增量編譯公用腳本:封裝復(fù)雜操作,減少dev學(xué)習(xí)和使用成本環(huán)境管理:puppet,利用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆北京市西城區(qū)高三上學(xué)期期末考試歷史試題(含答案)
- 2026年大學(xué)大二(康復(fù)治療學(xué))言語(yǔ)治療技術(shù)基礎(chǔ)綜合測(cè)試題及答案
- 2026年深圳中考數(shù)學(xué)考前15天沖刺試卷(附答案可下載)
- 2026年深圳中考化學(xué)真題變式訓(xùn)練試卷(附答案可下載)
- 醫(yī)患關(guān)系處理登記表模板
- 物聯(lián)網(wǎng)技術(shù)在智慧農(nóng)業(yè)中的應(yīng)用可行性研究
- 水利執(zhí)法培訓(xùn)
- 公共藝術(shù)專業(yè)就業(yè)前景
- 南京中醫(yī)藥大學(xué)就業(yè)前景
- 肉兔養(yǎng)殖技術(shù)
- DB23T 3735-2024云杉花墨天牛防治技術(shù)規(guī)程
- 車輛安全操作規(guī)程
- 2024年中考語(yǔ)文復(fù)習(xí)沖刺課內(nèi)古詩(shī)詞閱讀(上海專用)(原卷版+解析版)
- 放射科醫(yī)院感染管理:加強(qiáng)院感控制
- 建筑防水工程技術(shù)規(guī)程DBJ-T 15-19-2020
- 《公路橋涵養(yǎng)護(hù)規(guī)范》(JTG5120-2021)
- 矢量網(wǎng)絡(luò)分析儀校準(zhǔn)規(guī)范
- 高考英語(yǔ)閱讀理解分類及方法課件
- 華為在歐洲市場(chǎng)分析報(bào)告
- 商業(yè)廣場(chǎng)物管費(fèi)測(cè)算表
- 紹興金牡印染有限公司年產(chǎn)12500噸針織布、6800萬(wàn)米梭織布高檔印染面料升級(jí)技改項(xiàng)目環(huán)境影響報(bào)告
評(píng)論
0/150
提交評(píng)論