爆测一周,22年必看最细致代码托管工具测评
簡介:網(wǎng)上代碼托管選型的文章不少,不過大多內(nèi)容有點久遠,很多最新的平臺沒有包括進來,個人花了大概一個星期的時間,把目前市面上比較火的代碼托管平臺(開源托管平臺:Github、Gitee;企業(yè)級托管平臺:Gitlab、阿里云效Codeup、 騰訊Coding)做了一些比較,比較的維度包括速度、成本、產(chǎn)研工具鏈完整性、安全、統(tǒng)計報表等,希望可以幫助正在進行代碼托管選型的技術(shù)同行做決策選型。
版權(quán)聲明: 本文轉(zhuǎn)載于公眾號 [JavaGuide] 。原文鏈接:【爆測一周!22年必看最細致代碼托管工具測評】
前言
大家好,我是 Gudie。今天的內(nèi)容主要是為了幫助大家在進行代碼托管工具選型時能夠考慮得更加全面。
大家平時也接觸Github、Gitee 這些開源場景的代碼托管平臺,他們對個人開發(fā)者友好,可以接觸到很多優(yōu)秀的開源項目。但對團隊代碼管理,光這些還不夠,還需要考慮成本、速度、和其他研發(fā)工具打通等。最近在幫初創(chuàng)企業(yè)團隊做代碼托管的選型,由于公司業(yè)務屬性,迭代比較快,人力緊張,沒有足夠資金成本投入自建代碼托管,而且最擔心的是自己搞的話容災安防做的不到位,導致企業(yè)代碼數(shù)據(jù)出問題。
網(wǎng)上代碼托管選型的文章不少,不過大多內(nèi)容有點久遠,很多最新的平臺沒有包括進來,個人花了大概一個星期的時間,把目前市面上比較火的代碼托管平臺(開源托管平臺:Github、Gitee;企業(yè)級托管平臺:Gitlab、阿里云效Codeup、 騰訊Coding)做了一些比較,比較的維度包括速度、成本、產(chǎn)研工具鏈完整性、安全、統(tǒng)計報表等,希望可以幫助正在進行代碼托管選型的技術(shù)同行做決策選型。
在展開詳細比較前,先給出個人體驗的結(jié)論供大家參考,方便大家對應到關(guān)注的內(nèi)容:
| 平臺性質(zhì) | 國外開源托管平臺 | 國外企業(yè)級托管平臺 | 國內(nèi)開源托管平臺 | 國內(nèi)企業(yè)級托管平臺 | 國內(nèi)企業(yè)級托管平臺 |
| 適用對象 | 開源,個人向 | 企業(yè)級,各種類型規(guī)模團隊均適用,而自建版本有維護成本和風險,適合有人力有資本的大企業(yè)選擇 | 開源,個人向 | 企業(yè)級,功能全面,各種類型規(guī)模團隊均適用,代碼托管、CICD、測試管理等產(chǎn)品模塊可以自由搭配組合 | 企業(yè)級,功能全面,但產(chǎn)品能力較簡單,例如CICD原生支持的組件少,資源權(quán)限管理能力弱,適合小團隊場景使用 |
| 速度 | 慢(無代理 KiB/s 級) | 慢(無代理 KiB/s 級) | 中 | 快 (MiB/s 級) | 快(MiB/s 級) |
| 研發(fā)工具鏈完整性 | 托管功能完整,但平臺原生支持如測試管理、部署管理較弱,不過可以方便地通過集成三方和插件市場補足 | 托管功能完整,且具備DevOps一站式管理能力 | 托管功能完整,基本無DevOps其他模塊支持 | 托管功能完整,且具備DevOps一站式管理能力 | 托管功能完整,但DevOps其他模塊如測試管理、持續(xù)集成與部署支持較弱 |
| 安全功能 | 國外產(chǎn)品不評價 | 國外產(chǎn)品不評價 | 開源平臺不評價 | 高 | 較高 |
| 數(shù)據(jù)度量 | 插件、無企業(yè)視角 | 維度豐富(企業(yè)、庫視角,研發(fā)價值流視圖) | 看上去維度較少,主要是提交、行數(shù)的代碼貢獻指標 | 維度豐富(企業(yè)、庫視角,除了提交、代碼行這類代碼貢獻外,還有成員的評審活動參與率、千行代碼評論數(shù)、掃描問題趨勢等) | 維度較少(企業(yè)視角,目前看到提交、代碼行、合并請求次數(shù)這3個指標) |
| 價格/容量 | 基礎版免費,高級功能付費 ; eam:4美元人/月 ; Enterprise:21美元人/月 | 基礎版免費,安全規(guī)范等企業(yè)特性付費 Premium:19美元人/月Ultimate:99美元人/月 | 免費企業(yè)版;人數(shù):5人;倉庫總?cè)萘?#xff1a;5G 單倉庫:<=500MLFS:無 | 免費企業(yè)版:人數(shù):不限倉庫總?cè)萘?#xff1a;不限單倉庫:<=5GLFS:不限 | 免費企業(yè)版:人數(shù):不限倉庫總?cè)萘?#xff1a;100G單倉庫:<=2GLFS:? |
使用場景
在選型時,首先要明確你的使用場景,是想在開源社區(qū)里協(xié)作開發(fā)(通常是個人開發(fā)者),還是想要擁有私密的代碼倉庫(通常是企業(yè)團隊)。
開源協(xié)作場景
如果在意開源場景,目前可選擇國外的 Github,或是國內(nèi)的 Gitee。
Github
GitHub 代碼托管平臺,包含了全世界很多優(yōu)秀的開源項目,可以從GitHub獲取到很多很多優(yōu)秀的開源項目來進行學習,也可以將自己的項目上傳上去與他人分享,現(xiàn)在已被微軟收購。GitHub最開始并沒有免費的私有倉庫,被微軟收購之后,個人用戶才支持了創(chuàng)建私有倉庫,雖然也能支持私有庫,但他的主要場景還是集中在開源協(xié)作這件事上。
對于微軟收購GitHub,不少用戶的反應比較激烈。人們覺得開源必須得中立,有了微軟背景就不獨立了,GitHub跟開發(fā)者之間的距離,可能會越走越遠,后續(xù)如何發(fā)展得繼續(xù)觀察。
Gitee
Gitee 碼云是國內(nèi)的一個開源代碼托管社區(qū)(哈哈這名字總讓人覺得和阿里有關(guān)系,其實阿里云有自己的代碼托管服務),由于GitHub屬于國外的網(wǎng)站,因此國內(nèi)用戶訪問的時候,經(jīng)常會很慢,影響體驗,而 Gitee 不存在訪問速度慢的問題,而且中文化也比較友好,比較適合國內(nèi)的開源愛好者們使用。不過由于百度大力投資了Gitee,不少開發(fā)者認為它也不這么中立了。
雖然對比 Github 還有較大差距,不過隨著國家政策的鼓勵,國內(nèi)開源也正在快速發(fā)展的過程中。
企業(yè)/私有托管場景
如果你對代碼私密性要求比較高,通常在企業(yè)、團隊私有代碼管理場景下使用,那么國外的Gitlab,國內(nèi)的阿里云云效Codeup、騰訊Coding 是更好的選擇。
Gitlab
GitLab 利用 Ruby on Rails 開發(fā),據(jù)說最早也用過 Github 進行托管,后獨立發(fā)展為知名的代碼托管平臺,同時支持 SaaS 版和自管理的私有化部署版本,由于其豐富的代碼協(xié)作管控能力,備受企業(yè)青睞,不過因為是國外的平臺,云服務的訪問速度還是存在慢和不穩(wěn)定的問題。
對于企業(yè),還有一個選擇是私有化部署托管服務。例如 Gitlab 就開放了基礎版本供企業(yè)自行部署使用,目前在國內(nèi)企業(yè)中的使用量還是比較廣泛的。然而私有化部署是一把雙刃劍,如果企業(yè)有足夠的資本和人力,將托管服務部署在自己的服務器上感覺最安全,可是如果容災和防護不到位,宕機數(shù)據(jù)丟失、黑客拖走代碼也不是沒有發(fā)生過。所以,如果自信有足夠的技術(shù)實力的企業(yè),可以選擇私有化部署,反之,選擇大公司提供的 SaaS 托管云服務是更好的決策。
阿里云云效 Codeup
提到阿里云的代碼托管,一搜全是阿里云 Code,然而事實是這個平臺早在 2020 年就已經(jīng)升級成阿里云 Codeup?(阿里云登錄 - 歡迎登錄阿里云,安全穩(wěn)定的云計算服務平臺)了,同時帶了個云效的品牌名,升級為提供覆蓋項目管理、代碼管理、測試管理、持續(xù)集成、制品管理、發(fā)布管理的 DevOps 一站式研發(fā)管理平臺。
聽起來挺復雜,簡單說就是你在開發(fā)過程中需要用到的各種工具都在一個平臺上提供給你了,愿意用哪些你自己選。這對于企業(yè)來說大大降低了管理難度,以前有一堆賬號一堆工具,切來切去自己都混亂了,數(shù)據(jù)也分散在各個工具里,人也不好管,來個新人教半天講不明白。現(xiàn)在一個平臺一套賬號就搞定了。
鑒于本文主要聊代碼托管,就把云效里面托管產(chǎn)品 Codeup 拎出來看。它提供基于 Git 的代碼托管服務,主打企業(yè)級托管,因此在管控和安全層面做了不少加強,由于在國內(nèi),訪問速度相比 Gitlab、Github 快不少。
Codeup 也提供私有化部署服務,不過目前看價格相比公有云稍貴,適合有預算、對代碼上云有顧慮的企業(yè)。
騰訊 CODING
CODING 是面向軟件研發(fā)團隊的研發(fā)協(xié)作管理平臺,發(fā)展方向和上面阿里云一樣,也是 DevOps 一站式。
CODING 本來專注做代碼托管,產(chǎn)品比較小而美,很適合個人開發(fā)者使用,正因為迎合年輕開發(fā)者的形象,所以其 LOGO 是個可愛的小猴子(程序猿)。然而在 2019 年被騰訊收購成為其全資子公司后,開始轉(zhuǎn)型做企業(yè)服務,將個人空間升級成為了團隊空間,陸續(xù)加入了測試、持續(xù)集成、制品庫、部署管理等模塊,也支持對接騰訊云賬號體系了,功能維度逐漸豐富,雖然有的功能模塊能力還相對簡單,但是支撐小團隊的簡單研發(fā)場景是完全沒問題的。
同樣的,因為是國內(nèi)的云服務,訪問速度比較快:
在聊場景的時候,順便簡單介紹了國內(nèi)外這幾家比較有名的平臺背景,接下來我會從不同的特性上比較這幾個平臺的差異,分享我的經(jīng)驗給大家參考。
企業(yè)/團隊托管場景的比較
由于如果是開源場景,選型已經(jīng)非常明確了:國外的 Github 或國內(nèi)的 Gitee。
接下來談談適合企業(yè)、團隊使用的代碼托管我建議關(guān)注些啥,這部分主要分析 Gitlab、Codeup 和 Coding 這三個企業(yè)級的代碼托管產(chǎn)品。
速度
我個人對代碼托管平臺的要求首先就是速度一定要快,畢竟每天都得用,如果推拉速度慢非常影響體驗。
我使用 5M 做 PUSH 測試, 180 M 的示例代碼庫做 CLONE 測試,在固定網(wǎng)絡下分別在三個平臺推拉,統(tǒng)計的時間如下:
| SSH PUSH | 2.9s | 1s | 0.9s |
| SSH CLONE | 59.2s | 15.1s | 18.5s |
總結(jié):
- 在推拉速度這一條上,除非機場好,否則國外的平臺就已經(jīng)被 PASS 了;
- Codeup 和 Coding Push 速度差不多,阿里 Codeup 的 Clone 速度稍微快一點。國內(nèi)這兩家速度都是秒級ok的,操作體驗都挺好。
價格和容量
其次,價格也是需要考慮的一個因素。
在代碼托管這個白熱化市場里,大家的價格都已經(jīng)打到地板上趴著了,不計成本搶開發(fā)者是現(xiàn)狀。
對于適合企業(yè)使用的套餐,三個平臺價格和容量限制如下:
總結(jié):
- Gitlab 適合企業(yè)使用的功能是需要付費的,除了購買 SaaS 版本的高級套餐外,還可以選擇自建 Gitlab,不過這個成本和風險都比較高,僅建議有技術(shù)實力和經(jīng)費的企業(yè)考慮,而且國外產(chǎn)品的技術(shù)支持也會比較困難;
- 國內(nèi)的兩家來看,免費企業(yè)版 Codeup 給的容量會更多一些,人數(shù)、總?cè)萘亢蚅FS都是不限制,單個倉庫容量也比 Coding 大一倍以上;從付費高級版來說,價格相差19塊,基本持平。但是 Coding 的一些付費功能在 Codeup 是可以免費使用的,例如 IP 白名單、訪問審計,而且付費后 Coding 代碼、制品、流水線時長仍有限制,看起來 Codeup 的不限更加劃算;因為我們公司不考慮私有化部署,我就沒有咨詢了,大家有需要可以去他們官網(wǎng)上直接聯(lián)系客服咨詢。
研發(fā)工具鏈功能完整性
在基礎托管的能力上,大家都是 Git 的托管,功能大差不差,都能滿足企業(yè)訴求。然而企業(yè)的研發(fā)生產(chǎn)過程光代碼托管一個工具肯定不夠,所有有了 DevOps 工具鏈這么一說,從 DevOps 工具鏈完整性上來看,對比如下:
總結(jié):
- Gitlab 擴展性很強,能夠靈活定制,有技術(shù)能力、能保障網(wǎng)絡速度的企業(yè)可以選擇它;
- 基于阿里的研發(fā)管理經(jīng)驗,Codeup 的一站式產(chǎn)品能力更加成熟,能夠支持大中小各類型的企業(yè)分別在復雜、簡單的場景下按需使用其產(chǎn)品模塊,組裝出適合企業(yè)自己的研發(fā)流程規(guī)范;
- 騰訊 Coding 相對來說功能較簡單,對復雜的研發(fā)發(fā)布過程支持會弱一些,例如CICD原生支持的組件少、構(gòu)建沒有容器化、資源權(quán)限管理粒度較粗,比較適合十幾人的小企業(yè)或團隊使用;
安全性
安全是個嚴肅的話題,特別是對于企業(yè)來說,代碼可是關(guān)乎身家性命的重要資產(chǎn)。造成安全風險的原因有很多:
- 有可能是不經(jīng)意使用了不安全的開源軟件包,例如前一陣子全網(wǎng)轟動的 Log4j 漏洞事件;
- 也可能是使用了不安全的開源工具,例如國家信息安全漏洞共享平臺發(fā)布的《關(guān)于SonarQube系統(tǒng)存在未授權(quán)訪問漏洞的安全公告》(CNTA-2021-0031),對SonarQube系統(tǒng)未授權(quán)訪問漏洞(CNVD-2021-84502)作出預警,攻擊者利用該漏洞,可在未授權(quán)的情況下獲取代碼的敏感數(shù)據(jù);
- 還有可能是人為操作不當造成,例如某公司程序員把代碼不經(jīng)任何處理上傳到了 Github 的公共代碼庫,泄露了 IP 和用戶名密碼,導致黑客對整個數(shù)據(jù)庫進行了拖庫。
安全問題十面埋伏,代碼托管平臺給企業(yè)提供什么保護呢?在這一塊咱們不看國外的產(chǎn)品,他們安不安全我也拿不準,就看看國內(nèi)這兩家在安全方面做的怎么樣吧。
Codeup 和 CODING 都是大廠背書,阿里和騰訊基于自己的云安全產(chǎn)品,平臺基礎設施的安全性相信還是比較有保障的。例如 Codeup 對外宣稱的安全白皮書里明確說明了基礎設置安全、云效應用安全、數(shù)據(jù)存儲安全、數(shù)據(jù)傳輸安全等是如何實現(xiàn)的:
對于國內(nèi)云 SaaS 的托管平臺來說,阿里云 Codeup 對安全性提的最多,官網(wǎng)上也是把安全放在第一位進行宣傳,可能和它宣傳的企業(yè)級代碼托管平臺定位有關(guān),安全性是它最看重的能力。
在平臺基礎設施安全方面,兩家大廠都有保障。Codeup 還支持用戶自己可以定時將代碼自動備份到自己的OSS,不過這OSS得你自己買存儲空間。Codeup 還支持了所謂倉庫加密的能力,號稱能把存儲在云端的代碼都加密存儲,阿里的工作人員和黑客都沒法破譯存儲在云上的數(shù)據(jù)代碼,第一次看到這功能還挺有意思。
總結(jié): 從安全性來說,基礎安全能力兩家都不錯,其中阿里云云效 Codeup 看上去更加全面一些。
數(shù)據(jù)度量
企業(yè)度量大概率會和人員績效掛鉤,企業(yè)場景的度量就得?全面、準確、可定制?。在數(shù)據(jù)度量這件事上,阿里和騰訊最近都鉚足了勁在建設。
騰訊 CODING 剛上了「研發(fā)度量」模塊,還在Beta階段,可以自定義卡片和視圖,數(shù)據(jù)包括三類:
- 提交次數(shù)
- 增減代碼量
- 合并請求
視圖包括團隊和個人視圖,目前看內(nèi)容還太簡單,期待下后續(xù)的發(fā)展:
阿里云 Codeup 也開放了「效能洞察」模塊,里面的數(shù)據(jù)維度看起來是多了不少,簡單看了看有:
- 代碼總行數(shù)和變更增減量統(tǒng)計;
- 代碼提交次數(shù)、時段統(tǒng)計;
- 代碼變更量、提交次數(shù)人員排名;
- 代碼庫提交評審率、千行代碼評論數(shù);
- 代碼安全問題趨勢和個數(shù)排名;
支持分別從團隊、用戶組和個人視圖查看研發(fā)活動數(shù)據(jù),可以輔助評估成員研發(fā)貢獻情況和項目進展情況,截幾個圖示意下:
結(jié)論:
企業(yè)的數(shù)據(jù)度量除了代碼研發(fā)的,還有項目管理的。目前看 Coding 的「工作負載」模塊收費才能使用,所以無法體驗內(nèi)容,但從代碼數(shù)據(jù)統(tǒng)計來說,阿里云 Codeup 數(shù)據(jù)維度相對多一些,除了代碼貢獻這個維度外,還可以從評審活動參與率、掃描問題趨勢等維度去了解人員對代碼質(zhì)量的投入度。
最后
由于我是為企業(yè)選型,老板認為國外 SaaS 平臺的變數(shù)太多了,還是讓我關(guān)注國內(nèi)的產(chǎn)品。在速度差不多的情況下,對比了成本、安全性和數(shù)據(jù)報表這幾個重點特性后,我們團隊討論最終選擇了 阿里云云效 。
這個決定還有一個重要的原因,我們公司正在用阿里云的 ECS 服務器,配合用阿里云云效這一套研發(fā)工具非常順手,以前用 Jenkins 對接 ECS 要配一堆東西,用云效選擇幾個參數(shù)就連接上了,這點挺讓人驚喜。
當然,代碼托管產(chǎn)品還具備其他能力如代碼檢測、代碼評審等,我就沒有一一比對了,目前只列舉了我最關(guān)注的幾個方面,有興趣你們也可以去操作體驗一下。
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。?
總結(jié)
以上是生活随笔為你收集整理的爆测一周,22年必看最细致代码托管工具测评的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dubbo-Admin 正式支持 3.0
- 下一篇: 阿里园区的这个“格子间” 成为企业高效协