Документация / PlantUML

Компоненты и развёртывание

Диаграммы компонентов и развёртывания описывают архитектуру: из каких частей состоит система, какие у них интерфейсы и где они работают. В PlantUML обе строятся из одних и тех же элементов, поэтому их можно сочетать.

Компоненты и интерфейсы

Компонент записывается в квадратных скобках [Название] или словом component, интерфейс — () или interface.

@startuml
[Веб-приложение] as Web
component "Сервис заказов" as Orders
component "Сервис оплаты" as Payments
interface "REST API" as API
() "Kafka: orders" as Topic

Web --> API
API - Orders
Orders --> Topic : публикует
Topic --> Payments : читает
@enduml

Группировка

Элементы объединяются в контейнеры: package, node, folder, frame, cloud, database, rectangle.

@startuml
package "Frontend" {
  [SPA] as Spa
}
node "Kubernetes" {
  frame "namespace: shop" {
    [API Gateway] as Gw
    [Orders] as Ord
  }
}
database "PostgreSQL" {
  folder "orders" {
    [Таблицы заказов] as Tbl
  }
}
cloud "Внешние сервисы" {
  [Платёжный шлюз] as Pay
}

Spa --> Gw : HTTPS
Gw --> Ord
Ord --> Tbl : JDBC
Ord --> Pay : REST
@enduml

Порты

@startuml
component "Сервис" as S {
  portin "HTTP" as In
  portout "Kafka" as Out
  [Ядро] as Core
}
In --> Core
Core --> Out
@enduml

Элементы развёртывания

Для диаграммы развёртывания есть элементы с собственными значками.

@startuml
actor Пользователь
node "Сервер приложений" as App {
  artifact "orders.jar" as Jar
}
database "БД" as DB
queue "RabbitMQ" as MQ
storage "S3" as S3
cloud "CDN" as CDN
card "Конфигурация" as Cfg

Пользователь --> CDN
CDN --> App
Jar --> DB
Jar --> MQ
Jar --> S3
Cfg ..> Jar
@enduml

Доступные элементы: actor, agent, artifact, boundary, card, circle, cloud, collections, component, control, database, entity, file, folder, frame, hexagon, interface, label, node, package, person, queue, rectangle, stack, storage, usecase.

Связи

Связи рисуются линиями разного вида; подпись — после двоеточия.

@startuml
node A
node B
node C
node D
A --> B : сплошная со стрелкой
A ..> C : пунктирная
A -- D : без стрелки
B -[#red,dashed]-> D : цвет и стиль
C -[bold]-> D : жирная
@enduml

Заметки и стереотипы

@startuml
component "Биллинг" as Billing <<legacy>>
note bottom of Billing
  Планируется замена
  в третьем квартале
end note
@enduml

Обновлено: 30 сентября 2026 г.