极狐Gitlab hero border pattern left svg 极狐Gitlab hero border pattern right svg

极狐GitLab vs GitLab vs GitHub vs Gitee

市面上常见的与代码托管有关的平台对比分析。

免费试用

极狐GitLab、GitLab、GitHub、Gitee 都是市面上常见的与代码托管有关的平台,但是这四种产品还是有所差异的。下面会做一个对比分析。

背景介绍

这四个 Giter 的发展历史各不相同,GitHub 历史最长,在 2008 年上线 [1] ;GitLab 其次,GitLab 在 2011 年上线 [2] ;接下来是 Gitee,在 2013 年推出 [3] ;最后是极狐GitLab,成立于 2021 年 3 月 18 日 [4] 。四种产品的发展简史如下图所示:


4g-webiste


产品定位

  • 极狐GitLab:是一个一体化的 DevOps 平台。关于极狐GitLab 和 GitLab 的关系,可以查看为什么选择极狐GitLab?极狐GitLab 与 GitLab 的协作模式章节。

  • GitLab:是一个一体化的 DevOps 平台。提供覆盖软件全开发生命周期的管理功能。提高企业 DevOps 能力。

  • GitHub:是一个开发者平台。目前是开源项目的主要集散地。

  • Gitee:是一个代码托管平台。


产品对比

代码是否开源

GitLab 是采取“核心开放”的开源模式(即核心代码开源,企业版代码源码可见),采用的是 MIT license ;极狐GitLab 和 GitLab 采取同样的核心开放模式,但是使用的是极狐 license,详细内容可以查看关于极狐GitLab版本说明中许可证模式章节。 GitHub 和 Gitee 是代码托管平台,但本身产品是闭源的。

文档完备情况

极狐GitLab、GitLab、GitHub 都有很完整、详细的文档,能够帮助用户快速理解、使用产品。而 Gitee 的完备情况不如前述的三种产品,仅有部分帮助文档。

文档的完备是一个优秀的项目或者产品的必备因素。

私有化部署

GitLab 和 极狐GitLab 都支持私有化部署,用户可以在各自的官方下载页面下载安装包,安装部署即可完成私有化部署。这也是极狐GitLab 和 GitLab 受用户欢迎的重要原因之一。而 GitHub 和 Gitee 不支持私有化部署。

上述的私有化部署指真正的私有化部署,也就是说用户可以在不借助产品团队的指导或者特性化开发的前提下完成自主私有化部署。

项目管理

极狐GitLab 和 GitLab 具有项目管理功能——利用自身的一些功能特性实现,诸如 Epic、Board、Roadmap、Milestone 等,能够展示出当前项目的进展情况,方便及时发现瓶颈点。GitHub、Gitee 则没有类似的功能。

镜像 & 包仓库

极狐GitLab 和 GitLab 均提供开箱即用的镜像仓库服务,仓库使用方式比较灵活而且 API 丰富,能够满足用户的多种需求。关于极狐GitLab 的镜像仓库使用可以参考博客极狐GitLab 镜像仓库的使用技巧。此外,极狐GitLab、GitLab 还内置 Package Registry,同时支持 maven、npm、Helm 等多种包的存储。GitHub 在 2019 年也推出了 Packages 的服务,用于为用户提供 Container Registry & Package 服务。但是,Gitee 目前为止还没有提供类似的服务,如果用户需要存储镜像,则需要借助第三方镜像仓库服务。

镜像在云原生时代扮演着重要的角色,其存储对于整个软件开发生命周期和软件供应链安全都是非常重要的。镜像仓库应是一个优秀的 DevOps 平台不可或缺的能力。


CI/CD

这四种产品推出 CI/CD 功能的时间不一样:

  • GitLab 在 2015 年推出 CI/CD 功能;
  • GitHub 在 2018 年 10 月份推出 Beta 版 CI/CD 功能(GitHub Action);
  • Gitee 在 2020 年推出 CI/CD 功能;

所以,极狐GitLab/GitLab 已经在 CI/CD 领域沉淀了多年,而且每月迭代版本都会有关于 CI/CD 相关的特性发布,目前功能比较强大,使用方式也很灵活。此外,极狐GitLab/GitLab/GitHub 都使用 Runner 来实现 CI/CD Pipeline 的执行,Runner 可以使用产品默认提供的,也可以自主安装到用户自己所在的服务器上。而 Gitee 推出 CI/CD 功能较晚,目前没有类似的功能实现 CI/CD Pipeline 的灵活执行。

此外,GitHub Action 采用了 Marketplace 的策略来方便用户灵活构建自己的 CI/CD Pipeline,但是由于 Marketplace 缺乏安全保证机制,使用 Marketplace 上面的组件需要保持安全警惕。

GitOps 支持

GitOps 是云原生应用程序部署和管理的新模式,能够极大的简化云原生应用程序的部署,提高开发人员和运维人员之间的协作效率。极狐GitLab 和 GitLab 在 13.x 版本中引入了对 GitOps workflow 的支持。详细的内容可以查看博客文章极狐GitLab Kubernetes Agent 是如何支持 GitOps workflow 的?。而 GitHub、Gitee 暂时没有对 GitOps 的支持能力。


DevSecOps

从 Anchore 2021 年软件供应链安全报告 [5] 中可以看出,安全将会是众多公司或者组织的首要工作,与软件供应链是否安全密切相关。在安全方面,极狐GitLab 和 GitLab 有七大安全利剑:容器镜像扫描、静态应用安全测试 (SAST)、动态应用安全扫描(DAST)、密钥检测、License合规、依赖项扫描以及模糊测试。DevSecOps 能力覆盖整个软件开发生命周期的各个阶段。GitHub 的安全能力是通过 Advanced Security [6] 来提供的,包含 Code scanning、Secret scanning、Dependency review等,但并不是覆盖软件开发全生命周期的。而 Gitee 仅仅通过 Gitee Scan [7] 来对代码缺陷、代码规范等做一些扫描,安全能力同样不是覆盖软件开发生命周期的。

内置集成

极狐GitLab、GitLab 提供很多内置的第三方集成(诸如 Jenkins、Slack、Jira 等),而 GitHub 不提供内置的第三方集成,都是第三方提供对 GitHub 的集成。 Gitee 介于 极狐GitLab、GitLab 和 GitHub 之间,有少量的内置集成(如 Jenkins)。

云原生安装

极狐GitLab/GtiLab 均支持云原生的安装方式(Docker/Helm/Operator),而且均有官方的镜像和 Chart,能够方便用户在云原生的环境中运行极狐GitLab/GitLab 实例。GitHub 与 Gitee 由于不支持自主私有化,目前并不提供相关的镜像、Chart、Operator。

开发者云环境

极狐GitLab/GitLab 已经和 Gitpod [8] 做了集成,能够帮助开发者快速构建云上的开发环境,提升开发效率和开发体验。GitHub 也可以与 Gitpod 完成集成,同时 GitHub 在被微软收购后也和自家的产品 Visual Studio Code 在融合,为开发者提供云开发环境。而 Gitee 到目前为止,没看到类似的功能特性。


对比总结

对比条目 极狐GitLab GitLab GitHub Gitee
DevOps 平台
是否开源
文档完整度 完整 完整 完整 欠缺
自主私有化部署 支持 支持 不支持 不支持
项目管理 支持 支持 不支持 不支持
镜像 & 包仓库 支持 支持 支持 不支持
CI/CD
Runner self-host 支持 支持 支持
GitOps 支持 支持 不支持 不支持
DevSecOps
内置集成
云原生安装 支持 支持 不支持 不支持
开发者云环境 支持 支持 支持 不支持

免费试用极狐GitLab 30天

有疑问? 联系我们

Gitlab x icon svg

30天免费试用极狐GitLab专业版

极狐GitLab不仅是源代码管理或CI/CD工具,它是一个覆盖完整软件开发生命周期和DevOps的开放式一体化平台。

免费试用
Git为Software Freedom Conservancy的注册商标,GitLab为GitLab B.V.的注册商标,我们已获授权使用“极狐GitLab”。 鄂ICP备2021008419号-1