Android超大型代碼的快速集成架構(gòu)_第1頁
Android超大型代碼的快速集成架構(gòu)_第2頁
Android超大型代碼的快速集成架構(gòu)_第3頁
Android超大型代碼的快速集成架構(gòu)_第4頁
Android超大型代碼的快速集成架構(gòu)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

技術(shù)創(chuàng)新

變革未來Android超大型代碼的快速集成架構(gòu)目錄引言1快速集成之路的演進(jìn)2三級集成初具雛形3Devops工具鏈一覽4

SWOT分析我們需要走出自己特有的快速集成之路!劣勢外部優(yōu)勢內(nèi)部團(tuán)隊(duì)成員熟悉android平臺代碼框架長期關(guān)注對工具的使用和效率的提升android平臺代碼規(guī)模巨大且相互依賴強(qiáng)團(tuán)隊(duì)成員數(shù)量多,項(xiàng)目復(fù)用且分散

業(yè)界有各種集成案例和開源工具可供參考大量案例集中于小規(guī)模代碼集成或獨(dú)立應(yīng)用級集成大規(guī)模代碼集成特別是android平臺集成案例非常少目錄引言1快速集成之路的演進(jìn)2三級集成初具雛形3Devops工具鏈一覽4

傳統(tǒng)持續(xù)集成解決不了代碼特點(diǎn)規(guī)模大復(fù)雜耦合強(qiáng)編譯慢修改多人員復(fù)用團(tuán)隊(duì)大測試嚴(yán)研發(fā)場景項(xiàng)目特點(diǎn)模塊多需求多基線多周期短優(yōu)化持續(xù)集成,緩解編譯時間過長問題個人集成解決團(tuán)隊(duì)成員搭建驗(yàn)證環(huán)境慢的問題模塊集成根本上解決編譯驗(yàn)證慢的問題AP側(cè)純代碼約40G,

編譯后約150G一個研發(fā)人員需搭建不同工程用來提交驗(yàn)證涉及修改的模塊有600+

三級集成模塊集成個人集成系統(tǒng)集成研發(fā)自行驗(yàn)證輸入單據(jù)可選無關(guān)單據(jù)狀態(tài)單據(jù)狀態(tài)變遷觸發(fā)輸入為單個單據(jù)單據(jù)狀態(tài)變遷觸發(fā)輸入為批量單據(jù)

三級集成的演進(jìn)之路系統(tǒng)集成1.0系統(tǒng)集成2.0pipeline系統(tǒng)集成3.0上線個人集成-云CI框架創(chuàng)建模塊集成1.0上線系統(tǒng)集成個人集成模塊集成

目錄引言1快速集成之路的演進(jìn)2三級集成初具雛形3Devops工具鏈一覽4

代碼管理-本地鏡像加速策略...

...主服務(wù)器實(shí)時同步各區(qū)域鏡像服務(wù)器監(jiān)控服務(wù)器郵件服務(wù)器短信服務(wù)器定時快照代碼量太大,團(tuán)隊(duì)成員又分散,每次拉代碼很花時間,怎么辦?

個人集成-主要流程個人集成驗(yàn)證編譯結(jié)果以郵件發(fā)布方式通知到相關(guān)研發(fā)人員。反饋結(jié)果云CI平臺接收到驗(yàn)證申請,調(diào)度集群中可用資源,提供獨(dú)立安全的編譯環(huán)境進(jìn)行編譯驗(yàn)證

啟動編譯修改代碼 觸發(fā)驗(yàn)證研發(fā)修模改代塊碼,研提交發(fā)code成reiv員ew

同時支持多個項(xiàng)目,需研發(fā)要使用快云C速I平臺搭驗(yàn)證建特定每單據(jù)個項(xiàng)目的編譯驗(yàn)證環(huán)境,怎么辦?個人集成-云CI架構(gòu)mesos

master在集群上將Jenkinsslave的啟動命令發(fā)送到mesos

slavemesos

slaveJenkins

masterframework調(diào)度mesos提供的資源,發(fā)送啟動slave

job的命令Jenkins

slave作業(yè)mesos

slave將Jenkins

slave的啟動命令傳送一個或多個執(zhí)行器命令執(zhí)行器命令執(zhí)行器在集群上啟動一個或多個Jenkins

slave實(shí)例mesos

slave集群codecodecode

個人集成-部署策略mergeupperlowerbase

code集群

Ubuntu16.04env1env2env3env4project1project3云computer

developer系統(tǒng)集成-版本演進(jìn)V2.0V2.1V3.0系統(tǒng)集成第一版,merge單據(jù)定時編譯,報錯郵件通知系統(tǒng)集成第二版,加入open單據(jù)驗(yàn)證,多項(xiàng)目定時編譯系統(tǒng)集成第三版,創(chuàng)建數(shù)據(jù)庫,增加投票系統(tǒng),循環(huán)編譯系統(tǒng)集成第四版,freestyle->pipeline

,Groovy編寫系統(tǒng)集成第五版,創(chuàng)建主控任務(wù),主控統(tǒng)一管理,可視化

傳統(tǒng)的持續(xù)集成只能定時輪詢,效率太低,而且編譯時間太長,怎么辦?V1.0V1.1系統(tǒng)集成-物理架構(gòu)developersgerrit服務(wù)器主控?cái)?shù)據(jù)庫編譯機(jī)結(jié)果分析工具測試機(jī)

系統(tǒng)集成-主要流程Gerrit單據(jù)主控任務(wù)版本發(fā)送測試部數(shù)據(jù)庫編譯結(jié)果成功失敗結(jié)束刪除環(huán)境重拉代碼不刪除環(huán)境重拉代碼編譯結(jié)果郵件通知成功失敗回退錯誤單據(jù)版本發(fā)送測試部編譯結(jié)束重編一次編譯回退錯誤單據(jù)重編一次郵件通知記錄錯誤單據(jù)準(zhǔn)備基準(zhǔn)環(huán)境凌晨平時

系統(tǒng)集成-主控流程Gerrit單據(jù)主控gerrit

trigger確定編譯項(xiàng)目范圍啟動項(xiàng)目編譯編譯項(xiàng)目對應(yīng)的job運(yùn)行狀態(tài)不啟動項(xiàng)目編譯寫入數(shù)據(jù)庫空閑狀態(tài)編譯狀態(tài)活躍編譯項(xiàng)目列表規(guī)則文件

模塊集成-產(chǎn)生背景代碼規(guī)模大,編譯時間長1模塊多及相互依賴2修改單據(jù)多及相互依賴3構(gòu)建失敗影響問題驗(yàn)證4錯誤定位困難5

模塊集成-簡要流程代碼提交觸發(fā)1gerrit

收到單據(jù)后自動觸發(fā)2定位定位修改單據(jù)涉及模塊3編譯模塊編譯4反饋結(jié)果通知及日志記錄

模塊集成-環(huán)境隔離方案dockerdocker基準(zhǔn)環(huán)境cherry-

pickopen單據(jù)對應(yīng)代碼基準(zhǔn)環(huán)境基準(zhǔn)環(huán)境更新merge單據(jù)對應(yīng)代碼{overlay編譯成功回寫開始yesdocker

啟動,對應(yīng)基準(zhǔn)環(huán)境是否使用基準(zhǔn)環(huán)境Nodocker啟動,對應(yīng)鏡像環(huán)境結(jié)束鏡像選擇算法

模塊集成-調(diào)用關(guān)系示意圖研發(fā)人員pipeline公共庫pipeline腳本庫open單據(jù)觸發(fā)入口jobmerge單據(jù)觸發(fā)入口jobGerrit

模塊集成-部分流程圖單據(jù)觸發(fā)編譯?獲取代碼環(huán)境準(zhǔn)備結(jié)束定位模塊成功?后續(xù)環(huán)節(jié)錯誤定位反饋責(zé)任人修改是是否記錄數(shù)據(jù)環(huán)境準(zhǔn)備定時觸發(fā)獲取代碼執(zhí)行編譯后續(xù)環(huán)節(jié)是反饋責(zé)任人否

單據(jù)生命周期圖Autosubmit+1觸發(fā)模塊集成draft待編譯Presubmit-Ready+1觸發(fā)系統(tǒng)集成Presubmit-Verified+1系統(tǒng)集成完成Code-Review+2專家組審核通過Verified+1

業(yè)務(wù)組審核通過Submit提交入庫測試驗(yàn)證Autosubmit-1需研發(fā)處理draft需研發(fā)處理Presubmit-Ready-1模塊集成失敗Presubmit-Verified-1系統(tǒng)集成失敗Code-Review-2專家組審核不通過Verified-1業(yè)務(wù)組審核不通過專家組審核業(yè)務(wù)組審核研發(fā)自行驗(yàn)證驗(yàn)證失敗驗(yàn)證成功自動觸發(fā)驗(yàn)證成功自動觸發(fā)驗(yàn)證成功審核通過審核通過審核不通過驗(yàn)證失敗驗(yàn)證失敗驗(yàn)證失敗,研發(fā)將單據(jù)狀態(tài)修改為Autosubmit-1,修正錯誤后,重新進(jìn)入隊(duì)列或?qū)徍瞬煌ㄟ^

分層測試模塊代碼提交編譯通過后即可自動觸發(fā),進(jìn)行基本功能測試。模塊測試01通過增量編譯出完整版本,進(jìn)行基本功能測試。持續(xù)集成測試02包括比較完整的白盒冒煙、黑盒冒煙、CTS測試,能夠比較全面摸底產(chǎn)品質(zhì)量,部署在中國及世界各地均有當(dāng)?shù)噩F(xiàn)網(wǎng)測試。每日構(gòu)建測試03全面系統(tǒng)的自動化測試,包括白盒、黑盒功能、CTS、性能監(jiān)控、平滑性測試、monkey壓力測試等較完整的測試。系統(tǒng)測試04

三級集成亮點(diǎn)總結(jié)循環(huán)編譯業(yè)界無相同案例錯誤定位編譯成功自動提交投票完成率顯示單件觸發(fā),并發(fā)快速隨時隨地可進(jìn)行環(huán)境隔離,安全穩(wěn)定使用靈活系統(tǒng)集成出錯單據(jù)自動剔除模塊集成定位準(zhǔn)確快速環(huán)境隔離集群管理,資源動態(tài)調(diào)配個人集成

后續(xù)優(yōu)化方向?qū)崿F(xiàn)存儲資源的共享和計(jì)算資源的動態(tài)調(diào)配,并將框架全面部署到各級集成中合理界定系統(tǒng)集成和模塊集成的范疇,提高集成效率

目錄引言1快速集成之路的演進(jìn)2三級集成初具雛形3Devops工具鏈一覽4

DevOps工具鏈一覽圖需求研發(fā)測試監(jiān)控變更缺陷代碼管理集成JiraConfluenceZTE-

ECGitGerritZTE-

JarvisZTE-

CIArtifactoryCoverityJenkinsM

ySQLDocker模塊測試系統(tǒng)測試狀態(tài)監(jiān)控

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論