基础设施即代码(基础设施即代码)工具Pulumi最近做了一个决定:把Bun从"可选包管理器"升级成"完整运行时"。这意味着什么?开发者现在可以彻底告别Node.js,用Bun跑完整套基础设施代码。
正方:为什么Pulumi要押注Bun?
![]()
速度是核心卖点。Bun基于JavaScriptCore(苹果WebKit引擎),而非Node.js和Deno使用的V8。按Bun官方基准测试,启动速度比Node.js快数倍,内存占用也更低。
对Pulumi这类需要频繁执行基础设施程序的工具来说,冷启动时间直接决定开发体验。每次pulumi up都要等Node.js初始化,积少成多就是生产力损耗。
单一二进制文件是另一张牌。Bun把包管理器、打包工具、测试运行器塞进一个文件里,用Zig语言编写。Pulumi用户不再需要维护Node.js版本、npm依赖树、外加一堆配置文件。
生态背书也在加码。Anthropic收购Bun后,已将其用于Claude Code的部署流程。当AI巨头把自家基础设施押在一个运行时上,其他团队跟进的心理门槛会降低。
Pulumi 3.227.0的更新很干脆:pulumi.yaml里写runtime: bun,系统直接调用Bun执行程序,Node.js安装成为可选项而非必选项。
反方:Bun真准备好接管生产环境了吗?
兼容性黑洞始终存在。Bun声称支持Node.js API,但边缘案例层出不穷。某些npm包在Bun下行为异常,调试时很难定位是运行时问题还是代码问题。
2022年Bun首次发布时的承诺是"更快的JavaScript运行时",四年过去,项目范围膨胀到包管理、打包、测试、甚至SQLite集成。功能越多,稳定性的挑战越大。
社区规模仍是硬伤。Node.js的生态惯性难以撼动,绝大多数基础设施代码、CI/CD模板、故障排查文档都围绕Node.js构建。Bun用户遇到问题时,Stack Overflow的答案密度远低于前者。
企业采纳的谨慎态度。Pulumi支持Bun是事实,但"支持"不等于"推荐"。官方文档的默认示例仍是Node.js,Bun选项藏在配置文件的角落。
Anthropic的背书也有两面性。一家AI公司用Bun部署自家产品,和通用基础设施工具的可靠性要求不完全等同。Claude Code的负载特征能否推广到金融、医疗等合规敏感行业,尚无验证。
我的判断:一场精心计算的"选项扩展"而非"路线替换"
Pulumi的决策逻辑很清晰:不把鸡蛋放在一个篮子里,同时降低新用户的入门门槛。
对已有Node.js基础设施的团队,这次更新毫无影响,代码继续跑,习惯不用改。对新启动的项目,或者对Bun已有好感的开发者,Pulumi现在提供了一个官方认可的路径。
这种"双轨制"是成熟工具的标准策略。Terraform同时支持HCL和CDK,Docker兼容多种容器运行时,Pulumi自己早就支持Python、Go、C#等多种语言。再加一个Bun,只是延续同一套产品哲学。
真正值得观察的信号是:Pulumi是否会将Bun设为未来新项目的默认选项?目前答案是否定的。runtime: nodejs仍是pulumi new的出厂设置,Bun需要显式配置。
这意味着Pulumi团队对Bun的生产就绪程度仍有保留。他们愿意开放接口,让用户自行验证;但不愿替用户承担切换成本。
对开发者的实际建议是:如果团队已在用Bun且运行稳定,Pulumi的正式支持可以消除一层顾虑。如果还在Node.js生态里,没有迫切理由迁移。Bun的速度优势在基础设施即代码场景下的感知强度,远低于高频服务端应用——pulumi up一天跑不了几次,启动时间的边际收益有限。
更深远的影响可能在工具链层面。Bun的崛起倒逼Node.js改进性能,Deno的隔离模型也在施压。Pulumi加入Bun阵营,是给这场运行时竞争再添一个注脚,而非宣判胜负。
基础设施即代码的战场从来不只是"跑得快",而是"跑得稳、查得出问题、社区跟得上"。Bun在这三项上的得分,还需要更多生产环境的检验。
如果你正在评估技术选型,不妨在下一个实验性项目里试试runtime: bun,把真实痛点记录下来。Pulumi给了选项,但值不值得切换,最终取决于你的具体负载和团队技能树。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.