最近面試了阿里螞蟻金服,螞蟻金服的一位技術(shù)經(jīng)理讓我針對(duì)上海移動(dòng)DevOps平臺(tái)和阿里的“云效”做橫向比對(duì),著重突出目前項(xiàng)目的優(yōu)劣勢(shì)溺忧,總結(jié)如下体啰,面試官還算比較滿意篮赢,在這里也把他分享出來,希望對(duì)做DevOps的團(tuán)隊(duì)有所啟發(fā)。
目錄
1、云效與上海移動(dòng)DevOps產(chǎn)品橫行比對(duì)分析
模塊對(duì)比圖
上海移動(dòng)DevOps產(chǎn)品優(yōu)缺點(diǎn)分析
2有滑、其他DevOps產(chǎn)品
1、云效與上海移動(dòng)DevOps產(chǎn)品橫行比對(duì)分析
看了阿里云的“云效”和螞蟻金融云的“LinkE 持續(xù)交付”嵌削,從總的功能點(diǎn)來看毛好,很多和目前我們團(tuán)隊(duì)做的上海移動(dòng)DevOps系統(tǒng)類似。以下是主要功能模塊比對(duì)圖:
下面我將針對(duì)項(xiàng)目協(xié)作苛秕、代碼倉庫肌访、持續(xù)交付、測試管理幾個(gè)部分做下簡介:
對(duì)于項(xiàng)目協(xié)作艇劫,也就是對(duì)應(yīng)我們的工作空間模塊吼驶,上海移動(dòng)DevOps上提供了敏捷和傳統(tǒng)瀑布雙模流程,敏捷流程中包括backlog店煞、sprint和故事看板蟹演。
對(duì)于代碼倉庫,上海移動(dòng)DevOps中提供了代碼展示浅缸、分支管理轨帜、人員管理
對(duì)于持續(xù)交付魄咕,上海移動(dòng)DevOps支持配置多節(jié)點(diǎn)流水線衩椒,對(duì)于任意節(jié)點(diǎn)可以控制是否執(zhí)行,支持節(jié)點(diǎn)參數(shù)配置,支持郵件組配置毛萌,流水線結(jié)束會(huì)通知此次流水每個(gè)節(jié)點(diǎn)耗時(shí)苟弛、完成情況、代碼影響面阁将。在持續(xù)集成的流水線中對(duì)接了亞信的Pass平臺(tái)膏秫,實(shí)現(xiàn)了生成鏡像,發(fā)布鏡像做盅。在發(fā)布的流水線中對(duì)接了BOMC缤削,直接在流水線中將包scp到BOMC實(shí)施發(fā)布。
對(duì)于測試管理吹榴,上海移動(dòng)DevOps集成了Sonar靜態(tài)掃描(支持Java亭敢、JS、Python等)图筹、單元測試帅刀,對(duì)接了移動(dòng)的自動(dòng)化測試平臺(tái)。
針對(duì)于這幾個(gè)模塊远剩,一些特點(diǎn)優(yōu)勢(shì)做如下分析:
1)特點(diǎn)
特點(diǎn)一:對(duì)接原有需求管理平臺(tái)
在實(shí)際DevOps的接入的過程中扣溺,由于團(tuán)隊(duì)眾多,各個(gè)團(tuán)隊(duì)可能本身就有對(duì)應(yīng)的需求管理平臺(tái)瓜晤,并且DevOps平臺(tái)需求拆分流程并不能滿足不同團(tuán)隊(duì)需求锥余,差異化明顯。
上海移動(dòng)DevOps系統(tǒng)通過將任務(wù)模型抽象出來痢掠,提供接口哈恰,對(duì)接了原有的需求平臺(tái),雙向同步志群,讓存量任務(wù)快速接入系統(tǒng)中着绷。
特點(diǎn)二:將任務(wù)、代碼提交锌云、持續(xù)集成關(guān)聯(lián)到一起
在DevOps產(chǎn)品使用前荠医,團(tuán)隊(duì)中大家都面臨著這些問題:當(dāng)一次發(fā)布后,如何定位到此次發(fā)布涉及的工單任務(wù)桑涎?如果一次編譯報(bào)錯(cuò)彬向,如何找到導(dǎo)致編譯報(bào)錯(cuò)的任務(wù),并對(duì)涉及任務(wù)做回歸攻冷?如何知道一個(gè)任務(wù)的代碼提交情況娃胆?
這些問題都是由于任務(wù)、代碼提交等曼、持續(xù)集成沒有關(guān)聯(lián)關(guān)系里烦。所以在上海移動(dòng)DevOps項(xiàng)目中凿蒜,我們將代碼提交集成到對(duì)應(yīng)的開發(fā)任務(wù)中,通過任務(wù)合并按鈕出發(fā)合并胁黑,記錄合并diff和提交點(diǎn)id废封,在編譯記錄中根據(jù)提交點(diǎn)id獲取本次編譯涉及的所有任務(wù)、代碼影響面等丧蘸。
特點(diǎn)三:自動(dòng)匯總上線報(bào)告同步至BOMC
這邊的上線報(bào)告是指發(fā)布生成匯總的腳本和包漂洋, 原本每次匯總上線報(bào)告都需要通過人為去匯總腳步和打包。DevOps通過自動(dòng)追蹤開發(fā)提交的腳本力喷,根據(jù)上線自動(dòng)匯總所以腳本刽漂,生成上線報(bào)告,并在發(fā)布時(shí)將腳本在生產(chǎn)環(huán)境執(zhí)行弟孟。
特點(diǎn)四:在平臺(tái)上實(shí)現(xiàn)git增量提交
git合并只支持分支合并爽冕,但不支持單個(gè)文件合并,我們利用Git稀疏檢出機(jī)制實(shí)現(xiàn)了增量提交
特點(diǎn)五:單元測試粒度更細(xì)披蕉、案例自動(dòng)生成颈畸、定時(shí)回歸
單元測試粒度更細(xì),測試到service層的方法
通過我們提供的工具自動(dòng)錄制單元測試案例
平臺(tái)支持累計(jì)單元測試案例集
支持定時(shí)批量執(zhí)行和回歸
支持編譯時(shí)自動(dòng)選擇單元測試案例
2)缺點(diǎn)
- 壓力測試和安全測試目前沒有完善
- 持續(xù)集成和持續(xù)交付沒有無縫連接没讲,這點(diǎn)“云效”做的比較直觀
- 缺少運(yùn)維模塊眯娱,比如日志分析、進(jìn)程監(jiān)控爬凑。
- 對(duì)于上海移動(dòng)的一些“古老”的項(xiàng)目徙缴,git flow模式不一定適用
2、其他DevOps產(chǎn)品
之前在DevOps大會(huì)(上海站)嘁信,還簡單了解過平安科技的DevOps產(chǎn)品“wizard”(http://wizard.pingan.com.cn)和JFrog杰蛙中國于样,wizard是主要做了需求梳理、持續(xù)集成潘靖、一些簡單的度量管理
JFrog主要是偏向于持續(xù)交付