标签 k8s 下的文章

一天重写 JSONata,我用 400 美元干掉了公司 50 万美元的 K8s 集群

本文永久链接 – https://tonybai.com/2026/04/01/rewrote-jsonata-in-golang-with-ai

大家好,我是Tony Bai。

过去的几年,我们见证了 AI 编程工具从“玩具”到“神器”的进化。无数开发者都在分享自己效率翻倍的喜悦。

你有没有想过,用 AI 来完成一次“外科手术式”的精准重构,一天之内,就能帮你把公司每年烧掉的 50 万美元(约 360 万人民币)的服务器成本,直接砍到零?

这听起来像天方夜谭,但它真实地发生了。

就在前几天,以色列安全公司 Reco 的工程师 Nir Barak 发表了一篇极其硬核的博客。他详细复盘了自己是如何在一天之内,花费了仅仅 400 美元的 Token 费用,利用 AI 将一个用 JavaScript 编写的核心组件 JSONata,完美地重写为了纯 Go 版本,最终为公司节省了每年 50 万美元的开销,并带来了 1000 倍的性能提升。

这不仅仅是一个“AI 真牛逼”的简单故事。它背后揭示的,是一套足以改变我们未来架构选型和技术债偿还方式的“AI 驱动重构(AI-Driven Refactoring)”实用方法。

跨语言 RPC,微服务架构中最昂贵的“性能税”

要理解这次重构的意义有多么重大,首先得看看 Nir Barak 的团队曾经陷入了多深的泥潭。

他们的核心业务是一个用 Go 编写的高性能数据管道,每天处理数十亿的事件。但其中有一个环节,需要用到一个名为 JSONata 的查询语言(你可以把它想象成带 Lambda 函数的 jq)来执行动态策略。

尴尬的是,JSONata 的官方实现是 JavaScript 写的。

这就导致了一个极其痛苦的架构:他们的主业务 Go 服务,为了执行这些规则,不得不去远程调用(RPC)一个专门部署在 Kubernetes 上的庞大的 Node.js 服务集群。

这个“小小的”跨语言调用,给他们带来了三大噩梦:

  1. 恐怖的成本:为了扛住流量,这个 jsonata-js 集群常年需要维持 300 多个 Pod 副本,光是这部分,每年就要烧掉 30 万美元的计算资源。
  2. 惊人的延迟:一次最简单的字段查找,比如 email = “admin@co.com”,在 Node.js 内部执行可能只需要几纳秒。但算上序列化、跨进程网络往返的开销,一次 RPC 调用在啥也没干之前,150 微秒的延迟就先进来了。对于一个每天处理几十亿事件的系统来说,这简直是灾难。
  3. 意想不到的运维黑洞:随着业务增长,Pod 数量一度多到耗尽了 Kubernetes 集群的 IP 地址分配上限!

Nir Barak 的团队当然也尝试过各种小修小补:优化表达式、加缓存、甚至用 CGO 把 V8 引擎直接嵌进 Go 里……但这些都只是“头痛医头”,无法根治“跨语言”这颗毒瘤。

Cloudflare 的“抄作业”哲学

转机发生在前几周。Nir Barak 看到了 Cloudflare 那篇刷爆全网的文章《我们如何用 AI 在一周内重构 Next.js》。

Cloudflare 的做法极其“暴力”且有效:他们没有让 AI 去创造新东西,而是把 Next.js 现成的spec,以及包含几千个 case 的官方测试套件(Test Suite)直接扔给大模型,然后对 AI 下达了一个简单粗暴的指令:

“我不管你怎么实现,给我写一个能在 Vite 上跑通所有这些测试的 API 就行!”

Nir Barak 看到这里,瞬间被点醒了:“我们面临的问题一模一样!我们也有 jsonata-js 官方那套包含 1778 个测试用例的完整套件啊!”

与其让 AI 去搞创新,不如把它变成一个任劳任怨、24 小时待命的“代码翻译工”!

于是,他花了一个周末,用 AI 制定了一个极其清晰的“三步走”作战计划:

  1. 第一步(人类智慧):用 Go 语言把 jsonata-js 的测试套件先“翻译”过来。
  2. 第二步(AI 体力):把 JSONata 2.x 的官方文档和规范全部喂给 AI。
  3. 第三步(测试驱动):对 AI 下达指令:“开始写 Go 代码,目标是跑通第一步的所有测试用例。”

第二天,他按下了“开始键”。

7 小时,400 美元,13000 行 Go 代码

接下来的故事,充满了令人肾上腺素飙升的极客快感。

Nir Barak 坐在电脑前,看着 AI Agent 像一台失控的缝纫机一样,疯狂地生成 Go 代码、运行测试、读取报错、然后自我修正。

整个过程被划分成了几个“波次(Waves)”:先实现核心解析器,再实现内置函数,最后处理各种边缘 case。

在 AI 与测试用例的左右互搏之下,仅仅 7 个小时 后,奇迹发生了:

一个包含 13,000 多行纯 Go 代码的、名为 gnata 的全新 JSONata 实现诞生了。它完美通过了官方所有的 1778 个测试用例。

而这整个过程的成本呢?

400 美元的 Token 费用。

Nir Barak 在博客中晒出了一张截图,数据显示,在重构 gnata 的那一天,AI 生成的代码占比高达 91.7%

当他把这个 PR 提交到公司内部时,立刻有人质疑 ROI(投资回报率)。而他的回答简单粗暴:

“上个月,jsonata-js 集群的成本是 2.5 万美元。现在,是 0。”

百倍性能与意外之喜:“手术刀式”重构的深远影响

成本降为零已经足够震撼,但性能上的收益更是堪称“恐怖”。

这还只是开始。由于 gnata 是纯 Go 实现,Nir Barak 团队得以进行更深度的“魔改”:他们设计了一套两层评估架构。对于简单的字段查找,gnata 直接在原始的 JSON 字节流上操作,实现了 零堆内存分配(Zero Heap Allocations)!只有遇到复杂表达式时,才会启动完整的解析器。

在接下来的两周内,他们乘胜追击,用 gnata 的批量处理能力,替换掉了主数据管道中另一个极其臃肿、靠启动上万个 Goroutine 来并发处理规则的旧引擎。 结果:又省下了每年 20 万美元。

短短两周,两次“外科手术式”的重构,总共为公司节省了每年 50 万美元的开销。

最让人意想不到的是,这次重构还带来了组织层面的“意外之喜”:

gnata 是公司内部第一个完全由 AI Agent 大规模参与生成的 PR。在 Code Review 的过程中,团队成员被迫去学习如何分辨“AI 真正发现的并发 Bug”和“AI 瞎操心的代码格式问题”。这次经历,为他们后续制定全公司的 AI Code Review 规范积累了宝贵的实战经验。

小结:我们不再只是“氛围感编码”

在文章的结尾,Nir Barak 提到了 AI 大神 Andrej Karpathy 最近的观点,大意是:

“编程正在变得面目全非。在底层,深厚的技术专长正成为比以往任何时候都更强大的‘乘数效应放大器’。”

Nir Barak 感慨道,直到最近,他自己都对那种完全由 AI Agent 生成代码的“氛围编码(Vibe coding)”持怀疑态度。但 2026 年 2 月,成为了一个连他这样固执的开发者都无法忽视的“拐点”

gnata 的诞生,标志着我们不再只是用 AI 去写一些无关紧要的玩具项目。在拥有明确测试用例和边界规范的前提下,AI 已经具备了对生产环境核心组件进行“手术刀式重构”的惊人能力。

你准备好拿起这把名为“AI”的手术刀,去切掉你系统里那些最昂贵、最臃肿的“技术肿瘤”了吗?

资料链接:https://www.reco.ai/blog/we-rewrote-jsonata-with-ai


今日互动探讨:

在你的公司里,是否存在类似的“异构技术栈”调用导致的性能瓶颈或成本黑洞?你有没有想过,可以用 AI + 测试用例的方式,对某个核心组件进行“代码翻译”式的重构?

欢迎在评论区分享你的架构痛点与大胆构想!


还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


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

13万节点!Google 如何打破 Kubernetes 的物理极限,构建全球最大集群

本文永久链接 – https://tonybai.com/2025/11/26/how-google-built-a-130000-node-k8s-cluster

大家好,我是Tony Bai。

Kubernetes 的官方支持上限通常被认为是 5,000 到 15,000 节点。然而,在 AI 时代的算力军备竞赛中,这个数字显得有些“捉襟见肘”。

近日,Google Cloud 发布了一份重磅技术报告,揭示了他们如何在 GKE (Google Kubernetes Engine) 上成功运行了一个130,000 节点的超大规模集群——这是目前已知全球最大的 Kubernetes 集群,其规模是 GKE 官方支持上限(65,000 节点)的两倍,更是开源 Kubernetes 社区上限的近十倍。

这不是一次规模的堆砌,而是一次涉及控制平面、调度器、存储和网络的系统级工程实践,极具参考价值。Google 是如何做到的?让我们深入其架构内部,一探究竟。

背景:AI 时代的“巨兽”需求

推动这一极限挑战的核心动力,是日益庞大的 AI 工作负载。随着大模型训练对算力需求的指数级增长,客户不再满足于万卡集群,而是向着 10万节点 的规模进军。

在这个量级下,挑战不仅来自芯片的短缺,更来自电力和数据中心的物理限制。一个拥有数万块高性能 GPU 的集群,其功耗可能高达数百兆瓦,必须跨越多个数据中心部署。这要求 Kubernetes 不仅要管理庞大的资源,还要具备跨故障域、跨数据中心的极致编排能力。

核心创新:四大技术支柱

为了支撑起这座“13万节点”的摩天大楼,Google 对 Kubernetes 的底层架构进行了四项关键的“手术”。

1. 读操作的极致优化:一致性缓存

在 13 万节点的集群中,数以百万计的 Pod 和对象会产生海量的 API 请求。如果所有读请求都直接打到 etcd(或 GKE 使用的 Spanner),数据库瞬间就会被压垮。

Google 的解决方案是:让 API Server 直接从内存缓存中服务读请求,同时保证强一致性。

具体来说,就是通过引入 Consistent Reads from Cache (KEP-2340),API Server 可以利用其内存中的 Watch Cache 来服务 GET 和 LIST 请求。

系统会确保缓存中的数据在服务请求前是可验证的最新状态(verifiably up-to-date),从而在不牺牲一致性的前提下,大幅降低了底层数据库的压力。

同时,通过 Snapshottable API Server Cache (KEP-4988),API Server 甚至可以直接从内存中构建 B-tree 快照,来服务带有 resourceVersion 的历史数据查询,彻底消除了“读放大”问题。

2. 存储后端的无限扩展:基于 Spanner 的分布式键值存储

标准的 Kubernetes 使用 etcd 作为存储后端,但在 13 万节点的规模下,etcd 的容量和吞吐量成为了瓶颈。

GKE 替换了这一层,使用了一个基于 Google Spanner 的专有键值存储系统。

  • 性能数据:在测试中,该存储系统轻松支撑了 13,000 QPS 的租约 (Lease) 更新操作,确保了 13 万个节点的健康检查心跳畅通无阻。
  • 容量:在峰值时,数据库中存储了超过 100 万个 Kubernetes 对象,依然保持了极低的延迟和极高的稳定性。

3. 调度器的进化:Kueue 与工作负载感知

默认的 Kubernetes 调度器是“Pod 中心”的,它一个个地调度 Pod。但这对于 AI 训练任务来说远远不够——AI 任务通常需要“全有或全无” (All-or-Nothing) 的调度保证(即 Gang Scheduling)。

Google 引入了 Kueue,一个构建在原生调度器之上的作业级 (Job-level) 队列管理器。Kueue 负责决定何时接纳一个作业,基于配额、优先级和公平策略进行裁决。它实现了Gang Scheduling,确保一个训练任务的所有 Pod 要么全部启动,要么全部排队,避免了资源死锁。

4. 数据访问的加速:GCS FUSE 与本地化缓存

对于 AI 训练,数据加载速度至关重要。GKE 利用 Cloud Storage FUSE 配合并行下载和区域性缓存 (Anywhere Cache),让存储在 GCS 对象存储中的海量数据,能像本地文件系统一样被 Pod 高速访问。这使得数据加载延迟降低了 70%,确保了 GPU 不会因为等待数据而空转。

实战演练:一场 13 万节点的压力测试

为了验证这套架构,Google 设计了一个包含四个阶段的极限压力测试,模拟了真实的 AI 生产环境。下图展示了整个测试的时间线和四个关键阶段。


图注:13万节点压力测试的完整执行时间线

阶段一:基线测试 —— 1000 Pods/秒的狂飙

在一个空集群中,一次性启动 130,000 个 Pod 的大规模训练任务。结果显示,控制平面极其稳定,支撑了高达 1,000 Pods/秒 的创建和调度吞吐量。


图注:控制平面的吞吐量监控

阶段二:混合负载与争抢 —— Kueue 的“铁腕”

测试引入了大量低优先级的批处理作业填满集群,然后突然提交高优先级的微调任务。此时,Kueue 展现了惊人的动态调整能力:它在 93 秒内精准抢占了 39,000 个低优 Pod,瞬间腾出资源给高优任务。


图注:Kueue 正在进行资源调度

阶段三与四:突发流量与弹性恢复

在第三阶段,模拟了“双十一”式的流量洪峰,提交最高优先级的推理服务。系统再次平稳应对,甚至在极高负载下,推理 Pod 的 P99 启动延迟仍控制在 10 秒左右,这对于对延迟敏感的在线服务至关重要。


图注:不同负载类型下的 Pod 启动延迟

最后,当流量退去,系统自动释放资源,重新接纳之前被挂起的低优任务,实现了资源的完美闭环和极致利用。

小结:这就是未来的基础设施

Google 的这次 13 万节点实验,不仅是秀肌肉,更是为整个云原生社区指明了方向。它证明了 Kubernetes 在经过合理的架构优化后,完全有能力承载 AI 时代最苛刻的算力需求。

内存一致性缓存工作负载感知的调度,这些在极限场景下打磨出的技术创新,最终都会反哺到普通的 GKE 集群,甚至回馈给开源社区(如 Kueue 和 KEP 提案)。

对于我们每一位架构师而言,这都是生动的一课:真正的可扩展性,不仅仅是堆砌硬件,更是对系统每一个环节——从读写路径到调度逻辑——进行极致的工程优化。

资料链接:https://cloud.google.com/blog/products/containers-kubernetes/how-we-built-a-130000-node-gke-cluster/

聊聊你对“规模极限”的看法

Google的13万节点集群,为我们展示了云原生技术栈在AI时代的巨大潜力。在你看来,Kubernetes或其他云原生技术的下一个“物理极限”会是什么?除了Google提到的这四项优化,你认为还有哪些关键技术能帮助我们突破规模的瓶颈?或者,你在自己的工作中,遇到过哪些有趣的“规模化”挑战和解决方案?

欢迎在评论区留下你的真知灼见,让我们一起探讨未来基础设施的模样!

如果这篇文章让你对大规模系统设计有了新的启发,别忘了点个【赞】和【在看】,并分享给更多对技术极限充满好奇的同伴!


还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


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

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 AI原生开发工作流实战 Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com
这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats