悄悄用 Go 重写 AI 基础设施:NVIDIA 的 GPU 云平台为何选择 Go?

悄悄用 Go 重写 AI 基础设施:NVIDIA 的 GPU 云平台为何选择 Go? 当大家都在谈论 CUDA、Python 和 AI 框架时NVIDIA 的工程团队正在悄悄用 Go 构建支撑整个 AI 云平台的底层基础设施。从 GPU 函数平台 NVCF到 AI 集群运行时 AICR再到已经有 1.8k Star 的分布式存储 AIStoreGo 语言已经成为 NVIDIA 内部 AI 基础设施的核心技术栈。这不是偶然而是一个精心设计的技术选型。大家好我是Tony Bai。2026 年 4 月NVIDIA 悄悄开源了一个 repogithub.com/nvidia/nvcf。没有大张旗鼓的发布会没有 Jensen Huang 的皮夹克登场。但如果你打开这个 repo 看一眼语言构成数字会让你一惊Go 占比 88.5%。这不是一个小工具这是驱动build.nvidia.com、NVIDIA DGX Cloud 推理服务和全球 GPU 云合作伙伴CoreWeave、Oracle Cloud 等整个控制平面的核心平台。然后你再看 AICRAI Cluster RuntimeGo 51.1%。再看 AIStore面向 AI 的分布式存储Go 75.2%1.8k Star10,219 次 commit是一个有深度的系统级项目。NVIDIA 在用 Go 构建 AI 时代的基础设施。而且这个趋势正在加速。NVCFGPU 云函数平台的全面开源它是什么NVCF 全称 NVIDIA Cloud Functions是一个用于部署、管理和运行 GPU 加速工作负载的平台。你可以把它理解为GPU 版的 AWS Lambda——但更贴近生产级 AI 推理场景的设计。你注册一个 Docker 容器或 Helm Chart指定 GPU 类型NVCF 负责处理一切路由、队列、自动扩缩容、多租户隔离。GPU 云合作商在自己的 Kubernetes 集群上运行 NVIDIA Cluster AgentNVCA算力接入 NVCF 控制平面。2026 年 4 月NVIDIA 以 Apache 2.0 协议开源了整个平台的完整代码包括控制平面、调用平面、计算平面、CLI、Helm Charts 和数据库迁移脚本——全部在一个 monorepo 里。之前的NVIDIA/nvidia-cloud-functions和NVIDIA/nvcf-go两个 repo 已归档这个新 repo 是唯一的真相来源。三平面架构Go 是粘合剂NVCF 的整体架构围绕三个独立可扩展的平面展开通过NATS JetStream连接。控制平面Control Plane运行在专用 Kubernetes 集群上负责函数生命周期管理、自动扩缩容决策和密钥管理。核心服务function-autoscalerRust30 秒扩缩容循环从 VictoriaMetrics 读取利用率决策写入 Cassandrahelm-revalGo在计算平面部署前验证 OCI 引用的 Helm ChartOpenBaoApache 2.0 的 Vault fork函数密钥静态加密运行时通过 ess-agent sidecar 注入Cassandra持久化状态和自动扩缩容的分布式锁调用平面Invocation Plane所有请求的必经之路Go 在这里是绝对主角http-invocationRust/Axum接收 HTTP/gRPC 请求发布到 NATS JetStreamllm-gatewayGoOpenAI 兼容 API内嵌 Olric 缓存实现 token 感知的速率限制grpc-proxyGo转发 gRPC 调用到函数实例ratelimiterGo使用 Olric 分布式缓存的函数级速率限制nats-auth-calloutGo支持 NKey、OIDC 和 Webhook 策略的 NATS 认证计算平面Compute Plane每个 GPU 集群运行一个 NVCANVIDIA Cluster AgentOperator。NVCA 将集群注册到控制平面消费 NATS 消息管理 Pod 生命周期。一次请求的完整生命周期从调用方的POST /v2/nvcf/pexec/functions/{id}开始到响应返回完整链路如下1. http-invocation 检查速率限制via ratelimiter gRPC 2. 请求发布到 NATS stream: Create.NVCA.*.{clusterID}.*.* 3. NVCA queue manager 消费消息 4. 创建 ICMSRequest Kubernetes CR通过 NATS sequence 去重 5. MiniService controller 协调创建 Pod 或应用 Helm Chart 6. 函数 Pod 通过 WorkerService gRPC 回连ConnectOnce 7. 响应返回调用方 8. 完成时Terminate.NVCA.{clusterID} 触发 Pod 删除和 GCScale-to-Zero 的关键设计NATS 作为持久化请求缓冲区NVCF 解决的最有趣的工程问题是 GPU 工作负载的 Scale-to-Zero。传统方案如 Knative在 Scale-up 期间请求会面临超时压力或重试。对于加载大型模型可能需要数十秒乃至数分钟的 GPU 推理来说这个问题会非常严重。NVCF 的解法是把 NATS JetStream 当做一个持久化请求缓冲区自动扩缩容器将期望实例数降为 0没有 Pod 运行新请求到达发布到 NATS JetStream消息被持久化自动扩缩容器检测到队列深度 0将期望实例数提升到 1NVCA 收到创建消息启动 PodPod 通过 WorkerService gRPC 连接拉取缓冲的消息响应通过一直保持打开状态的http-invocation连接返回请求永远不会被丢弃。调用方在冷启动时等待更长时间但请求一定会完成。这是 NATS 持久化消息的直接价值。对比维度NVCFNATS JetStreamKnative ServingScale-up 期间的请求缓冲零丢失可能超时或重试失败冷启动行为队列缓冲Pod 启动长冷启动期间有压力多集群路由内置per-cluster 持久消费者不支持面向对象GPU 推理工作负载轻量无状态 HTTP 服务AICRAI 集群运行时Go 写的集群配方书为什么需要 AICR搭建一个 GPU 加速的 Kubernetes 集群是出了名的难。内核版本、驱动、容器运行时、Operator、Kubernetes 版本——任何一个环节的细微差异都可能导致难以诊断的问题而且极难复现。这些知识以前只存在于 NVIDIA 内部的验证流水线和运维手册里。AICR 把这些知识公开了。项目地址github.com/NVIDIA/aicrAICR 全称 AI Cluster Runtime将已知可行的驱动、Operator、内核和系统配置组合封装成版本锁定的Recipe配方——可以被 Helm、ArgoCD 和其他部署框架直接使用的可复现制品。核心概念Recipe 系统一个 Recipe 是针对特定环境的版本锁定配置。你描述你的目标云厂商、GPU 型号、操作系统、工作负载意图Recipe 引擎将其与一个经过验证的 Overlay 库进行匹配——从基础默认值到云厂商、加速器、操作系统、工作负载特定调优自底向上分层组合。每个 AICR Recipe 具备三个特性Optimized优化针对特定硬件、云、OS 和工作负载意图调优Validated已验证发布前通过自动化约束和兼容性检查Reproducible可复现相同输入产生完全一致的部署结果CLI 展示五分钟上手# 安装 CLIGo 编译的单一二进制 curl -sfL https://raw.githubusercontent.com/NVIDIA/aicr/main/install | bash -s -- # 采集集群当前状态快照 aicr snapshot --output snapshot.yaml # 为你的环境生成经过验证的 Recipe aicr recipe --service eks --accelerator h100 --os ubuntu \ --intent training --platform kubeflow -o recipe.yaml # 对比 Recipe 与集群实际状态找出差异 aicr validate --recipe recipe.yaml --snapshot snapshot.yaml # 渲染为部署就绪的 Helm Charts aicr bundle --recipe recipe.yaml -o ./bundlesbundles/目录包含按组件分类的 Helm Chart每个组件附带 values 文件、checksum 和 README。你可以用helm install部署提交到 GitOps 仓库或使用内置的 ArgoCD 部署器。安全供应链SLSA Level 3AICR 在供应链安全上走得很远SLSA Level 3 可溯源性、签名 SBOM、cosign 镜像证明、每次发布都有 checksum 验证。这已经是不少大型企业对内部工具的要求NVIDIA 在开源项目里直接做到了。技术栈细节代码以 Go 为主51.1%使用golangci做 lintgoreleaser做发布ko做容器镜像构建。项目已经发布了 54 个版本活跃度很高。目前支持 Amazon EKS、GKE 和 Kind自管理GPU 覆盖 H100 和 GB200工作负载支持 Kubeflow 训练和 Dynamo 推理。AIStore完全用 Go 写的 AI 分布式存储如果说 NVCF 和 AICR 还是相对新鲜的项目那 AIStore 则是一个已经经受了时间考验的系统级工程——1.8k Star240 个 Fork10,219 次 commit46 位贡献者。项目地址github.com/NVIDIA/aistore核心定位AIStoreAIS是一个专为 AI 应用构建的轻量分布式存储栈。它是一个弹性集群可以在运行时扩缩容支持从单台 Linux 机器到任意规模的裸机集群的任意部署方式。AIS 的核心差异点它能原生操作集群内数据和远程数据而不是把远程数据当成缓存。这对 AI 训练工作负载来说是关键区别——你不需要先把 S3 数据拉下来再训练AIS 可以透明地处理数据层。技术亮点一览多云后端支持无缝访问 AWS S3、GCS、Azure、OCI支持跨账号、跨 endpoint 的同名 bucket 共存。线性扩展性官方博客和 KubeCon 演讲中展示了跨任意数量集群节点的均衡 I/O 分布和线性扩展能力。ETL Offload在数据附近执行 I/O 密集型数据转换可以内联作为每次读请求的一部分实时处理或离线批量处理结果写入目标 bucket。Get-Batch单次调用检索多个对象或归档文件。专为 ML/AI 流水线设计一次操作获取整个训练批次按用户指定的顺序组装成 TAR或其他序列化格式。这个功能甚至有配套的 arxiv 论文2602.22434。负载感知节流基于多维度负载向量CPU、内存、磁盘、文件描述符、goroutine的动态请求节流保护 AIS 集群在压力下的稳定性。30 批处理操作包括 archive、blob-download、copy-bucket、dsort、etl-bucket、lru-eviction、rebalance、rechunk 等全部可以通过 CLI 启动、监控和控制。为什么用 GoAIStore 75.2% 的代码是 Go其 Go API 直接被 CLI 和 benchmarking 工具使用。选择 Go 的逻辑很清晰系统级性能Go 的 goroutine 模型天然适合高并发 I/O 密集型工作负载而分布式存储正是这种场景单一二进制发布CLI 工具和服务端都能编译成静态链接的单一二进制部署极其简单生态成熟Kubernetes operator、gRPC、NATS、Prometheus——这些基础设施领域的核心库在 Go 生态中都有成熟实现代码可维护性相比 CGo 在保持接近底层性能的同时大幅降低了复杂系统的维护成本为什么是 GoNVIDIA 的技术选型逻辑把这三个项目放在一起看NVIDIA 选择 Go 的逻辑变得清晰AI 基础设施的特殊需求AI 基础设施不同于传统 Web 服务。它需要处理GPU 资源的精细调度和隔离大规模并发请求的队列管理跨多集群的协调模型文件的海量 I/O长时间运行的异步任务这些场景对并发模型的要求极高。Go 的 goroutine 和 channel 机制让工程师可以用清晰的代码表达复杂的并发逻辑而不需要像 C 那样手动管理线程。云原生生态的母语Kubernetes、Docker、containerd、Prometheus、NATS、Helm——云原生基础设施栈几乎是用 Go 写的。NVIDIA 的三个项目全部深度集成 Kubernetes深度依赖 Operator 模式、Controller Runtime、Helm Chart。选择 Go 意味着可以直接使用这些生态的核心库而不是跨语言调用的额外复杂度。运维友好的单一二进制aicr、aisCLI 工具都是 Go 编译的单一静态二进制。在需要快速部署到新集群、在 CI/CD 流水线中运行、或者在边缘节点上操作时这个特性极其实用。Rust Go 的互补分工值得注意的是NVCF 并不是全 Go。高性能热路径http-invocation、function-autoscaler用了 Rust而控制逻辑、网关、代理、认证——这些需要快速迭代、逻辑清晰的组件——用 Go。这个分工很有意思Rust 负责极致性能的关键路径Go 负责需要快速演化的系统逻辑。两种语言各司其职而不是用一种语言通吃所有场景。小结这意味着什么对 Go 开发者NVIDIA 的这几个 repo 是绝佳的真实世界大型 Go 项目参考NVCF学习 Kubernetes Operator 模式、gRPC、NATS 集成、多平面分布式系统设计AICR学习 CLI 工具设计goreleasercobra、Helm 生成、GitOps 集成模式AIStore学习高性能分布式系统的 Go 实现包括内存管理memsys包、分布式一致性、S3 兼容 API 实现这三个项目都是 Apache 2.0 或 MIT 开源代码质量高有完整的测试和文档。对 AI 平台工程师NVIDIA 正在开源 AI 基础设施的核心组件。NVCF 的开源意味着你可以在私有 GPU 集群上运行与 NVIDIA 云服务相同的调度和路由逻辑审计每一行代码而不是把平台当成黑盒修改自动扩缩容逻辑、添加 NATS 认证策略、扩展 MiniService controllerAICR 则给了你一个NVIDIA 认证的集群配置参考——如果你正在搭建自管理 GPU 集群AICR 的 Recipe 系统告诉你什么组合是经过验证的。对技术决策者当 NVIDIA——一家以 CUDA C 闻名的公司——在 AI 基础设施层面系统性地选择 Go这个信号足够强烈。Go 已经不只是Google 的语言或者云原生工具链的语言它正在成为 AI 时代基础设施的核心技术栈之一。资料链接https://blog.kubesimplify.com/nvcf-is-now-open-source-inside-nvidia-s-gpu-function-platformhttps://github.com/nvidia/nvcfhttps://github.com/NVIDIA/aicr NVIDIA AI Cluster Runtimehttps://github.com/NVIDIA/aistore AIStore: scalable storage for AI applications如果本文对你有所帮助请帮忙点赞、推荐和转发点击下面标题干货- 为什么说CPU是“法拉利”而GPU是“大巴车”- GPU 计算的起源- “用 Go 打天下用 Rust 救火”这才是 2026 年后端架构的唯一正解- 你的 Kubernetes 知识在“冰山”的第几层—— 一份给 Gopher 的 K8s 进阶“航海图”- 使用Go开发Kubernetes Operator基本结构- 复制上“权威中心”的秩序 —— 主从架构、一致性与权衡- Go开发命令行程序指南- Google 开源 AX 与 Agent Substrate构建以 Agent 为核心的云原生计算底座 还在为写 Agent 框架频频死循环、上下文爆炸而束手无策我的新专栏《从0 开始构建 Agent Harness》将带你抛弃臃肿框架回归“驾驭工程 (Harness Engineering)”的第一性原理用 Go 语言手写 ReAct 循环、并发拦截与上下文压缩引擎等复刻极简OpenClaw构建坚不可摧的 Safety Middleware 与飞书人工审批防线在底层实现 Token 成本审计、链路追踪与自动化跑分评估从“调包侠”进化为掌控大模型边界的“AI 操作系统架构师”扫描下方二维码开启从 0 开始构建Agent Harness 的实战之旅。