de_DEen_USes_ESfa_IRid_IDpt_PTvizh_CNzh_TW

UML部署图:将软件映射到基础设施

虽然组件图关注代码模块的逻辑组织,而UML部署图架起了通向现实的桥梁。它回答了一个关键问题:“所有这些代码实际上运行在什么地方?”

该图是唯一专注于物理运行时环境的UML模型。它可视化了软件构件与硬件目标之间的映射,展示了系统组件如何分布在服务器、数据库、移动设备和云基础设施上。在云计算、微服务和物联网的时代,理解这种物理架构比以往任何时候都更加关键。

物理架构的构成

部署图的主要目标是部署图展示系统的物理拓扑结构——即硬件(节点)和运行在其上的软件(构件)。

1. 节点:硬件与执行环境

部署图的基本构建块是节点。节点表示部署构件以供执行的计算资源。它们以三维方框(立方体)的形式表示。

节点主要有两种类型:

  • 设备节点: 这些代表具有处理能力的物理硬件资源。

    • 示例: 应用服务器、数据库服务器、手机、物联网传感器或负载均衡器。

  • 执行环境节点(执行环境): 这些是运行在设备节点内的基于软件的容器,用于托管特定类型的构件。它们代表了管理已部署组件的软件层。

2. 构件:可部署的软件

一个构件 表示软件组件的具体物理表现形式。虽然“组件”是类的逻辑分组,但“工件”是实际安装到服务器上的文件。

工件通常绘制为一个带有关键字“«artifact»”的矩形。«artifact»或角落处的小文档图标。它们通常放置在内部节点内部,以显示它们被部署的位置。

  • 示例: user-service.jar, index.html, database-schema.sql, config.xml,或payment-api.exe.

3. 通信路径:连接

节点很少孤立运行。通信路径表示节点之间的物理连接或关联,展示它们如何交换信息。

它们以连接两个节点的实线绘制。关键的是,它们通常用构造型标注,以表明所使用的通信协议或网络类型。

  • 示例: «HTTP/HTTPS», «TCP/IP», «JDBC», «RMI»,或 «消息队列».

Communication Paths: The Connections

可视化拓扑结构

典型的部署图讲述了系统运行时结构的故事。例如,一个标准的三层Web应用程序可以如下所示:

  1. 客户端层: 一个 移动设备(节点)包含一个 移动应用程序(构件)。

  2. 中间层: 一个 Web服务器(设备节点)托管一个 Docker容器(执行环境),其内部包含 API服务.jar(构件)。

  3. 数据层: 一个 数据库服务器(设备节点)托管一个 PostgreSQL实例(执行环境),其管理着 用户数据(构件)。

连接这些节点的连线标注为 «HTTPS»(在移动设备和Web服务器之间)以及 «JDBC»(在Web服务器和数据库之间)。

为什么要使用部署图?

部署图对DevOps工程师、系统架构师和网络管理员来说至关重要。

  • 部署规划: 它们是发布管理的权威地图,明确指出哪些文件需要部署到哪些服务器。

  • 性能分析: 通过可视化处理的分布和网络连接,架构师可以识别潜在的瓶颈(例如,单个低功耗节点上承载过多构件,或频繁通信服务之间的网络连接缓慢)。

  • 安全建模: 它们通过突出显示哪些节点暴露在外部网络(公共互联网)中,哪些节点被防火墙隔离,从而帮助识别安全风险。

  • 基础设施即代码(IaC)设计: 在现代DevOps中,这些图表为编写Terraform或CloudFormation脚本以配置云资源提供了概念蓝图。

有关UML和AI辅助可视化的更多信息,请参阅我们的UML资源中心.