建構 Node.js 應用程式只是軟體開發生命週期的第一步;要確保應用程式在正式環境中可存取、高效能且具備韌性,才是應用程式推送的關鍵。部署現代化網頁應用程式時,必須根據流量特性、生命週期階段和資源預算,選擇適合的架構。
無論是要推出 AI 輔助的全端原型,還是部署正式環境等級的後端服務,現代雲端環境都提供自動化和容器化兩種途徑。本指南將說明 Node.js 網頁架構的核心概念、重要的部署考量事項,並逐步引導您使用免費方案的額度,在代管基礎架構上建立及部署 Node.js 應用程式。
Node.js 是一個開放原始碼、跨平台 JavaScript 執行階段環境,以 Chrome V8 JavaScript 引擎為基礎建構而成。它讓 JavaScript 在網路瀏覽器以外的伺服器端執行,使工程師使用單一程式設計語言,編寫統一的全端程式碼集。
傳統的多執行緒網路伺服器會為每個並行連線產生獨立的作業系統執行緒,Node.js 與之不同,採用事件導向、單一執行緒、非阻塞 I/O 模型。這種架構讓 Node.js 更加輕量且高效,能處理數千個並行連線,例如 RESTful API、即時訊息、串流服務和 AI 代理自動化調度管理程式。
準備部署 Node.js 後端時,選擇合適的運算環境會直接影響維護負擔、擴充速度和成本效益。
功能 | 虛擬機器 (IaaS/VPS) | PaaS/buildpack 託管 | 現代化無伺服器容器 |
基礎建設管理 | 手動修補 OS、管理防火牆及更新執行階段 | 全代管平台層,具有廠商執行階段鎖定 | 全代管基礎架構;不需管理 OS |
資源調度機制 | 依據指標自動調度 VM 資源 (需要幾分鐘才能啟動執行個體) | 依執行個體數量或工作站限制自動調度資源 | 根據要求即時自動調度資源,包括將資源調度率降至零 |
封裝格式 | 原始來源檔案、systemd 服務或 PM2 程序管理工具 | Git 推送存放區整合功能,搭配自動化建構套件。 | 標準 OCI/Docker 容器映像檔 |
閒置成本 | 無論傳入的 HTTP 流量為何,一律全天候計費 | 通常需支付最低基本執行個體費用。 | 在要求執行期間嚴格按秒計費 |
可攜性 | 可攜性高,但環境漂移風險高 | 可攜性低;受限於平台慣例 | 可攜性高;可在任何環境中執行相同的容器 |
功能
虛擬機器 (IaaS/VPS)
PaaS/buildpack 託管
現代化無伺服器容器
基礎建設管理
手動修補 OS、管理防火牆及更新執行階段
全代管平台層,具有廠商執行階段鎖定
全代管基礎架構;不需管理 OS
資源調度機制
依據指標自動調度 VM 資源 (需要幾分鐘才能啟動執行個體)
依執行個體數量或工作站限制自動調度資源
根據要求即時自動調度資源,包括將資源調度率降至零
封裝格式
原始來源檔案、systemd 服務或 PM2 程序管理工具
Git 推送存放區整合功能,搭配自動化建構套件。
標準 OCI/Docker 容器映像檔
閒置成本
無論傳入的 HTTP 流量為何,一律全天候計費
通常需支付最低基本執行個體費用。
在要求執行期間嚴格按秒計費
可攜性
可攜性高,但環境漂移風險高
可攜性低;受限於平台慣例
可攜性高;可在任何環境中執行相同的容器
如要開發可部署於正式環境的 Node.js 應用程式,必須解決架構模式問題,避免瓶頸並確保運作時間:
您可以透過兩種主要工作流程建立及部署 Node.js 應用程式:快速 AI 輔助原型設計 (不需本機設定),或標準容器式部署 (適用於現有程式碼集)。
如要快速建立原型及 AI 應用程式,開發人員可使用 Google AI Studio 建構模式,以自然語言描述全端 Node.js 架構,並部署至 Cloud Run,不必使用本機指令列工具或強制設定帳單。
步驟 1:在建構模式中初始化應用程式
步驟 2:設定內建資料和驗證
步驟 3:發布至代管 Cloud Run
如為現有程式碼集和自訂微服務,請將 Node.js 應用程式封裝至符合 OCI 規範的容器,並直接部署至 Cloud Run。
步驟 1:建構 Node.js 伺服器程式碼
使用 Express、Fastify 或標準 Node.js 程式庫 (index.js) 建立最小的 HTTP 伺服器:
注意:Cloud Run 會在執行階段自動插入 PORT 環境變數。上述程式碼中的 || 8080 備用值,主要是方便在部署前於本機機器進行測試。
步驟 2:建立安全的多級式 Dockerfile
使用多級式建構封裝應用程式,確保正式環境映像檔最小且安全。
最佳做法:在根目錄中建立 .dockerignore 檔案,並在其中加入 node_modules 和 .env。這可確保本機開發檔案不會意外封裝到容器映像檔中,保持映像檔乾淨安全。
在根目錄中建立名為 Dockerfile 的檔案:
步驟 3:部署至 Cloud Run
從本機根資料夾使用 Google Cloud CLI 執行部署作業。您也可以視需要為應用程式建立自訂網址,格式為 <使用者定義>.cloud.run:
瞭解免付費配額的運作方式,可確保您能以可預測的方式,建立 Node.js 應用程式的原型並擴充:
級別類型 | 運算與資源額度 | 需求/限制 |
Google Cloud 入門級 (原型設計) | • Cloud Run:最多兩個使用中的網頁應用程式 • Cloud Firestore:1 GiB 儲存空間、每天 5 萬次讀取、每天 4 萬次寫入 • Cloud SQL:PostgreSQL 開發人員版本 (可將資源調度率降至零) • Firebase 驗證:包含 Google 登入 | • 有效的 Google 帳戶 • 無須提供信用卡或帳單帳戶 • 鎖定單一部署區域 |
標準 Google Cloud 免費方案 (標準帳戶) | • Cloud Run:每月 200 萬次要求、每月 180,000 vCPU-秒、每月 360,000 GiB-秒、每月 1 GB 北美網路輸出 • 獲得價值 $300 美元的迎新抵免額,可在前 90 天內使用 | • 連結的 Cloud Billing 帳戶 • 完整平台 API 存取權,適用於所有區域 |
級別類型
運算與資源額度
需求/限制
Google Cloud 入門級 (原型設計)
• Cloud Run:最多兩個使用中的網頁應用程式
• Cloud Firestore:1 GiB 儲存空間、每天 5 萬次讀取、每天 4 萬次寫入
• Cloud SQL:PostgreSQL 開發人員版本 (可將資源調度率降至零)
• Firebase 驗證:包含 Google 登入
• 有效的 Google 帳戶
• 無須提供信用卡或帳單帳戶
• 鎖定單一部署區域
標準 Google Cloud 免費方案 (標準帳戶)
• Cloud Run:每月 200 萬次要求、每月 180,000 vCPU-秒、每月 360,000 GiB-秒、每月 1 GB 北美網路輸出
• 獲得價值 $300 美元的迎新抵免額,可在前 90 天內使用
• 連結的 Cloud Billing 帳戶
• 完整平台 API 存取權,適用於所有區域