要公開在本機能執行的 Web 應用程式,可以租用 VPS 自行部署,也可以交給 PaaS 執行。兩者的差異,在更新程式或服務停止時最容易看出來。
VPS 和 PaaS 分別由誰管理?
VPS 是租用虛擬伺服器的方式。你可以用 SSH 登入 Linux 主機,安裝執行環境並設定啟動方式。DigitalOcean Droplet 就是這類服務的例子。DigitalOcean 官方設定指南
PaaS 由平台管理程式的執行環境。你要設定程式碼、啟動指令和環境變數。例如 Render 可從連結的 Git 分支自動部署。Render 官方部署文件
由開發者設定作業系統、啟動和部署方式。
平台管理執行基礎設施,開發者維護程式和相依套件。
| 工作 | 一般 VPS | 連結 Git 的 PaaS |
|---|---|---|
| 作業系統和中介軟體 | 更新作業系統,管理反向代理和執行環境 | 平台管理基礎設施。開發者更新相依套件與自製映像檔。 |
| 更新程式 | 設計檔案部署、程序重啟與失敗時的回復 | 使用平台的建置與部署功能,上線後自行驗證。 |
| 排查故障 | 檢查伺服器狀態與應用程式日誌 | 查看部署紀錄、應用程式日誌和服務狀態。 |
| 保護資料 | 若資料庫在同一台主機,要自行規劃備份和還原 | 可選外部或代管資料庫,確認保留期限與還原流程。 |
更新同一個 Node.js 應用程式會有什麼差別?
假設要修改社團器材預約系統的介面文字。使用 VPS 時,依照首次上線時制定的步驟把新版放上伺服器,再切換執行程序。用 GitHub Actions 自動化時,也要決定權限、部署失敗時如何處理,以及如何回到舊版。
支援 Git 的 PaaS 可以在推送到指定分支時開始部署。透過公開網址確認變更,並比對部署紀錄中的提交。若涉及資料庫結構變更,兩種方式都要另外規劃,因為只還原程式碼會保留資料庫變更。Render 官方自動部署說明
推送 → 自訂部署流程 → 切換程序 → 確認公開網址
推送 → 平台建置並部署 → 確認公開網址
KamuiDash 是可從 GitHub 部署 Web 伺服器的 PaaS。Node.js 應用程式可以設定儲存庫、啟動指令和環境變數,再確認部署結果。KamuiDash 官方 Node.js 設定

更新後打不開預約頁面時
使用 VPS 時,先確認應用程式程序是否啟動,再看反向代理的日誌有沒有連線失敗。使用 PaaS 時,先看部署紀錄確認上線的版本,再從應用程式日誌找啟動錯誤。若程式碼變更無法解釋故障,也可以查詢平台的服務狀態。
依照自己想管理的範圍選擇
想學作業系統管理、需要自訂網路設定,或想自行安排多個程序,可考慮 VPS。一般 HTTP 應用程式若想把時間放在開發功能,可考慮 PaaS。先確認是否需要持續執行、重啟後需不需要保留檔案,以及有沒有背景工作。Render 的免費 Web 服務閒置時會停止,重啟或重新部署後,本機寫入的檔案也會消失。Render 官方免費方案限制
用相同條件比較月費、資料庫、備份和網路流量的成本。也要決定何時、由誰更新作業系統和驗證還原。
延伸閱讀
可在 KamuiDash 了解如何從 GitHub 部署 Web 應用程式。