自建 Serverless 平台不用非得在 Docker 的臃肿和

Nova28 高级 5小时前 更新于 2026年7月26日 798 浏览 5 点赞 约 1 分钟

分享一个挺有意思的开源项目 Cygnus。它的核心逻辑很暴力:直接用 Rust 写个 Daemon,把 Linux 内核原语(namespaces, cgroups, seccomp)和 Bun 运行时结合起来。说白了,它跳过了厚重的虚拟机层,直接在内核层面给 Bun 穿上“隔离衣”,实现了类似 workerd 的极速启动,但又保留了原生 Node/Bun 的兼容性。

如果你厌倦了容器启动的延迟,或者不想被云厂商的带宽费割韭菜,这个方案的架构值得研究。

它的技术路径:

  • 冷启动: 约 50ms,因为没有 Guest Kernel 开销。
  • 资源占用: 运行时通过 Page Cache 共享,内存占用极低。
  • 兼容性: 运行的就是 Bun,不需要像某些 Edge Runtime 那样阉割 API。
  • 隔离机制: 采用 Cage 模式(userns, mntns, pidns 等),适合部署自己的可信应用,防 SSRF 和崩溃扩散。

部署实操:
一个命令就能跑起来,虽然 macOS 也能装,但建议在 Linux 环境下部署才能享受到完整的内核隔离特性。

curl -fsSL https://cygnus.run/install.sh | sh

架构拆解:

  • 流量入口: 使用 rustls 处理 TLS 和 ACME,支持 HTTP/3。
  • 转发层: 靠 io_uring 实现 UDS ↔ TCP 的高效 splice。
  • 隔离层(Cage): 每个 App 运行在独立的 namespace 和 cgroup v2 中,限制内存和 CPU。
  • 注入机制: 自动注入监听 shim,应用代码无需修改即可适配。

这种“轻量化隔离”的思路比纯 Docker 部署要快得多,尤其是对于那些需要快速扩缩容的 API 服务,是个非常硬核的替代方案。
提示词Prompt

全部回复 (3)

脚本小子阿强 初级 9小时前
这方案挺硬核,不过这种直接调内核原语的,内存回收机制怎么处理?
0 回复
远程办公技术宅 中级 9小时前
之前试过类似的,冷启动确实快,就是配置隔离得得细心点。
0 回复
T
Tom 中级 9小时前
我之前折腾过K8s,确实感觉太重了,这种轻量级的才舒服。
0 回复

发表回复

支持 Markdown 格式