托管选项与定价

GitHub 提供了多种不同的许可证和托管选项。了解这些选项对于为企业做出正确选择非常重要。

托管选项

GitHub( https://github.com )托管在美国的数据中心。你可以免费注册 GitHub,免费获得无限制的私有和公共仓库。GitHub 的许多功能对于开源项目是免费的,但私有仓库则需要付费。

对于企业,GitHub 提供了不同的托管选项(见图 20.1):

image 2024 12 27 18 31 07 726
Figure 1. 图 20.1 – GitHub Enterprise 的托管选项

GitHub Enterprise Cloud

GitHub Enterprise Cloud(GHEC)是 GitHub 提供的 SaaS 产品,完全托管在 GitHub 位于美国的云基础设施中。你可以为用户应用额外的安全措施,并支持单点登录。GHEC 允许你托管私有和公共仓库,从而使你能够在企业背景下托管开源项目。 GHEC 保证 99.9% 的月度正常运行时间,即每月最多 45 分钟的停机时间。

GitHub Enterprise Server

GitHub Enterprise Server(GHES)是一个你可以自由托管的系统。你可以将其托管在自己的数据中心,或者托管在 Azure 或 AWS 等云环境中。你可以使用 GitHub Connect 连接到 GitHub.com,这使你能够共享许可证,并在你的服务器上使用开源资源。

GHES 基于与 GHEC 相同的源代码,因此最终所有功能会在几个月后陆续更新到服务器版。但是,云服务中提供的某些功能需要你在 GHES 上自行管理,例如 GitHub Actions 中的运行器。在云中,你可以利用 GitHub 托管的运行器;而在 GHES 中,你必须构建自己的解决方案,使用自托管运行器。

也有一些托管服务提供商可以为你托管 GHES,例如,在你所在地区的 Azure 数据中心。通过这种方式,你可以确保数据的驻留性,无需自己管理服务器。一些托管服务商还提供托管 GitHub Actions 运行器的服务。

GitHub Enterprise AE

GitHub 正在构建一个名为 GitHub Enterprise AE(GHAE)的服务。该服务目前正在为拥有 500 个以上席位的客户提供私人测试版,并且目前尚未公布何时会公开发布。

GHAE 是 GitHub 在你选择的 Microsoft Azure 区域内提供的完全隔离的托管服务。这为你提供完全的数据驻留性和合规性。

对于需要数据驻留性和合规性的客户,未来这将是一个不错的选择,但目前尚不清楚它何时会发布、定价如何以及最少需要多少个席位。

GitHub Connect

GitHub 的强大之处在于它的社区及社区所提供的价值。为了能够在服务器上利用这一点,你可以使用 GitHub Connect 将你的服务器与 GitHub 连接。你可以单独启用每个功能,如图 20.2 所示:

image 2024 12 27 18 31 59 204
Figure 2. 图 20.2 – 在 GHES 上配置 GitHub Connect

以下是可用功能的列表:

  • 许可证同步:在多个服务器或组织之间管理许可证使用情况。这有助于确保无论用户在哪里登录,都只消耗一个许可证。

  • 统一搜索:你可以允许在服务器上进行搜索,并获取来自 GitHub.com 的公共仓库的搜索结果。此外,你还可以允许在服务器上搜索,查找属于你企业的私有仓库(当然,前提是用户有权访问这些仓库)。

  • GitHub.com Actions:如果你希望在工作流中加载公共 Actions,你必须启用此选项。如果不启用此选项,你需要将所有 Actions fork 到你的服务器,并从那里引用它们。你仍然可以在组织层面配置允许哪些 Actions。

  • 统一贡献:如果不启用此选项,用户在服务器上的贡献将不会显示在其公共档案中。启用此选项后,只有贡献的数量(如提交、问题、讨论或拉取请求)会发送到 GitHub.com,且不会暴露敏感数据。

定价

GitHub 的费用是按用户每月计费的,分为三个不同的套餐:免费、团队和企业(见图 20.3):

image 2024 12 27 18 33 33 033
Figure 3. 图 20.3 – GitHub 定价套餐概览

公共仓库——因此,开源仓库——是免费的,并且包含许多免费的功能,例如 Actions、Packages 和许多安全功能。私人仓库是免费的,但功能有限,并且提供 2,000 分钟的 Actions 使用时间和 500 MB 的存储空间。关于 Actions 的定价,已经在第 7 章《运行工作流》中进行了详细介绍。

如果你真的想在私人仓库中与 GitHub 合作,至少需要购买团队许可证。该许可证包括受保护的分支、代码拥有者以及其他高级拉取请求功能。你还可以访问 Codespaces,但需要单独支付(有关 Codespaces 的定价,请参见第 13 章《Shift Left Security 和 DevSecOps》)。团队套餐包含 3,000 分钟的 Actions 使用时间和 2 GB 的包存储空间。

免费和团队套餐仅在 GitHub.com 上可用。如果需要 GHEC、GHES 或 GHAE,则必须购买 GitHub 企业许可证。该许可证包含所有企业功能,例如单点登录、用户管理、审计和策略,并附带 50,000 分钟的 Actions 使用时间和 50 GB 的包存储空间。它还为你提供了购买附加功能的选项,例如高级安全或高级支持。

许可证是按 10 个一组购买的,可以按月或按年支付。如果你想使用 GitHub 高级安全或高级支持,你必须联系 GitHub 销售团队或 GitHub 合作伙伴,他们可以为你提供报价。

除了许可证套餐外,还有一些按使用量收费的项目,包括以下内容:

  • Actions

  • Packages

  • Codespaces

  • 市场上的按使用量收费的应用程序

你可以在组织或企业层级上配置支出限额。