Vibe Tutorial
无服务器部署与 CI CD 自动化

11.1 Serverless详解

Tip

在云时代,最昂贵的不是计算,而是"空转"。


1. 为什么要学这个?

传统服务器是"租房"逻辑:你租了一台云服务器 (ECS),无论你是一个人用,还是没人用,你每分每秒都在付钱。 更可怕的是,你需要自己修水管(打补丁)、搞卫生(清日志)、扩建(服务器炸了手动升级)。

Serverless 是"点外卖"逻辑: 你不需要拥有厨房。你只需要下单(发送请求)。 平台负责做饭(执行代码)、洗碗(销毁实例)。 最大的好处:如果没人点单,你一分钱都不用花(Scale to Zero)。


2. 核心概念:Serverless = FaaS + BaaS

1. FaaS (Function as a Service)

你的后端不再是一个一直运行的 Node.js 进程。 它变成了一个个独立的函数

  • 有人访问 /api/user -> 此函数瞬间醒来 -> 执行 -> 返回数据 -> 立即自杀
  • 生命周期可能只有 100 毫秒。

2. Stateless (无状态)

因为函数每次执行完就销毁了,所以你不能在全据变量里存东西。

  • let count = 0; count++ (下次请求来时,count 还是 0)。
  • ✅ 存到 Redis 或数据库里。

3. 解决方案 (HOW)

架构对比

1. 传统架构 (ECS / VPS)

像一家24小时营业的餐厅

  • 成本:$20/月 (固定)。
  • 维护:你需要自己装 Linux, Nginx, Node.js。
  • 风险:半夜流量激增,服务器直接挂掉,你需要起床升级配置。
graph TD
    User1["用户"] --> Nginx["Nginx 负载均衡"]
    Nginx --> Node1["Node.js 进程 (7x24h 运行)"]
    Node1 --> OS["操作系统 (你需要维护)"]

2. Serverless 架构 (Vercel)

像一个云厨房

  • 成本:$0 (没人访问) ~ 按量付费。
  • 维护:0 (Vercel 全包)。
  • 弹性:1个人访问,它起1个实例;1万个人访问,它瞬间起1万个实例。
graph TD
    User2["用户"] --> Gateway["Vercel 网关"]
    Gateway -->|请求 A| Func1["函数 A (用完即走)"]
    Gateway -->|请求 B| Func2["函数 B (用完即走)"]
    
    style Gateway fill:#e1bee7,stroke:#8e24aa
    style Func1 fill:#c8e6c9,stroke:#2e7d32

4. 真实案例

Story

那个价值一百万美元的"空转"

某大型企业在进行云成本审计时发现,他们有 40% 的 EC2 实例在过去一年里的 CPU 使用率低于 1%。 这些服务器是开发环境、测试环境,或者是一些早就废弃但忘了关的项目。 损失:光是这些"僵尸服务器",一年就烧掉了 100 万美元。

Vibe 心法: 对于初创项目和独立开发者,Serverless 是唯一的正解。 它可以让你把成本降到 $0,直到你真正开始赚钱。 Scale to Zero (缩容到零) 是云时代对开发者最大的温柔。


5. 本章小结

  1. 按需付费:只为计算付费,不为时间付费。
  2. 无状态:习惯"用完即走"的代码风格,状态交给数据库。
  3. 零运维:忘掉 SSH,忘掉 Nginx,专注写代码。