惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
T
ThreatConnect
SecWiki News
SecWiki News
F
Future of Privacy Forum
AWS News Blog
AWS News Blog
C
Cisco Blogs
A
Arctic Wolf
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Scott Helme
Scott Helme
V
V2EX
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
K
Kaspersky official blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News | PayPal Newsroom
Schneier on Security
Schneier on Security
NISL@THU
NISL@THU
Microsoft Azure Blog
Microsoft Azure Blog
量子位
The Hacker News
The Hacker News
Stack Overflow Blog
Stack Overflow Blog
Security Latest
Security Latest
M
Microsoft Research Blog - Microsoft Research
Google Online Security Blog
Google Online Security Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
InfoQ
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
The Cloudflare Blog
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Troy Hunt's Blog
F
Fox-IT International blog
S
Security @ Cisco Blogs
博客园 - 司徒正美
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Comments on: Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 最新话题
GbyAI
GbyAI
Project Zero
Project Zero
腾讯CDC
T
Tailwind CSS Blog

Tony Bai

Shopify 23,000 名工程师背后的 Claude Code 配置方案(你可以直接复刻的完整配置) Google 开源 AX 与 Agent Substrate:构建以 Agent 为核心的云原生计算底座 十年难题终获突破:揭秘 Go 1.27 接口逃逸分析优化 - Tony Bai 大洗牌!Google 内部确认:Go 正取代 C++,成为 AI Agent 时代的“通用语言” AI 编码胜率榜:Go 与 Rust 完胜 C++ 代码可以让 AI 写,但设计得由你做:重塑工程师的“算法直觉” - Tony Bai 别神话 Rust 重写了:搞定1%热路径,Go 性能照样起飞 - Tony Bai 如何在大型代码库中运用 Claude Code:最佳实践及入门指南 - Tony Bai 写了 10 年 Java/TS,Go 语言终于治好了我的“过度设计”绝症 AI 时代,软件大师们为什么都倒戈向 Go 和 Rust 了? 别再瞎写 go.mod 了!一行 go 1.xx,竟藏着 7 个足以颠覆你认知的“秘密开关” 谁说 Rust 在中国火了?扒开 2025 全年数据,我看到了令人尴尬的真相 “用 Go 打天下,用 Rust 救火”:这才是 2026 年后端架构的唯一正解 对话 Uber 前 CTO:我如何用 5000 个微服务驯服这头失控的巨兽 Anthropic 工程师发文:别用 Markdown 了,HTML 才是 AI 的终极语言! 火爆外网的 Go 开源神器 CLI Printing Press:一键生成 Agent 专属 CLI 工具 Bun 创始人带头“叛逃”:放弃 Zig,用 AI 把项目重写成 Rust? AWS 大神发文炮轰:Go 的并发就是个“笑话”,JVM 的方案要更优越 - Tony Bai Robert Griesemer 亲述:只解决 90% 问题的“箭头函数”该长什么样? “AI 让每个人都成了开发者”,就像“相机让每个人都成了摄影师” - Tony Bai AI 正在把我们推向“双输”深渊:顶级论文揭示“AI 裁员陷阱” - Tony Bai “AI 正在用垃圾代码摧毁一切!”:Flask 之父对话 Pi 作者,揭开 AI 编程的残酷真相 从“Vibe-Coding”到“Agentic Engineering”:Andrej Karpathy 的 AI 时代程序员生存法则 开源社区“内战”爆发:Bun 创始人预言“未来将禁止人类贡献”,硅谷大佬纷纷站队! - Tony Bai Ghostty 之父带头“出走”GitHub!官方 CTO 紧急道歉,并揭秘正在使用 Go 语言救火 Go 1.27 将默认开启 SIMD for amd64,可移植 SIMD 包提案出炉 Go 语言“内战”迎来终局?Go 圣经作者亲自下场,为“三元运算符”发起折中提案! - Tony Bai “我们想用 Rust 重写的次数是:零”:云平台 Render 靠“无聊”的 Go 撑起了千亿流量 对话 Martin Kleppmann:DDIA 第二版揭秘,以及 AI 将如何颠覆分布式系统 为什么人人爱 Rust,但 RedMonk 榜单却给它泼了一盆冷水? - Tony Bai Go 代码设计的“第一天原则”:一份能让你少走五年弯路的实战模式清单 - Tony Bai HashiCorp 创始人亲口“认错”:AI 让我重新爱上了 Go (文末福利) 聊聊为什么我要花这么大精力,带大家手写 Agent Harness? - Tony Bai “我把公司卖了,却感觉一无所有”:OpenClaw 之父 TED 亲述如何靠 AI 重获新生 薄驾驭,厚技能:YC 掌门人揭秘拉开 1000 倍效率差距的 AI 工程化心法 从“开源英雄”到“社区公敌”,Ollama 到底做错了什么? - Tony Bai GPU 计算的起源 - Tony Bai Rust 还没进前十,TIOBE 就开始唱衰了? - Tony Bai 为什么说 go 语句是新时代的 goto?四大法则拯救失控 goroutine C++ 社区内部大讨论:新特性到底是“生产力革命”,还是“叠加的复杂性”? 别再无脑 go func() 了!Go 资深布道师 Dave Cheney 的 Goroutine 管理哲学 AI 时代,敏捷宣言已死?听听 Martin Fowler 和 Kent Beck 怎么说 Go Command 工作组成立:这几个用了十年的命令可能要被废! - Tony Bai Ruby on Rails 之父最新访谈:AI 正在推高顶尖程序员的身价 别搞“小而美”了!Rust 开发者请愿:求求标准库学学 Go 吧 - Tony Bai 倒计时 33 个月?Go 前安全负责人:量子计算机将“摧毁”互联网 - Tony Bai 从 1960 到 2026:一文看透 Java、Go、Python 垃圾回收器的原理与演进 AI 编程时代,我挖出了一本 1999 年的“删库跑路”指南 - Tony Bai 当AI 榨干了编程所有的乐趣:我不再是程序员,而是“Claude Code”的项目经理 - Tony Bai REST 已老,AI 时代的智能体需要怎样的 API? - Tony Bai 2026 编程语言“饱和度”榜单出炉:JavaScript/Python 已“烂大街”,Go/Rust 成最大赢家? - Tony Bai 一天重写 JSONata,我用 400 美元干掉了公司 50 万美元的 K8s 集群
悄悄用 Go 重写 AI 基础设施:NVIDIA 的 GPU 云平台为何选择 Go?
bigwhite · 2026-05-26 · via Tony Bai

本文永久链接 – https://tonybai.com/2026/05/26/why-nvidia-chose-go-to-rewrite-their-ai-infrastructure

当大家都在谈论 CUDA、Python 和 AI 框架时,NVIDIA 的工程团队正在悄悄用 Go 构建支撑整个 AI 云平台的底层基础设施。从 GPU 函数平台 NVCF,到 AI 集群运行时 AICR,再到已经有 1.8k Star 的分布式存储 AIStore,Go 语言已经成为 NVIDIA 内部 AI 基础设施的核心技术栈。这不是偶然,而是一个精心设计的技术选型。

大家好,我是Tony Bai。

2026 年 4 月,NVIDIA 悄悄开源了一个 repo:github.com/nvidia/nvcf

没有大张旗鼓的发布会,没有 Jensen Huang 的皮夹克登场。但如果你打开这个 repo 看一眼语言构成,数字会让你一惊:

Go 占比 88.5%。

这不是一个小工具,这是驱动 build.nvidia.com、NVIDIA DGX Cloud 推理服务和全球 GPU 云合作伙伴(CoreWeave、Oracle Cloud 等)整个控制平面的核心平台。

然后你再看 AICR(AI Cluster Runtime):Go 51.1%

再看 AIStore(面向 AI 的分布式存储):Go 75.2%,1.8k Star,10,219 次 commit,是一个有深度的系统级项目。

NVIDIA 在用 Go 构建 AI 时代的基础设施。而且这个趋势正在加速。

NVCF:GPU 云函数平台的全面开源

它是什么

NVCF 全称 NVIDIA Cloud Functions,是一个用于部署、管理和运行 GPU 加速工作负载的平台。你可以把它理解为”GPU 版的 AWS Lambda”——但更贴近生产级 AI 推理场景的设计。

你注册一个 Docker 容器或 Helm Chart,指定 GPU 类型,NVCF 负责处理一切:路由、队列、自动扩缩容、多租户隔离。GPU 云合作商在自己的 Kubernetes 集群上运行 NVIDIA Cluster Agent(NVCA),算力接入 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-autoscaler(Rust):30 秒扩缩容循环,从 VictoriaMetrics 读取利用率,决策写入 Cassandra
  • helm-reval(Go):在计算平面部署前验证 OCI 引用的 Helm Chart
  • OpenBao(Apache 2.0 的 Vault fork):函数密钥静态加密,运行时通过 ess-agent sidecar 注入
  • Cassandra:持久化状态和自动扩缩容的分布式锁

调用平面(Invocation Plane)

所有请求的必经之路,Go 在这里是绝对主角:

  • http-invocation(Rust/Axum):接收 HTTP/gRPC 请求,发布到 NATS JetStream
  • llm-gateway(Go):OpenAI 兼容 API,内嵌 Olric 缓存实现 token 感知的速率限制
  • grpc-proxy(Go):转发 gRPC 调用到函数实例
  • ratelimiter(Go):使用 Olric 分布式缓存的函数级速率限制
  • nats-auth-callout(Go):支持 NKey、OIDC 和 Webhook 策略的 NATS 认证

计算平面(Compute Plane)

每个 GPU 集群运行一个 NVCA(NVIDIA Cluster Agent)Operator。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 删除和 GC

Scale-to-Zero 的关键设计:NATS 作为持久化请求缓冲区

NVCF 解决的最有趣的工程问题,是 GPU 工作负载的 Scale-to-Zero。

传统方案(如 Knative)在 Scale-up 期间请求会面临超时压力或重试。对于加载大型模型可能需要数十秒乃至数分钟的 GPU 推理来说,这个问题会非常严重。

NVCF 的解法是把 NATS JetStream 当做一个持久化请求缓冲区

  1. 自动扩缩容器将期望实例数降为 0,没有 Pod 运行
  2. 新请求到达,发布到 NATS JetStream,消息被持久化
  3. 自动扩缩容器检测到队列深度 > 0,将期望实例数提升到 1+
  4. NVCA 收到创建消息,启动 Pod
  5. Pod 通过 WorkerService gRPC 连接,拉取缓冲的消息
  6. 响应通过一直保持打开状态的 http-invocation 连接返回

请求永远不会被丢弃。 调用方在冷启动时等待更长时间,但请求一定会完成。这是 NATS 持久化消息的直接价值。

AICR:AI 集群运行时,Go 写的”集群配方书”

为什么需要 AICR

搭建一个 GPU 加速的 Kubernetes 集群是出了名的难。内核版本、驱动、容器运行时、Operator、Kubernetes 版本——任何一个环节的细微差异都可能导致难以诊断的问题,而且极难复现。

这些知识以前只存在于 NVIDIA 内部的验证流水线和运维手册里。AICR 把这些知识公开了。

项目地址:github.com/NVIDIA/aicr

AICR 全称 AI Cluster Runtime,将已知可行的驱动、Operator、内核和系统配置组合,封装成版本锁定的 Recipe(配方)——可以被 Helm、ArgoCD 和其他部署框架直接使用的可复现制品。

核心概念:Recipe 系统

一个 Recipe 是针对特定环境的版本锁定配置。你描述你的目标(云厂商、GPU 型号、操作系统、工作负载意图),Recipe 引擎将其与一个经过验证的 Overlay 库进行匹配——从基础默认值到云厂商、加速器、操作系统、工作负载特定调优,自底向上分层组合。

每个 AICR Recipe 具备三个特性:

  • Optimized(优化):针对特定硬件、云、OS 和工作负载意图调优
  • Validated(已验证):发布前通过自动化约束和兼容性检查
  • Reproducible(可复现):相同输入产生完全一致的部署结果

CLI 展示:五分钟上手

# 安装 CLI(Go 编译的单一二进制)
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 ./bundles

bundles/ 目录包含按组件分类的 Helm Chart,每个组件附带 values 文件、checksum 和 README。你可以用 helm install 部署,提交到 GitOps 仓库,或使用内置的 ArgoCD 部署器。

安全供应链:SLSA Level 3

AICR 在供应链安全上走得很远:SLSA Level 3 可溯源性、签名 SBOM、cosign 镜像证明、每次发布都有 checksum 验证。这已经是不少大型企业对内部工具的要求,NVIDIA 在开源项目里直接做到了。

技术栈细节

代码以 Go 为主(51.1%),使用 golangci 做 lint,goreleaser 做发布,ko 做容器镜像构建。项目已经发布了 54 个版本,活跃度很高。目前支持 Amazon EKS、GKE 和 Kind(自管理),GPU 覆盖 H100 和 GB200,工作负载支持 Kubeflow 训练和 Dynamo 推理。

AIStore:完全用 Go 写的 AI 分布式存储

如果说 NVCF 和 AICR 还是相对新鲜的项目,那 AIStore 则是一个已经经受了时间考验的系统级工程——1.8k Star,240 个 Fork,10,219 次 commit,46 位贡献者

项目地址:github.com/NVIDIA/aistore

核心定位

AIStore(AIS)是一个专为 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 启动、监控和控制。

为什么用 Go

AIStore 75.2% 的代码是 Go,其 Go API 直接被 CLI 和 benchmarking 工具使用。选择 Go 的逻辑很清晰:

  1. 系统级性能:Go 的 goroutine 模型天然适合高并发 I/O 密集型工作负载,而分布式存储正是这种场景
  2. 单一二进制发布:CLI 工具和服务端都能编译成静态链接的单一二进制,部署极其简单
  3. 生态成熟:Kubernetes operator、gRPC、NATS、Prometheus——这些基础设施领域的核心库在 Go 生态中都有成熟实现
  4. 代码可维护性:相比 C++,Go 在保持接近底层性能的同时大幅降低了复杂系统的维护成本

为什么是 Go?NVIDIA 的技术选型逻辑

把这三个项目放在一起看,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、ais CLI 工具都是 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 工具设计(goreleaser + cobra)、Helm 生成、GitOps 集成模式
  • AIStore:学习高性能分布式系统的 Go 实现,包括内存管理(memsys 包)、分布式一致性、S3 兼容 API 实现

这三个项目都是 Apache 2.0 或 MIT 开源,代码质量高,有完整的测试和文档。

对 AI 平台工程师

NVIDIA 正在开源 AI 基础设施的核心组件。NVCF 的开源意味着你可以:
- 在私有 GPU 集群上运行与 NVIDIA 云服务相同的调度和路由逻辑
- 审计每一行代码,而不是把平台当成黑盒
- 修改自动扩缩容逻辑、添加 NATS 认证策略、扩展 MiniService controller

AICR 则给了你一个”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-platform
  • https://github.com/nvidia/nvcf
  • https://github.com/NVIDIA/aicr NVIDIA AI Cluster Runtime
  • https://github.com/NVIDIA/aistore AIStore: scalable storage for AI applications

还在为写 Agent 框架频频死循环、上下文爆炸而束手无策?我的新专栏 从0 开始构建 Agent Harness 将带你:

  • 抛弃臃肿框架,回归“驾驭工程 (Harness Engineering)”的第一性原理
  • 用 Go 语言手写 ReAct 循环、并发拦截与上下文压缩引擎等,复刻极简OpenClaw
  • 构建坚不可摧的 Safety Middleware 与飞书人工审批防线
  • 在底层实现 Token 成本审计、链路追踪与自动化跑分评估
  • 从“调包侠”进化为掌控大模型边界的“AI 操作系统架构师”

扫描下方二维码,开启从 0 开始构建Agent Harness 的实战之旅。


原「Gopher部落」已重装升级为「Go & AI 精进营」知识星球,快来加入星球,开启你的技术跃迁之旅吧!

我们致力于打造一个高品质的 Go 语言深度学习AI 应用探索 平台。在这里,你将获得:

  • 体系化 Go 核心进阶内容: 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏,夯实你的 Go 内功。
  • 前沿 Go+AI 实战赋能: 紧跟时代步伐,学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等,掌握 AI 时代新技能。
  • 星主 Tony Bai 亲自答疑: 遇到难题?星主第一时间为你深度解析,扫清学习障碍。
  • 高活跃 Gopher 交流圈: 与众多优秀 Gopher 分享心得、讨论技术,碰撞思想火花。
  • 独家资源与内容首发: 技术文章、课程更新、精选资源,第一时间触达。

衷心希望「Go & AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚,享受技术精进的快乐!欢迎你的加入!

img{512x368}


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

© 2026, bigwhite. 版权所有.

Related posts:

  1. 大洗牌!Google 内部确认:Go 正取代 C++,成为 AI Agent 时代的“通用语言”
  2. 20 年 Java 老店的“背叛”:WSO2 为何高呼“Goodbye Java, Hello Go”?
  3. NVIDIA 的颠覆性观点:AI Agent 的未来,属于小模型 (SLM)
  4. AI 时代的新王座:为什么说 Go 可能是开发 AI Agent 的最佳语言?
  5. “我们想用 Rust 重写的次数是:零”:云平台 Render 靠“无聊”的 Go 撑起了千亿流量