编程与软件开发

JetBrains 推出 Warm Agents 插件,减少 TeamCity 中构建代理的等待时间

JetBrains 为 TeamCity 平台推出了 Warm Agents 插件,自动维持指定数量的预先准备好的云构建代理,以减少 CI/CD 任务的等待时间。但缩短等待时间需要消耗构建许可证,并承担闲置云资源的运行成本。

2026-10-07
1 分钟阅读
5 浏览量
certi.news Editorial Team
JetBrains 推出 Warm Agents 插件,减少 TeamCity 中构建代理的等待时间

JetBrains 为 TeamCity 平台推出了 Warm Agents 插件,用于解决持续集成和持续交付环境中最常见的延迟问题之一:在测试或构建过程开始前等待云构建代理启动。该插件允许针对每个云镜像维持目标数量的闲置且已启动的代理,使 TeamCity 在代理数量低于指定水平时立即开始提供新的代理。

该插件适用于 TeamCity 支持的任何云服务提供商,因此适合使用临时代理、而不是让完整构建基础设施持续运行的团队。这一功能尤其面向短时任务,因为此类任务的环境准备时间可能长于实际执行时间;例如,启动缓慢的云端 Windows 代理可能会让一个只需一分钟的测试在队列中额外等待数分钟。

实际会发生什么变化?

TeamCity 不再只在任务到达时创建代理,而是监控每个云镜像的闲置代理数量,并在数量低于目标时启动新的实例。可以通过 REST API,或通过路径 Project Settings | Integrations | Warm Agents 中的项目设置来配置数量。将目标设置为零,即可停止为特定镜像保留就绪代理。

该插件要求使用 TeamCity 2024.12.3 或更高版本,并要求项目中已配置云配置文件和云镜像,同时需要 Manage project’s agent cloud profiles 权限。通过 JetBrains Marketplace 安装并启用后,可以使用 REST API 或 teamcity-cli 工具进行管理。

速度的成本与扩展限制

Warm Agents 并不会免费带来加速。每个处于就绪状态并正在运行的代理都会消耗一个构建代理许可证,闲置的云实例也会继续为云服务提供商产生费用。因此,该插件在等待时间和运营支出之间进行了明确取舍;如果实际需求较低,提高目标数量并不总能带来实际改善。

TeamCity 会遵守云镜像设定的运行实例最大数量,即使代理目标被设置为更高的数值也是如此。此外,实例会分批启动,并在批次之间设置短暂间隔,因此达到较高目标可能需要一些时间。降低目标时,TeamCity 不会强制停止正在运行的代理;云镜像定义的闲置超时仍然有效,并且为了维持目标数量,部分已停止的实例可能会被重新启动。

调度与度量

JetBrains 建议使用计划任务根据需求模式调整目标数量,例如在早晨提高目标、在晚上将其降至零。可以通过 Kotlin DSL 和 REST API 调用来执行此操作,同时将 OAuth 令牌作为密码类型参数存储,以免其出现在构建日志中。

该插件还会针对每个云镜像提供 Prometheus 格式的指标,包括使用率和饱和度指标,帮助团队了解需求高峰期,以及就绪代理数量是否能够应对队列。在多节点环境中,必须通过专用的 Cookie 配置文件将指标请求定向到主节点。

为什么这一消息很重要?

该插件提供了一种直接机制,可以将代理准备时间从不可预测的延迟转变为可配置、可监控的资源。对于拥有短时、重复任务或可预测需求高峰的团队而言,它的实际价值更大;而对于运行较为间歇的项目,保留预热代理的成本可能并不值得。因此,采用该插件需要比较闲置成本与实际等待时间,并利用指标调整目标,而不是选择一个固定的高数值。

新闻来源
JetBrains Blog
查看原始来源 ↗
c
作者

certi.news Editorial Team

同一分类

你可能还喜欢

查看所有新闻