无服务器部署与 CI CD 自动化
11.11 部署决策框架
Tip
很多时候,你不需要 Kubernetes,你只需要一个能跑 Node.js 的地方。
1. 为什么要学这个?
新手困境: 打开 Reddit 或 Twitter,各路大神都在吹 K8s, Terraform, AWS Lambda。 你觉得自己只用 Vercel 是不是太初级了? 真相: 对于 99% 的项目,Kubernetes 是过度设计 (Over-engineering)。 就像你只需要去便利店买瓶水,却开了一辆 18 轮重型卡车去,光是找停车位(运维配置)就得花半天。
我们需要一个理性的决策框架,而不是盲目追新。
2. 核心决策树 (Decision Tree)
1. 静态网站 / 个人博客 / 文档
- 首选: Vercel / Netlify / GitHub Pages。
- 理由: 免费,自动 HTTPS,全球 CDN。没有理由自己买服务器。
2. 全栈应用 (Next.js + 数据库)
- 首选: Vercel Pro ($20/月)。
- 场景: 标准 SaaS,电商,工具站。
- 理由: 只要你的数据库连接数能扛住,Vercel 是开发效率最高的。
3. 重型计算 / 长连接 / 国内业务
- 首选: Docker + VPS (Coolify / Railway / EdgeOne)。
- 场景: 视频转码、WebSocket 聊天室、目标用户在中国。
- 理由: Vercel 的 Serverless 有超时限制 (60s),且流量贵。国内业务必须备案。
决策比喻
- Vercel: 住五星级酒店。拎包入住,服务全包,但房间不能随便拆改,且住久了贵。
- VPS (Coolify): 租房。便宜,家具自己买,水电自己交,但你可以养猫(运行任何软件)。
- K8s: 自己盖楼。只有你是万豪集团(大公司)时才需要。
3. 自托管方案 (Self-Hosting)
如果你不想被 Vercel 绑定 (Vendor Lock-in),Next.js 提供了 Standalone Mode。
// next.config.js
module.exports = {
output: 'standalone',
}
运行 npm run build 后,它会生成一个极小的 .next/standalone 文件夹(只有几 MB,自动剔除了开发依赖)。
你可以把它打包进 Docker,扔到任何便宜的 VPS 上跑。
这是你对抗平台涨价的核武器。
4. 真实案例
Story
"屠龙技与杀鸡刀"
某计算机系大学生为了展示技术,用 Kubernetes 集群部署了自己的个人博客。 他买了 3 台云服务器做 Master/Worker 节点(花费 $100/月)。 写了 500 行 YAML 配置。 结果:博客也没写几篇,时间全花在修集群网络这块了。 后来他把博客迁到了 Vercel(花费 $0),把那 3 台服务器退了。
Vibe 心法: 架构的目的是服务业务,而不是炫技。 在你的业务没有达到 Google 的规模之前,不要为了"屠龙"的快感而背上沉重的运维包袱。Simple is Better.
5. 本章小结
- 默认选 Vercel:除非你有特殊的理由(长连接、太贵、合规)。
- Docker 是退路:学会 Standalone Mode,确保你随时可以搬家。
- 拒绝过度设计:能用 PaaS 解决的,绝不自己维护服务器。