内容提要
Azure Pipelines新增Apple Silicon原生macOS代理(arm64),支持macos-26-arm64及Xcode 27镜像,采用按分钟付费模式。开发者可在GitHub托管代理池中构建测试,避免模拟开销,并通过分析标签页和Azure成本管理监控使用量。预览期间每SKU限8个虚拟代理,未来将增加更多代理类型。
延伸解读
计费模式变化:从并发到按分钟
新代理采用按分钟计费,与原有基于并发数的计费模式不同。这意味着成本与使用时长直接挂钩,适合负载波动大的团队,但需注意监控用量以避免意外支出。启用后,现有管道不受影响,只有显式切换到新池才会产生新费用。
镜像命名转向Xcode版本
新镜像命名以Xcode主版本为基础(如xcode-27),而非操作系统版本。这反映了CI作业通常按工具链定义的需求,便于精确匹配项目所需的Apple工具链。但需注意,Xcode 27镜像仅支持arm64,且包含的工具和版本与旧镜像不同,迁移时需验证依赖兼容性。
预览期限制与未来扩展
预览期间每个SKU最多8个虚拟代理,若需更多可提交支持工单。此外,新池目前仅提供macOS代理,但计划后续增加更大的Linux和Windows代理。团队应关注官方更新,以便及时利用更多代理类型。
Q&A
Azure Pipelines 中新增的 Apple Silicon 代理有什么优势?
新增的 Apple Silicon 代理是原生 arm64 架构,直接在 Apple Silicon 上运行工作负载,避免了在 Intel 硬件上模拟 arm64 的开销和兼容性问题,同时让团队能够针对当前 Apple 设备和开发机器使用的架构进行验证。
如何在 Azure Pipelines 中使用 Apple Silicon 代理?
首先在 Azure DevOps 组织的计费设置中启用 GitHub-hosted agents,等待池配置完成后,在 YAML 管道中指定 vmImage 为 'macos-26-arm64' 或 'macos-26-arm64-xl' 即可使用。
Azure Pipelines 中新的按需付费代理与 Microsoft 托管代理的计费方式有何不同?
Microsoft 托管代理采用基于并发数的计费模式,按并行运行的最大作业数付费;而 GitHub 托管代理采用按需付费模式,按管道执行时间每分钟计费。
如何监控按分钟计费的代理使用量?
可以通过 GitHub-hosted agents 池中的 Analytics 标签页查看每个项目使用的分钟数、按镜像过滤使用量,并可按代理 SKU 和管道进行下钻。此外,使用量也显示在 Azure Cost Management 中,支持预算和警报功能。
Xcode 27 镜像的命名约定有什么变化?
从 Xcode 27 公共预览版开始,macOS 镜像的命名基于主要的 Xcode 版本,而不是底层操作系统。每个镜像版本包含一个主要的 Xcode 版本,这样更容易定位项目所需的 Apple 工具链,并反映 macOS CI 作业通常按 Xcode 工具链定义的方式。
在预览期间,每个 SKU 的虚拟代理数量限制是多少?如何提高?
预览期间,每个代理 SKU 的虚拟代理数量限制为 8 个。如果需要提高特定 SKU 的虚拟代理数量,可以创建支持工单。
启用 GitHub-hosted agents 池后,现有管道会受影响吗?
不会。启用后,现有管道不会自动使用新池,除非显式更新管道以使用它。现有的标准 Intel 镜像继续在 Microsoft 托管的 'Azure Pipelines' 池中可用。
为什么新的 macOS 版本只在 GitHub-hosted agents 池中提供?
因为 Apple 表示 macOS 26 Tahoe 是最后一个原生支持 Intel 的版本,所以新的 macOS 版本仅在 GitHub-hosted agents 池中提供,而 Azure Pipelines 池继续提供标准尺寸的 Intel 代理,并支持新的 Ubuntu 和 Windows 版本。