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

11.12 SRE入门意识

Tip

真正的崩溃不是报错,而是"沉默"。


1. 为什么要学这个?

恐怖故事: 你睡得正香,第二天早上醒来,发现老板发了 50 条微信。 "网站打不开了!" "用户付不了款了!" 一看日志,昨晚凌晨 2 点证书过期,服务挂了整整 6 个小时。 不仅丢了钱,还丢了信任。

SRE (Site Reliability Engineering) 就是要在用户发现问题之前,先发现问题。


2. 核心概念:监控体系

1. Uptime Monitor (心跳检测)

这是你的"心电图仪"。 这就好比 ICU 里的"滴...滴...滴..."。 它每隔 5 分钟尝试访问你的网站 https://your-site.com

  • 状态 200: 活着。
  • 状态 500/无法连接: 死了 -> 立刻给你的手机发报警 (短信/电话)。
  • 工具: UptimeRobot (免费且好用), Better Stack。

2. Error Tracking (病情诊断)

这是你的"验血报告"。 用户端报错了 (White Screen),或者后端抛异常了。 用户是不会主动告诉你的,他们只会默默关掉网页。 你需要一个工具,自动捕获这些错误,并告诉你:

  • 谁错了: User A (Chrome on Windows)。
  • 哪错了: SubmitButton.tsx Line 42。
  • 怎么错的: TypeError: Cannot read property 'price' of undefined
  • 工具: Sentry (行业标准)。

3. 核心术语 (SLA/SLO)

  • SLI (Indicator): "体温多少度?" (当前的延迟是 200ms)。
  • SLO (Objective): "发烧线是多少?" (我们目标是 99% 的请求在 500ms 内)。
  • SLA (Agreement): "烧坏了咋赔?" (如果停机超过 1 小时,赔偿客户 1 个月会员)。

4. 解决方案 (HOW)

第一步:接入 UptimeRobot

  1. 注册 UptimeRobot。
  2. Add New Monitor -> HTTP(s)。
  3. 输入你的网址。
  4. 勾选 "Email Alert" (在这个阶段不需要电话报警)。 成本: 0 元/月。

第二步:接入 Sentry

  1. 注册 Sentry。
  2. Create Project -> Next.js。
  3. 在项目里运行 Wizard:
    npx @sentry/wizard@latest -i nextjs
    
  4. 它会自动修改 next.config.js 并上传 Source Maps。 成本: 0 元/月 (个人版额度足够)。

SRE 循环图

graph TD
    Monitor["Step 1: 监控 (Monitor)"] -->|"报警: 网站挂了"| Alert["Step 2: 告警 (Alert)"]
    Alert -->|"唤醒工程师"| Fix["Step 3: 修复 (Fix)"]
    Fix -->|"复盘"| Postmortem["Step 4: 事故报告 (Postmortem)"]
    Postmortem --"改进架构 (比如加缓存)"--> Monitor
    
    style Alert fill:#ffcdd2,stroke:#c62828
    style Monitor fill:#e1bee7,stroke:#8e24aa

5. 真实案例

Story

"安静的购物车"

某电商大促,老板发现无论流量多大,成交量都是 0。 前端界面看起来完全正常,没有白屏。 工程师打开 Sentry 一看,发现有一个 Unhandled Promise Rejection 正在疯狂刷屏。 原因:后端更新了一个字段名,前端的"加入购物车"逻辑因为取不到值,默默失败了 (try-catch 捕获了但没处理)。 这个错误在控制台里只是红了一行字,但对业务来说是毁灭性的。

Vibe 心法: 不要相信"沉默"的系统。 没有 Error Log 不代表没有 Bug,可能只是你没捕获到。 Sentry 是开发者的第六感,它能让你隔着屏幕感知到系统的疼痛。


6. 本章小结

  1. 心跳检测:UptimeRobot 是底线,没它就别上线。
  2. 错误追踪:Sentry 是标配,一定要配置 SourceMap 才能看懂报错。
  3. 告警疲劳:不要把 console.log 都发报警,只有真正需要你立刻起床的事才值得报警。