預釋出環境與回滾
有兩個習慣,把一次能優雅恢復的上線,和一次變成午夜恐慌的上線區分開來:在變更觸達真實使用者之前先在安全的地方測試它,以及能夠即刻撤銷一次糟糕的部署。
一個預釋出(staging)環境只不過是你應用的第二份副本——同樣的程式碼、獨立的 、獨立的(或一次性的)資料庫——一個讓你在生產之前先試一試的地方。大多數託管平臺讓這幾乎免費:每一個 都自動獲得它專屬的預覽 URL,於是你可以在合併之前點過一遍一個變更,並把它分享給某個人。對那些你沒法輕易逆轉的東西——比如一次資料庫遷移——尤其要用它。
把這三個環境想像成一架變更要往上爬的梯子,而回滾就是那根能把生產環境直接落回上一個好梯級的繩子:
開發 ──▶ 預發 / 預覽 ──▶ 生產
(筆記本) (PR預覽URL) (真實使用者)
試 點選體驗 上線
隨便試 分享 · 驗證 ┌──────────────┐
│ deploy #42 │ ◀── 當前 (已壞)
├──────────────┤
回滾│ deploy #41 │ ◀── 最後正常版
│ ├──────────────┤
└──▶│ deploy #40 │
└──────────────┘
一條命令 / 一次點選 = 即時撤銷
一次回滾是你對整個應用的撤銷按鈕。因為這些平臺保留著此前的每一次部署,回到上一個好版本通常就是一條命令或一次面板點選:
# Cloudflare Pages: 重新部署一個已知良好的構建
wrangler pages deployment list
wrangler pages deployment rollback <DEPLOYMENT_ID>
# Vercel: 把一次之前的部署重新提升為生產環境
vercel rollback <DEPLOYMENT_URL>
在你需要它之前就知道這條命令,而不是在故障當中才去找。vibe coding 速度的全部意義在於釋出很便宜——但只有當撤銷釋出同樣便宜時,便宜的釋出才讓人感覺安全。