首页/开发/系统分析与架构设计速查/部署图(Deployment Diagram)
需求分析与建模61 条

部署图(Deployment Diagram)

描述运行期物理与逻辑部署:节点(«device»、«executionEnvironment»)、制品、部署规格与通信路径,用于评审服务器、容器与网络拓扑。

部署图是什么

部署图描述运行期的物理与逻辑部署:节点(device 表示物理设备、executionEnvironment 表示容器或运行时)、节点上部署的制品、部署规格以及节点之间的通信路径。它回答的是代码跑在哪里、彼此怎么联网,而不是类怎么设计,是与运维共同评审拓扑时的主力图。

与组件图的区别

组件图回答系统由哪些可替换部件组成、依赖方向如何;部署图回答这些部件跑在哪些节点上、跨哪些网络区域。一次上线评审通常两张都要看:组件图定接口与依赖关系,部署图定实例数、可用区分布与网络放行规则。

基本信息

节点计算资源:物理机、虚拟机、容器运行时、网络设备
制品部署到节点上的构建产物:jar 包、容器镜像、静态资源包
通信路径节点之间的网络协议与端口
部署规格实例数、资源限额、副本分布等配置

PlantUML 片段

PlantUML 片段
node "负载均衡" <<nginx>>
node "应用节点" <<executionEnvironment>> {
  artifact order.jar
}
database "主库" as db1
database "从库" as db2
负载均衡 --> 应用节点 : HTTPS    # 入口流量经负载均衡转发
应用节点 --> db1 : JDBC         # 应用只写主库
 db1 --> db2 : 复制              # 主从复制方向要标清楚

典型使用场景

  • 上线评审:确认实例数、可用区分布与负载均衡配置
  • 网络放行申请:把节点之间的协议与端口整理成防火墙规则清单
  • 容量规划:结合节点资源与实例数估算扩容规模
  • 故障演练:按图设计断网、宕机的验证范围
  • 与运维对齐:把机房、可用区、负载均衡与数据库主从一并画出

画到什么程度

部署图的粒度取决于用途:做网络放行申请时,需要精确到节点之间的协议与端口;做上线评审时,重点是实例数、可用区与副本分布;做容量规划时,需要标注节点规格与资源限额。三种用途不必画在同一张图上,混在一起会让读者抓不住重点。

手工维护的部署图很快过期,建议由部署清单或基础设施即代码配置生成,让拓扑图跟着真实配置走,而不是靠记忆补画。

易错点

  • 部署图与真实环境脱节,缺少负载均衡与网络分区细节,评审结论落不了地
  • 手工维护的部署图很快过期,团队逐渐不再信任这张图
  • 把逻辑分层画进部署图,运维无法据此申请网络策略与放行规则
  • 只画节点不标端口与协议,防火墙放行时反复来回确认

数据来源与参考

  • OMG UML 2.5.1 规范
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌