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