top of page

GitHub Actions 定价冲击引发开发者对云臃肿的反击

GitHub 上个月提高了 Actions 的使用价格。许多独立开发者和小团队报告称,账单在更改后几天内大幅上升。

此举暴露了日益扩大的分歧。云提供商继续宣扬弹性扩展,而预算有限的用户首先感受到压力。

本文探讨了由此引发的反击。它聚焦于效率主张与独立开发者日常成本现实之间的冲突。

开发者描述了突然的工作流调整。有些人将作业完全移出了 GitHub。

价格上涨细节迅速浮出水面

GitHub 在其博客上发布了更新后的费率表。基于分钟的计费针对更大规模的运行器和并发作业进行了调整。这些变化影响了标准运行器的每分钟费率,并为许多项目为加快反馈循环而开始采用的更大实例规模引入了更高的乘数。

团队在第一个计费周期就注意到了差异。几个独立项目报告称成本在没有增加使用量的情况下翻倍。一位开发者跟踪一个包含八个并行作业的适度单体仓库,发现月支出在调整生效后从 18 美元升至 47 美元。另一位负责文档密集型仓库的维护者记录到,一旦并发作业限制应用于计划运行,支出增加了 3.2 倍。

该公司将持续的基础设施费用作为原因。同时指出向付费客户提供扩展的功能集,包括新的更大运行器类别和改进的缓存基础设施。社区成员立即在公共仓库中进行了比较。列出前后运行的电子表格在论坛和 GitHub Discussions 上流传,使开发者能够模拟自己在新层级下的预计支出。

除了原始数字外,定价结构还引入了新变量,使预测变得复杂。在 Windows 或 macOS 运行器上运行的作业现在承担更高的乘数,并发上限即使在开发者已并行化矩阵时也强制顺序执行。净效应是许多以前免费的配置现在在计费周期的第一周就进入付费领域。与公告一起发布的文档澄清,一旦超过某些阈值,缓存依赖项的存储也将产生单独费用。

进一步审查显示,新费率追溯适用于超过更新后免费层级分配的任何使用量,使许多维护者在周期中措手不及。例如,一个依赖于跨三个操作系统和五个 Python 版本进行矩阵测试的 Python 工具项目,在一周内从零计费分钟立即跃升至超过 2400 计费分钟。更高的每分钟成本与更低的有效免费额度相结合,意味着即使是提交频率的适度增加,也会比预期更快地将项目推入付费领域。

来自一位 TypeScript 库维护者的另一个具体例子,他跟踪了 14 个功能分支的指标。在更改之前,每晚的依赖扫描和拉取请求矩阵作业都舒适地保持在免费配额内。此后,相同的活动模式产生了持续的超额,促使立即切换到条件触发器,只有在存在特定标签或针对主分支时才执行完整矩阵。这一单一调整在后续周期中将计费分钟数减少了 47%,表明定价冲击迫使快速尝试使用工作流元数据。

开发人员还发现,新的存储计费适用于超过七天的工件保留,迫使对清理策略做出额外决定。一个团队使用 GitHub API 自动化了工件过期脚本以保持在阈值以下,但增加的维护开销降低了托管运行程序的原始便利性。随着时间的推移,这些增量约束不断累积,将曾经感觉无缝的服务转变为需要不断警惕分钟级使用模式的系统。

独立开发者承受直接压力

独立构建者和小型开源维护者在狭窄的利润空间中运营。许多人依赖现在在新结构下更快耗尽的免费层分钟。此更改不成比例地影响那些在每次推送时触发工作流以及每晚安排的依赖更新和安全扫描作业的项目。

一位维护者描述了暂停非关键分支的自动化测试。该项目现在要求在 CI 执行之前明确添加标签,而不是在每个功能分支上运行完整矩阵。另一位将夜间作业转移到之前闲置的备用 VPS 上运行的自托管硬件上过夜。这些响应并非孤立。多平台上的讨论显示了反复出现的削减模式,包括减少矩阵维度、移除 Windows 和 macOS 作业,以及依赖有时会引入不稳定性的缓存策略。

大型组织通过现有预算吸收这一变化。较小的团体缺乏这种缓冲,必须在减少覆盖范围、增加个人财务贡献或迁移出平台之间做出选择。几个项目报告称,贡献者撤回了补丁,因为增加的审查开销不再值得运行测试套件的成本。在一个记录的案例中,一个流行的 CLI 工具在维护者发布说明解释说每个额外的矩阵作业现在都代表可衡量的个人费用后,失去了三名常规贡献者。

这种压力也改变了贡献模式。新贡献者现在经常提交代码而不期望每次迭代都进行 CI 验证,将最终验证的负担转回维护者。这减慢了合并速度,并增加了细微的平台特定错误进入生产的可能性。一些维护者通过创建镜像托管矩阵子集的轻量级本地测试工具来响应,但这些工具很少能实现完全对等,并且需要持续的同步努力。

云可扩展性承诺遭遇预算限制

GitHub 将 Actions 推广为其集成平台的核心优势。该服务承诺无需本地硬件管理即可实现简单扩展。最初的价值主张集中在消除对专用构建服务器的需求,同时仍提供快速的按需执行。

然而,最近的调整凸显了不匹配。弹性定价使资金稳定的团队受益多于自掏腰包的团队。整个星期提交活动稳定的项目体验到更可预测的成本,而突发工作负载——开源项目响应问题峰值时常见——现在会招致更高的惩罚。

批评者认为该模型奖励大量客户而惩罚间歇性使用。他们指出免费层耗尽发生得更早,推动即使是轻度用户也转向付费计划。支持者指出自托管替代方案有其自身的维护开销,包括安全补丁、运行程序更新以及共享硬件上的嘈杂邻居干扰风险。紧张关系集中在谁来吸收基础设施增长成本。GitHub 指出扩展的运行程序选项和存储。开发人员反驳说基本使用明显变得更贵。这种摩擦回响了早期的平台转变,即最初慷慨的层级后来在用户习惯依赖服务后收紧。

迁移选项获得新的关注

一些团队开始测试替代的 CI 提供商。热门目的地包括 GitLab CI、CircleCIBuildkite 和自管理的 Jenkins 实例。每个选项在并发限制、定价粒度和与 GitHub 仓库的集成深度方面呈现不同的权衡。

其他团队重新启用了之前退役的本地运行器。自托管设置需要持续维护和安全补丁。他们还失去了某些托管便利功能,例如 GitHub 的依赖缓存和预构建操作的市场。迁移的团队经常记录重写依赖 GitHub 特定上下文或密钥管理的工作流所花费的时间成本。

迁移决策取决于项目规模和对运维工作的容忍度。几位经验丰富的开发者在公开帖子中记录了他们的切换过程,包括逐步的运行器配置脚本和比较三个月期间的成本模型电子表格。这一趋势反映了人们更广泛地寻求可预测的支出,而非最大规模。

自托管运行器的技术限制

自托管运行器减少了每分钟计费,但引入了新的运维层面。管理员必须处理操作系统更新、运行器版本升级、网络出口规则和密钥轮换,而没有 GitHub 提供的托管隔离。单个受损的运行器可能会暴露仓库密钥,或者如果没有正确分段,则成为供应链攻击的向量。

硬件限制也很重要。虽然云运行器会自动扩展,但固定的自托管池在高峰期可能会排队作业,从而抵消开发者最初寻求的速度优势。尝试使用竞价实例或廉价 VPS 集群的组织报告了围绕运行器可用性和作业重试的额外复杂性。

对开源项目的实际影响

定价变化影响的不仅仅是个人开发者。依赖志愿者资助的 GitHub 账户的开源项目现在面临艰难的治理决策。一些维护者已开始添加明确 earmarked 用于 CI 成本的赞助层级。其他人则引入了贡献指南,除非赞助商承担由此产生的费用,否则不鼓励使用大型自动化测试矩阵。

下游影响包括拉取请求的反馈变慢,以及对不太常见平台的测试覆盖率降低。以前享受即时 CI 验证的贡献者可能会遇到更长的等待时间或直接跳过作业。这种动态有扩大资金充足项目与资源最少项目之间差距的风险。

限制与长期风险

依赖任何单一供应商的定价轨迹都存在风险。即使 GitHub 针对小型账户引入定向折扣,未来的调整也可能再次针对相同的用法模式。自托管解决方案转移而非消除成本:组织现在必须为硬件、电力和工程时间预算,而不是按分钟计费。

另一个风险在于工具锁定。针对 GitHub Actions 语法和市场操作编写的工作流在迁移到其他平台时需要大量重写。过度优化当前托管功能的团队以后可能会发现大量的迁移摩擦。

开发者社区的回应与有组织的反击

反弹不仅限于个人投诉,还扩展到了协调一致的社区努力。维护者创建了共享仓库,记录了准确的前后成本表格,一些开源基金会开始起草联合信函,要求为非商业项目提供更清晰的定价层级。

一些项目尝试了混合模型,仅将最关键的作业保留在托管运行器上,而将其他所有内容卸载。其他项目更积极地探索使用可重用工作流和复合操作,以便单个作业总体上消耗更少的分钟数。这些变通方法虽然有创意,但往往以简单性换取成本控制,并引入了新的故障点。

与替代 CI/CD 平台的比较

GitLab CI 为公共仓库提供了更慷慨的免费层级,以及对作业超时的细粒度控制,从而减少浪费的分钟数。CircleCI 提供基于信用的计划,带有明确的每月免费额度,许多团队发现这更容易预测。Buildkite 强调自托管代理与托管控制平面的结合,吸引了希望进行托管编排而无需完全暴露于云计费的组织。

在自管理基础设施上的 Jenkins 对于需要最大程度定制的项目仍然很受欢迎。然而,每种替代方案都会引入集成开销。对于深度嵌入 GitHub 生态系统的仓库,迁移工作流需要重写操作引用、重新配置密钥存储,并重建以前开箱即用的自定义市场集成。

仍然可行的成本优化策略

开发者们提出了一些实用的策略来缓解影响,而无需完全迁移。缓存策略可以使用 actions/cache 通过明确的键层次结构进行更精确的调整,以防止不必要的重新下载。将大型矩阵拆分为较小的、条件触发的作业可以减少并发乘数。夜间依赖更新作业可以合并到单个计划工作流中,该工作流重用之前运行的构件。

一些团队现在用手动批准门控标记高成本操作系统,或仅将其限制在发布分支上。其他团队通过仓库规则集强制执行最小运行器大小,以便轻量级作业不再意外消耗过大的实例。

受影响生态系统的案例研究

Python 和 JavaScript 工具项目代表了受影响最严重的两个类别,因为它们有广泛的矩阵测试要求。一个流行的 Python linter 在成本超过项目适度的赞助收入后,将其测试范围从三个操作系统上的七个 Python 版本减少到仅 Linux 上的五个版本。JavaScript 生态系统也出现了类似的压缩,一些框架仓库完全移除了 Windows 作业。

接下来值得关注的内容

监控 GitHub 的季度使用报告,留意活跃仓库的变化。小型项目参与度的下降将强化定价压力的说法。跟踪竞争对手免费层级扩展的公告。竞争对手服务的任何重大变化都可能加速迁移数量。关注开源项目分享的自托管运行器采用指标。围绕本地执行的文档和工具增加将表明持续从托管 Actions 转向的趋势。

这三个信号将表明当前的反弹是短期反应还是 CI 偏好的持久转变。

常见问题

是什么触发了最近的 GitHub Actions 定价变更?

GitHub 调整了标准和更大运行器的每分钟费率,同时收紧了并发规则和免费层级阈值,导致具有并行作业或计划工作流的项目的账单上升。

独立开发者如何应对更高的 CI 成本?

许多人减少了矩阵维度,添加了手动批准门,切换到条件触发器,或将部分工作负载迁移到自托管运行器和 GitLab CI 或 CircleCI 等替代平台。

新定价是否对所有仓库类型的影响相同?

否。具有志愿者资助和突发工作负载的公共开源项目感受影响最大,而具有可预测使用量的资金充足的商业团队通过现有预算吸收了增加。

自托管运行器是完整的解决方案吗?

它们消除了每分钟计费,但需要持续维护、安全更新和基础设施管理,许多独立维护者缺乏时间或专业知识来可靠地处理这些。

关注快速发展的技术故事的团队通常需要一个地方来保存源笔记、会议上下文和后续问题。轻量级的 AI 知识库 可以使这些移动的部分在新闻周期变化后更容易重新访问。

 
 

免费开始

一款本地优先的AI助手,具备个人知识管理功能

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

在你的大脑里添加一个搜索栏

Ask remio

记住一切

​无需整理

bottom of page