1. UML部署圖的目的
一個部署圖顯示系統的實體/執行時期架構:
- 硬體節點(伺服器、裝置、雲端實例)
- 部署於這些節點上的軟體元件
- 執行環境(容器、執行時)
- 節點之間的通訊路徑(通訊協定、連接)
針對一個簡單線上點餐系統,它可視化以下內容:
- 客戶與餐廳的網頁使用者介面如何提供
- 業務邏輯如何執行
- 資料如何儲存
- 外部服務(付款、通知)如何整合
它幫助開發人員、DevOps 和相關利益者理解部署拓撲、擴展點、安全邊界與相依性。
2. 部署圖中的關鍵UML元素
| 元素 | UML符號(PlantUML) | 意義/何時使用 | 範疇範例 |
|---|---|---|---|
| 節點 | node 「名稱」 | 可主機元件的運算資源(實體或虛擬) | <<裝置>>、<<雲端>> |
| 設備 | 節點「名稱」<<設備>> | 實體或虛擬硬體(伺服器、行動裝置、路由器) | <<設備>>, <<伺服器>> |
| 執行環境 | 節點「名稱」<<執行環境>> | 軟體執行時/容器(Tomcat、Node.js、Docker、JVM) | <<執行環境>>, <<容器>> |
| 工件 | 工件「filename.war」 | 可部署單元(可執行檔、.jar、.js 套件、資料庫結構、設定檔) | <<可執行檔>>, <<檔案>>, <<資料庫>> |
| 組件 | 組件「名稱」 | 邏輯軟體單元(在部署圖中為可選;通常由工件實現) | <<網頁>>, <<服務>> |
| 通訊路徑 | –, –>, ..> | 節點之間的網路連接(可具有通訊協定標籤) | HTTP/HTTPS、WebSocket、RMI |
| 依賴 / 呼叫 | ..>, –> | 使用/依賴(例如:前端呼叫後端) | <<呼叫>>, <<存取>> |
| 顯現 / 實現 | ..> 以 <<實現>> 或 ..> | 工件實現 / 部署為組件 | <<實現>>, <<顯現>> |
| 外部系統 | 節點「名稱」<<外部>> | 您無法控制的第三方服務 | <<外部>>, <<SaaS>> |
3. 部署圖的最佳實務(特別適用於網路系統)
- 保持簡單且易讀簡單且易讀 — 避免過度擁擠;每個主要環境(開發/測試/生產,可選)使用一個圖
- 使用有意義的節點分組(將節點嵌套於節點內)以顯示叢集/雲端區域
- 優先使用簡潔的符號 — 僅在相關時顯示檔案名稱/設定;跳過重複的樣式
- 清楚顯示邊界 — 內部雲端與外部服務
- 標示通訊協定於路徑上(HTTP/HTTPS、WebSocket、TCP 等)
- 使用由左至右的方向 於網路系統中(客戶端 → 伺服器 → 資料庫的流程感覺自然)
- 區分裝置(硬體)與執行環境(執行時期)
- 僅在有價值時顯示實作關係(僅在有價值時,例如:實體 → 模組)
- 使用skinparam 在 PlantUML 中以獲得更好的顏色/可讀性
- 適用於小型/中型系統:最多 4–8 個節點
4. 簡單線上點餐系統的推薦架構
此系統的乾淨、現代化佈局:
- 客戶端 → 瀏覽器(隱含)與 … 通訊Web 伺服器/CDN
- Web 伺服器/CDN 主機靜態資源與 SPA 檔案,用於客戶網站與餐廳管理介面
- API 伺服器(執行環境)執行後端邏輯
- 資料庫伺服器 主機 PostgreSQL
- 外部 支付與通知服務
典型節點:
- Web 伺服器 / CDN <<device>>
- API 伺服器 <<executionEnvironment>>
- 資料庫伺服器 <<executionEnvironment>>
- 支付網關 <<external>>
- 通知服務 <<external>>
5. 由 Visual Paradigm AI 聊天機器人生成的圖示

改良並清理過的 PlantUML 程式碼(含說明)
Plantuml
Edit Plantuml in VPasCode
@startuml
title 簡單線上點餐系統 - 部署圖
從左到右方向
skinparam {
ArrowColor #424242
ArrowFontColor #424242
DefaultFontSize 14
shadowing false
stereotypeCBackgroundColor #ADD1B2
stereotypeIBackgroundColor #ADD1B2
}
' ── 節點 ────────────────────────────────────────────────
node "Web 伺服器 / CDN" <<device>> as WebServer {
[客戶網站 HTML/JS/CSS] #..# (客戶 SPA)
[餐廳管理介面 HTML/JS/CSS] #..# (餐廳 SPA)
}
node "雲端後端" <<device>> as Cloud {
node "API 伺服器" <<executionEnvironment>> as APIServer {
artifact "backend-api.jar / main.exe" as BackendArtifact
}
node "PostgreSQL 伺服器" <<executionEnvironment>> as DBServer {
database "PostgreSQL 資料庫" as Postgres <<database>>
}
}
node "支付網關" <<external>> as Payment {
[支付 API] as PaymentAPI
}
node "通知服務" <<external>> as Notification {
[WebSocket / 推播 API] as NotifyAPI
}
' ── 關係 ─────────────────────────────────────────
WebServer --> Cloud : HTTPS (API 呼叫)
Cloud --> Payment : HTTPS (結帳)
Cloud --> Notification : WebSocket / HTTPS (狀態更新)
' 檔案 → 組件實作(可選但清晰)
(Customer SPA) ..> BackendArtifact : <<呼叫>>
(Restaurant SPA) ..> BackendArtifact : <<呼叫>>
BackendArtifact --> Postgres : <<JDBC / SQL>>
BackendArtifact --> PaymentAPI : <<HTTPS 呼叫>>
BackendArtifact --> NotifyAPI : <<WebSocket / HTTPS>>
' 可選:若需要,可在資料庫上顯示協定
' BackendArtifact -right-> Postgres : <<JDBC>>
note right of Cloud
典型的小型/中型設定:
• 單一虛擬機器或小型叢集
• API 與資料庫可位於同一台機器上(為簡化)
或分離以獲得更好的擴展性
end note
@enduml 6. 分步指南:如何建立您自己的部署圖
- 列出所有執行目標(伺服器、容器、外部服務)
- 列出可部署的工件(實際執行的內容:.js 套件、.jar、資料庫)
- 分組為節點(邏輯上可嵌套——例如 API + 資料庫位於同一雲端節點)
- 決定方向(從左到右的設計對 web → API → DB 來說效果良好)
- 新增通訊路徑並加上協定標籤
- 新增關鍵依賴(<<呼叫>>、<<存取>>)
- 套用皮膚參數用於顏色/可讀性
- 新增註解用於重要決策(單一 vs 多實例、擴展註解)
- 驗證:DevOps 工程師能否理解每個組件應部署的位置?
總結 – 簡單食物訂購部署快速參考
| 部分 | 典型節點類型 | 工件範例 | 透過以下方式連接 |
|---|---|---|---|
| 顧客介面 | Web 伺服器 / CDN <<裝置>> | SPA 套件(HTML/JS) | HTTPS → API |
| 餐廳儀表板 | Web 伺服器 / CDN <<裝置>> | 管理員 SPA 套件 | HTTPS → API |
| 業務邏輯 | API 伺服器 <<executionEnv>> | backend-api.jar / 可執行檔 | JDBC → 資料庫,HTTPS → 外部 |
| 資料儲存 | PostgreSQL <<executionEnv>> | PostgreSQL 資料檔 + 資料結構 | — |
| 付款 | 外部 <<SaaS>> | 付款 API 端點 | HTTPS |
| 即時更新 | 外部 <<SaaS>> | WebSocket / FCM / APNs | WebSocket / HTTPS |
此架構對於 MVP 或中小型規模部署(1–3 台伺服器 + 雲端資料庫 + Stripe/PayPal + Firebase/Pusher)是現實可行的。
系統擴展時,可自由調整巢狀結構、通訊協定,或新增擴展說明(例如負載平衡器、複本等)。
🔗 參考清單
- AI 圖表生成器 – Visual Paradigm: 官方發行說明,詳細介紹 Visual Paradigm AI 圖表生成器的推出與功能,包含文字轉 UML 的狀態圖功能。
- 使用 AI 在數秒內建立 UML 狀態圖 – Visual Paradigm: 逐步指南,示範如何使用 AI 從純文字生成 UML 狀態圖,並提供實際應用範例與使用情境。
- 什麼是狀態機圖? – Visual Paradigm: 基礎文章,說明 UML 狀態機圖的目的、結構與最佳實務。
- 使用 Visual Paradigm AI 掌握狀態圖 – Cybermedian: 實用指南,展示 AI 增強的狀態圖如何應用於實際系統,例如自動收費系統。
- 全面評論:Visual Paradigm 的 AI 圖表生成: 對 AI 圖表生成器的準確性、易用性以及與開發工作流程整合性的詳細評估。
- AI聊天機器人 – Visual Paradigm: 介紹能夠透過對話方式編輯UML圖表(包括狀態圖)的AI助理。
- OpenDocs更新:AI狀態圖生成器 – Visual Paradigm: 宣布增強的文件整合功能,可將狀態圖嵌入並同步至技術文件中。
- Visual Paradigm AI狀態圖教學 – YouTube: 一段影片教學,示範如何使用AI圖表生成器為電子商務訂單流程建立狀態圖。
- 關於狀態圖 – Visual Paradigm: 對UML狀態圖的全面概述,包含其組成部分、語法以及實際應用場景。
- 建立狀態圖 – Visual Paradigm使用者指南: 詳細的逐步說明,用於建立狀態圖,包含複合狀態與保護條件。
- 進階狀態機功能 – Visual Paradigm: 深入探討使用Visual Paradigm的進階建模技術,包含巢狀狀態、正交區域與事件處理。
- 與前一版本比較 – Visual Paradigm使用者指南: 變更比較功能的文件說明,讓團隊能夠追蹤並管理狀態圖的版本變更。










