Vibe Coder

部署流程與維運監控:上線後怎麼知道壞了、怎麼快速修

好的維運要讓你比使用者先發現問題,靠的是 Log、Metrics、Alert 三要素,搭配 Sentry 做錯誤追蹤、Uptime Robot 做存活監控。部署後要觀察五分鐘的 Log 和錯誤率,出問題時的黃金原則是先回滾讓服務恢復正常,之後再慢慢用 Log 找原因,每多拖一分鐘就有更多使用者受影響。
部署流程與維運監控:上線後怎麼知道壞了、怎麼快速修

部署流程與維運監控:上線後怎麼知道壞了、怎麼快速修

如果是使用者回報你才發現壞了,代表你根本沒有監控。好的監控要讓你在使用者感知之前就先發現問題,而 AI 生成的程式預設不會加上 Log、錯誤追蹤或存活監控,這些都要你主動要求。這篇帶你把部署流程設計好,並補上維運最基本的三個要素。

你將學到什麼

部署流程怎麼設計

從功能分支到合併主幹,五個步驟讓部署既快又安全。

監控三要素

Log、Metrics、Alert 分別看什麼、用什麼工具。

Sentry 與 Uptime 監控

自動捕捉錯誤、每隔幾分鐘確認服務還活著。

回滾策略

Vercel、Railway、Git 三種回滾方式,出事先救服務再找原因。

部署流程設計

好的部署流程讓你能快速、安全地把新功能推給使用者,出問題時能快速回滾。

  1. 本機開發完成:功能跑通,基本測試過,commit 到 feature branch。
  2. 開 Pull Request:把 feature branch 合併進 main 的請求,這是檢查點。
  3. 自動測試(可選):GitHub Actions 自動跑測試,有失敗就阻擋合併。
  4. 合併到 main:Vercel/Railway 偵測到 main 更新,自動觸發部署。
  5. 觀察部署後 Log:部署完成後看五分鐘的 Log 和錯誤率,確認沒有異常。
提交 commit建置 build部署 deploy監控Log / Metric / Alert偵測到異常回滾到上一個正常版本
監控發現異常,先回滾,後找原因。

監控三要素:Log、Metrics、Alert

要素說明看什麼工具
Log(日誌)程式執行的文字記錄錯誤訊息、執行流程、使用者操作平台自帶 Log、Papertrail
Metrics(指標)數字化的系統狀態回應時間、錯誤率、流量、CPUVercel Analytics、Railway 監控
Alert(警報)指標超出閾值時通知錯誤率大於 1%、回應時間大於 2 秒、服務掛掉Uptime Robot、Better Uptime

在 Python 加上結構化 Log(FastAPI):

import logging
logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s %(levelname)s %(message)s"
)
logger = logging.getLogger(__name__)

@app.post("/api/chat")
async def chat(request):
    logger.info(f"收到請求:user_id={request.user_id}")
    try:
        result = call_ai(request.message)
        logger.info(f"AI 回應成功,tokens={result.usage.total_tokens}")
        return result
    except Exception as e:
        logger.error(f"AI 呼叫失敗:{e}", exc_info=True)
        raise

Sentry:前後端錯誤追蹤

Sentry 是最常用的錯誤追蹤服務,能自動捕捉前後端的 exception,並提供完整的 Stack Trace、使用者資訊、發生頻率。免費方案對小型專案夠用。

  1. 到 sentry.io 建立帳號和 Project,取得 DSN(類似 API Key 的連線字串)。
  2. 安裝 SDK:Python 用 pip install sentry-sdk,前端用 npm install @sentry/react。
  3. 在程式最開頭初始化 Sentry,之後所有未捕捉的 Exception 自動上報。
import sentry_sdk, os
sentry_sdk.init(
    dsn=os.getenv("SENTRY_DSN"),
    traces_sample_rate=0.1,  # 10% 的請求記錄效能追蹤
    profiles_sample_rate=0.1,
)

Uptime 監控:怎麼知道網站掛了

Uptime 監控每隔幾分鐘 ping 你的服務,掛了就立刻通知你,管道包括 Email、Slack、LINE。

服務免費方案監控間隔推薦度
Uptime Robot50 個監控,5 分鐘間隔5 分鐘四星
Better Uptime10 個監控,3 分鐘間隔3 分鐘五星
Freshping50 個監控,1 分鐘間隔1 分鐘四星

回滾策略:出事了怎麼快速救

部署後發現問題,第一優先是讓服務恢復正常,之後才慢慢找原因。

Vercel 回滾:到 Vercel Dashboard 進你的專案的 Deployments,找到上一個正常的部署(狀態是 Ready),點右側三個點選「Promote to Production」,30 秒內流量切回舊版本。

Railway 回滾:進 Railway Dashboard 的服務 Deployments,找到上一個正常的部署,點「Rollback」。

Git 回滾是萬能方案:

# 找到上一個正常的 commit hash
git log --oneline -10

# 建立 revert commit(推薦,保留歷史)
git revert HEAD
git push

# 或者強制回到舊版(謹慎使用)
git reset --hard <commit-hash>
git push --force
黃金原則:先回滾,後找原因出問題時不要急著 debug,先把服務回滾到正常狀態,讓使用者能正常使用。等服務穩定後,再用 Log 和 Sentry 慢慢找原因。每多拖一分鐘,就有更多使用者受影響。

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

監控的三要素分別是什麼?
Log(日誌)記錄程式執行的文字,用來看錯誤訊息和操作流程;Metrics(指標)是數字化的系統狀態,例如回應時間和錯誤率;Alert(警報)在指標超出閾值時主動通知你,讓你在使用者察覺之前就知道出事了。
Sentry 能做什麼?
Sentry 是最常用的錯誤追蹤服務,能自動捕捉前後端未被捕捉的 Exception,提供完整的 Stack Trace、使用者資訊與發生頻率,免費方案對小型專案就夠用。
部署出問題時該先做什麼?
黃金原則是先回滾,後找原因。不要急著除錯,先把服務回滾到正常狀態,讓使用者能正常使用,等服務穩定後再用 Log 和 Sentry 慢慢找原因,每多拖一分鐘就有更多使用者受影響。
Uptime 監控要怎麼設定?
用 Uptime Robot 這類服務,新增一個 HTTP(S) 監控填入你的服務網址,設定幾分鐘的檢查間隔,並開啟 Email 或其他管道的通知,服務一掛掉就會立刻收到通知,不需要等使用者回報。