版权申明: 本文转载于公众号 [JavaGuide]。
原文链接:【https://mp.weixin.qq.com/s/A7…】
前言
大家好,我是 Gudie。明天的内容次要是为了帮忙大家在进行代码托管工具选型时可能思考得更加全面。
大家平时也接触 Github、Gitee 这些开源场景的代码托管平台,他们对集体开发者敌对,能够接触到很多优良的开源我的项目。但对团队代码治理,光这些还不够,还须要思考老本、速度、和其余研发工具买通等。最近在帮初创企业团队做代码托管的选型,因为公司业务属性,迭代比拟快,人力缓和,没有足够资金老本投入自建代码托管,而且最放心的是本人搞的话容灾安防做的不到位,导致企业代码数据出问题。
网上代码托管选型的文章不少,不过大多内容有点长远,很多最新的平台没有包含进来,集体花了大略一个星期的工夫,把目前市面上比拟火的代码托管平台(开源托管平台:Github、Gitee;企业级托管平台:Gitlab、阿里云效 Codeup、腾讯 Coding)做了一些比拟,比拟的维度包含速度、老本、产研工具链完整性、平安、统计报表等,心愿能够帮忙正在进行代码托管选型的技术同行做决策选型。
在开展具体比拟前,先给出集体体验的论断供大家参考,不便大家对应到关注的内容:
维度 | Github(国外) | Gitlab(国外) | Gitee | 阿里云云效 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(https://codeup.aliyun.com/)了,同时带了个云效的品牌名,降级为提供笼罩项目管理、代码治理、测试治理、继续集成、制品治理、公布治理的 DevOps 一站式研发治理平台。
听起来挺简单,简略说就是你在开发过程中须要用到的各种工具都在一个平台上提供给你了,违心用哪些你本人选。这对于企业来说大大降低了治理难度,以前有一堆账号一堆工具,切来切去本人都凌乱了,数据也扩散在各个工具里,人也不好管,来个新人教半天讲不明确。当初一个平台一套账号就搞定了。
鉴于本文次要聊代码托管,就把云效外面托管产品 Codeup 拎进去看。它提供基于 Git 的代码托管服务,主打企业级托管,因而在管控和平安层面做了不少增强,因为在国内,访问速度相比 Gitlab、Github 快不少。
Codeup 也提供私有化部署服务,不过目前看价格相比私有云稍贵,适宜有估算、对代码上云有顾虑的企业。
腾讯 CODING
CODING 是面向软件研发团队的研发合作治理平台,倒退方向和下面阿里云一样,也是 DevOps 一站式。
CODING 原本专一做代码托管,产品比拟小而美,很适宜集体开发者应用,正因为投合年老开发者的形象,所以其 LOGO 是个可恶的小猴子(程序猿)。然而在 2019 年被腾讯收买成为其全资子公司后,开始转型做企业服务,将个人空间降级成为了团队空间,陆续退出了测试、继续集成、制品库、部署治理等模块,也反对对接腾讯云账号体系了,性能维度逐步丰盛,尽管有的功能模块能力还绝对简略,然而撑持小团队的简略研发场景是齐全没问题的。
同样的,因为是国内的云服务,访问速度比拟快:
在聊场景的时候,顺便简略介绍了国内外这几家比拟有名的平台背景,接下来我会从不同的个性上比拟这几个平台的差别,分享我的教训给大家参考。
企业 / 团队托管场景的比拟
因为如果是开源场景,选型曾经十分明确了:国外的 Github 或国内的 Gitee。
接下来谈谈适宜企业、团队应用的代码托管我倡议关注些啥,这部分次要剖析 Gitlab、Codeup 和 Coding 这三个企业级的代码托管产品。
速度
我集体对代码托管平台的要求首先就是速度肯定要快,毕竟每天都得用,如果推拉速度慢十分影响体验。
我应用 5M 做 PUSH 测试,180 M 的示例代码库做 CLONE 测试,在固定网络下别离在三个平台推拉,统计的工夫如下:
参考维度 | Gitlab(国外) | 阿里云云效 Codeup | 腾讯云 Coding |
---|---|---|---|
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 要配一堆货色,用云效抉择几个参数就连贯上了,这点挺让人惊喜。
当然,代码托管产品还具备其余能力如代码检测、代码评审等,我就没有一一比对了,目前只列举了我最关注的几个方面,有趣味你们也能够去操作体验一下。
地址:https://www.aliyun.com/produc…