
給剛進團隊、搞不清楚「這個要部署到哪個環境」的你。
先講結論
軟體從寫完到上線,至少要經過四道關卡:DEV → SIT → UAT → PROD。每一關的目的不同,搞混了輕則浪費時間,重則把假資料推上正式環境——你有沒有遇過 PM 打電話來問「為什麼客戶看到的是 Faker 生的假名字」?對,就是那種慘。

四個環境,各司其職
DEV — 你的遊樂場
開發環境就是工程師的沙盒。用 Faker / Seeder 塞假資料,愛怎麼炸就怎麼炸。安全性要求最低,但拜託還是不要把 production 的 .env 複製過來用,雖然我知道你做過。
常用工具就是你的 IDE(VS Code、JetBrains 系列),沒什麼好說的。
SIT — 模組整合的照妖鏡
系統整合測試環境。重點是驗證不同模組之間能不能好好合作。你的 API 跟前端串得起來嗎?第三方服務的 webhook 收得到嗎?
這邊用的是非生產資料,但要設好存取權限——畢竟測試資料也不是隨便誰都能看的。API 測試、E2E 測試、自動化測試,能跑的都在這裡跑。
UAT — 讓 PM 和客戶來挑毛病
使用者驗收測試。這個環境的主角不是工程師,是行銷團隊和客戶。他們要確認:「這個功能是不是我當初要的那個?」
這邊可能會用到真實資料的副本,所以存取控制要嚴格。通常會邀請實際用戶來測,收集回饋再調整。
PROD — 不要在這裡實驗
生產環境。真正的用戶在用的東西。防火牆、IDS、定期安全審計,能裝的都裝上。監控工具(Prometheus、Grafana、New Relic)24 小時盯著,出事了要能第一時間知道。
這裡的資料是真的,處理方式也要是真的——加密、存取控制、GDPR,一個都不能少。
版本更新流程(別跳步驟)
- 需求收集:搞清楚這個版本要做什麼,範圍多大
- 測試計劃:定義怎麼測、測什麼,包含單元 / 整合 / 系統測試
- 執行測試:在各環境跑過一輪,發現問題立刻修
- 回饋收集:聽聽用戶和測試團隊的意見
- 最終驗收:全部過了,才准上 PROD
每一步都有人想跳過,尤其是在 deadline 前三天。但跳了就是在賭,賭輸了就是半夜被叫起來修 bug。
幾個實務上的建議
自動化環境配置:用 Terraform 或 Ansible 管理環境。手動設定四個環境,保證第三個就開始出錯。Infrastructure as Code 不是潮流,是生存策略。
回滾要能一鍵搞定:不管測得多嚴格,PROD 還是可能爆。Git 版本回滾、hotfix 分支、資料備份,這些不是「有空再弄」的東西,是上線前就該準備好的保險。
多人協作的紀律:DEV 開發完推 SIT 測試,過了再推 UAT 驗收,確認無誤才上 PROD。流程很無聊,但無聊的流程才能減少刺激的深夜緊急修復。
環境管理最難的不是技術,是讓每個人都乖乖走完流程。