PlantUML Deployment Diagram: Complete Guide with Cloud Examples (2026)

PlantUML deployment diagram guide — cloud architecture, Kubernetes, CI/CD pipeline and AWS/GCP/Azure examples

PlantUML Deployment Diagram: Complete Guide with Cloud Examples (2026)

5+ Infrastructure Zone Types
3 Cloud Provider Examples
CI/CD DevOps Pipeline Support
Free No Java Install Needed

A plantuml deployment diagram shows where software runs — the physical and virtual infrastructure including servers, containers, cloud zones, load balancers, and databases. Unlike a component diagram that shows what software modules exist, a deployment diagram shows how those modules are distributed across real infrastructure.

This guide covers the full plantuml deployment diagram syntax — nodes, artifacts, cloud grouping for AWS, GCP, and Azure, microservices patterns, DevOps CI/CD documentation, JSON and YAML visualization, Archimate integration, and styling. Every example is ready to run in any PlantUML editor.

All code examples work in our free PlantUML generator online — no Java needed, no install. Generate, preview, and export your deployment diagram as PNG or SVG directly in the browser in under 30 seconds.

Generate your deployment diagram free — paste, click, export
Copy any cloud architecture or CI/CD example from this guide into our free generator and render it instantly. Download PNG or SVG in one click — no account required.
Try Free Generator →
deployment-cloud.puml@startuml !theme cerulean cloud “AWS us-east-1” { node “EC2” as WEB node “RDS” as DB node “ElastiCache” as CACHE } node “CDN” as CDN node “Browser” as USER USER –> CDN : HTTPS CDN –> WEB : origin WEB –> DB : JDBC WEB –> CACHE : Redis @enduml 🌐 Browser HTTPS 🌎 CDN origin ☁️ AWS us-east-1 EC2 Web Server RDS PostgreSQL ElastiCache Redis Cache JDBC Redis ⚖ Load Balancer ALB / ELB ⤶ Kubernetes Cluster Pod: API x3 replicas Pod: Worker x2 replicas Ingress nginx PlantUML Deployment Code Rendered Cloud Architecture

What Is a PlantUML Deployment Diagram and Who Uses It?

A plantuml deployment diagram shows where software runs — the physical and virtual infrastructure including servers, VMs, containers, cloud zones, load balancers, and databases. It answers the question “where does this software live?” rather than “what does it do?” or “how do components connect?”

DevOps engineers use deployment diagrams for cloud architecture documentation and infrastructure reviews. SREs use them for incident response runbooks. Cloud architects use them for migration planning. Technical writers embed them in system documentation to give non-developers a clear picture of the production environment.

💡 Deployment diagram vs component diagram These two diagram types are often confused. A component diagram shows what software modules exist and how they communicate logically. A deployment diagram shows where those modules run — which server, cloud zone, or container hosts each component. See our complete PlantUML component diagram guide for the logical architecture view.

PlantUML Deployment Diagram Core Syntax: Nodes, Artifacts and Links

The plantuml deployment diagram uses four primary syntax elements: node for physical and virtual machines, database for data stores, artifact for deployable software units placed on a node, and grouping constructs (cloud, rectangle, frame) for zones and boundaries. Arrows define communication paths.

Core Syntax Elements

ElementSyntaxRenders AsUse For
Nodenode "Name" as ALIAS3D server boxServers, VMs, containers, devices
Databasedatabase "Name" as ALIASCylinderRDBMS, NoSQL, data stores
Artifactartifact "name.jar" as ADocument iconDeployable file: .jar, .war, .zip
Componentcomponent "Name" as CComponent boxSoftware running on a node
Cloudcloud "Provider" { ... }Cloud outlineCloud provider zone
Node groupnode "Server" { artifact "app" }Server with contentHosted artifact on specific node
Frameframe "Name" { ... }Framed boundaryNetwork zone or region
Rectanglerectangle "Name" { ... }Rectangle boundaryGeneric infrastructure zone
Queuequeue "Name" as QCylinder (horizontal)Message queues
Stackstack "Name" { ... }Stacked boxTechnology stacks
DependencyA --> B : labelSolid arrowCommunication / dependency
AssociationA -- BLine (no arrow)Physical connection

Basic Deployment Diagram

@startuml
node "Web Server" as WS {
  artifact "frontend.war" as APP
}
node "App Server" as AS {
  artifact "backend.jar" as API
}
database "PostgreSQL" as DB
node "Cache Server" as CS {
  database "Redis" as CACHE
}

WS --> AS : HTTP/REST
AS --> DB : JDBC
AS --> CACHE : TCP 6379
@enduml

Test any syntax from the table above instantly in our free PlantUML generator online — paste the code, hit Generate, and export the result as PNG or SVG in one click.

💡 Artifact vs Component in deployment diagrams Use artifact for the specific deployable file (myapp-2.1.jar, nginx.conf, docker-compose.yml). Use component for a running software module when you do not need to reference a specific file. Artifacts are placed inside a node to show which server hosts them.

PlantUML Deployment Diagram Cloud Grouping: AWS, GCP and Azure

The plantuml deployment diagram supports cloud provider groupings using the cloud keyword. Nest nodes and databases inside cloud blocks to represent services within AWS regions, GCP projects, or Azure resource groups. Multiple cloud blocks in one diagram show multi-cloud or hybrid cloud architectures clearly.

AWS Cloud Architecture Example

@startuml
!theme cerulean

node "End User" as USER

cloud "AWS Region: us-east-1" {
  node "ALB (Load Balancer)" as ALB
  node "EC2: Web (x3)" as EC2
  node "EC2: Worker (x2)" as WORKER
  database "RDS PostgreSQL (Multi-AZ)" as RDS
  database "ElastiCache Redis" as CACHE
  queue "SQS Queue" as SQS
}

cloud "AWS Route 53" {
  [DNS]
}

cloud "AWS CloudFront" {
  [CDN]
}

USER --> [DNS] : HTTPS
[DNS] --> [CDN]
[CDN] --> ALB : origin
ALB --> EC2
EC2 --> RDS : JDBC
EC2 --> CACHE : Redis
EC2 --> SQS : publish
SQS --> WORKER : consume
WORKER --> RDS : JDBC
@enduml

Multi-Cloud Architecture Example (AWS + GCP)

@startuml
cloud "AWS (Primary)" {
  node "API Servers (EC2)" as API
  database "Primary DB (RDS)" as DB1
}

cloud "GCP (Analytics)" {
  node "Analytics Service" as ANALYTICS
  database "BigQuery" as BQ
}

cloud "CDN / Edge" {
  [CloudFront]
}

[CloudFront] --> API
API --> DB1
API --> ANALYTICS : events via HTTPS
ANALYTICS --> BQ : streaming insert
@enduml

PlantUML Deployment Diagram for Microservices Architecture

A plantuml deployment diagram for microservices shows each service as a component or node, grouped by its deployment environment. Kubernetes clusters, Docker Swarm nodes, and cloud provider zones appear as grouping constructs. API gateways, load balancers, and message queues appear as connecting infrastructure nodes.

@startuml
!theme materia

node "Client" as CLIENT

cloud "Kubernetes Cluster (EKS)" {
  node "Ingress Controller" as IC
  node "Pod: User Service (x2)" as US
  node "Pod: Order Service (x2)" as OS
  node "Pod: Payment Service" as PS
  node "Pod: Notification Service" as NS
}

cloud "Managed AWS Services" {
  database "User DB (RDS)" as UDB
  database "Order DB (RDS)" as ODB
  queue "Order Events (SQS)" as SQS
  node "Email (SES)" as SES
}

CLIENT --> IC : HTTPS
IC --> US
IC --> OS
US --> UDB : JDBC
OS --> ODB : JDBC
OS --> PS : gRPC
OS --> SQS : publish
SQS --> NS : consume
NS --> SES : SMTP
@enduml

For community examples of real microservices deployment diagrams across different stack types, real-world-plantuml.com maintains a gallery of production-grade PlantUML diagrams contributed by teams using the tool in practice.

💡 Best practice for microservices deployment diagrams Show replica counts in the node label (e.g. node "API Service (x3)") and use arrow labels for protocols (HTTPS, gRPC, AMQP). Keep the diagram to one cloud region or cluster per diagram — create separate diagrams for DR regions and link them with a reference note.

PlantUML Deployment Diagram vs Component Diagram: Key Differences

These two diagram types both show system structure but at different levels. Teams often use both together — the component diagram for design reviews and developer onboarding, the deployment diagram for operations, cloud cost planning, and incident response documentation.

☁️ Deployment Diagram
  • Shows where software runs physically or virtually
  • Elements: node, artifact, database, cloud
  • Includes servers, VMs, containers, cloud zones
  • Maps to C4 model level C2 (Container) and infrastructure
  • Primary audience: DevOps, SRE, cloud architects, ops teams
  • Used for: capacity planning, DR docs, cloud migration, incident runbooks
💻 Component Diagram
  • Shows what software modules exist and how they connect logically
  • Elements: [component], () interface, package
  • Ignores physical location — no servers or cloud zones
  • Maps to C4 model level C3 (Component)
  • Primary audience: developers, architects, tech leads
  • Used for: API design, onboarding docs, architecture reviews, refactoring

Stereotypes, Custom Icons and Sprite Integration

PlantUML deployment diagrams support stereotypes — labels in angle brackets like <<AWS>>, <<kubernetes>>, or <<loadbalancer>> — that add visual context to generic nodes without changing the layout. Stereotypes work with skinparam to apply custom colors to each type, making large infrastructure diagrams easier to read.

@startuml
skinparam node {
  BackgroundColor<> #dbeafe
  BorderColor<> #1a56db
  BackgroundColor<> #fef3c7
  BorderColor<> #d97706
  BackgroundColor<> #dcfce7
  BorderColor<> #16a34a
}

node "Web Server" <> as WEB
node "App Server" <> as APP
database "Primary DB" <> as DB
database "Redis Cache" <> as CACHE

WEB --> APP : HTTP
APP --> DB : SQL
APP --> CACHE : TCP
@enduml

For AWS, GCP, and Azure-specific icons, the PlantUML Standard Library includes icon sets for all major cloud providers. Include them with !include <awslib/AWSCommon> and use the macro names to render official service icons inside your deployment diagram nodes.

JSON and YAML Data Visualization in PlantUML

PlantUML includes dedicated JSON and YAML diagram types separate from deployment diagrams. These are useful alongside deployment documentation — for example, rendering a Kubernetes manifest or a Terraform config as a visual tree to explain infrastructure-as-code structure to stakeholders.

JSON Diagram (Kubernetes Config)

@startjson
{
  "cluster": "production-eks",
  "region": "us-east-1",
  "services": {
    "api": {"replicas": 3, "port": 8080},
    "worker": {"replicas": 2, "port": 8081},
    "ingress": {"type": "alb", "port": 443}
  },
  "databases": {
    "primary": "rds-postgres-16",
    "cache": "elasticache-redis-7"
  }
}
@endjson

YAML Diagram (Docker Compose)

@startyaml
version: "3.9"
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    depends_on:
      - api
  api:
    image: myapp:v2.1
    environment:
      - DB_HOST=postgres
    depends_on:
      - postgres
  postgres:
    image: postgres:16
    volumes:
      - pgdata:/var/lib/postgresql/data
@endyaml
💡 When to use JSON/YAML diagrams Use JSON and YAML diagram types to visualize configuration files for stakeholders who are not comfortable reading raw YAML or JSON. They are not replacements for deployment diagrams — use them as companion visuals alongside a full infrastructure diagram to explain specific configuration choices.
Test your cloud architecture diagram free — no Java, no install
Paste any code from this guide into our free online PlantUML generator and see the rendered infrastructure diagram instantly. Export to PNG or SVG for documentation.
Open Free Generator →

PlantUML Deployment Diagram for DevOps and CI/CD Pipelines

A plantuml deployment diagram maps CI/CD pipelines naturally — each pipeline stage becomes a node, and the pipeline steps become labeled arrows between them. This produces a clear visual pipeline document readable by all team members, including non-engineers who need to understand the deployment flow.

For a detailed walkthrough of the GitHub Actions + PlantUML workflow including auto-commit configuration, this tutorial on DEV.to covers the full setup step by step.

CI/CD Pipeline as Deployment Diagram

@startuml
!theme cerulean
left to right direction

node "Developer Workstation" as DEV {
  artifact "feature-branch.git"
}
node "GitHub Repository" as GH
node "GitHub Actions Runner" as CI {
  artifact "ci-pipeline.yml"
}
node "Container Registry (ECR)" as ECR
node "Staging Environment" as STG {
  node "ECS (staging)"
}
node "Production Environment" as PROD {
  node "ECS (prod)"
  node "CloudFront CDN"
}

DEV --> GH : git push
GH --> CI : trigger on PR merge
CI --> ECR : docker push :latest
CI --> STG : deploy (auto)
STG --> PROD : promote (manual approval)
@enduml

Kubernetes Deployment Pipeline

@startuml
node "Source" as SRC
node "CI (GitHub Actions)" as CI {
  artifact "Dockerfile"
  artifact "k8s-manifests/"
}
node "Image Registry" as REG
cloud "Kubernetes (Prod)" {
  node "Deployment: API (x3)" as API
  node "Deployment: Worker (x2)" as WRK
  node "Service (ClusterIP)" as SVC
  node "Ingress (ALB)" as ING
}

SRC --> CI : push
CI --> REG : docker build + push
CI --> ING : kubectl apply
ING --> SVC
SVC --> API
SVC --> WRK
@enduml

Styling a PlantUML Deployment Diagram: Themes and Skinparam

A plantuml deployment diagram responds to all standard skinparam properties and the full built-in theme library. Node-specific skinparam controls the visual appearance of server and infrastructure boxes. Apply a theme first with !theme, then use skinparam for targeted overrides of specific infrastructure element types.

Deployment Diagram Skinparam Reference

PropertyExample ValueControls
skinparam NodeBackgroundColor#dbeafeServer/node box fill color
skinparam NodeBorderColor#1a56dbServer/node box border
skinparam NodeFontColor#0c1f4aNode label text color
skinparam DatabaseBackgroundColor#fef3c7Database cylinder fill
skinparam DatabaseBorderColor#d97706Database cylinder border
skinparam ArtifactBackgroundColor#f0fdf4Artifact document fill
skinparam CloudBackgroundColor#fff7edCloud zone fill
skinparam CloudBorderColor#f59e0bCloud zone outline
skinparam ArrowColor#374151All arrows
skinparam ShadowingfalseRemove drop shadows
@startuml
skinparam NodeBackgroundColor #dbeafe
skinparam NodeBorderColor #1a56db
skinparam NodeFontColor #0c1f4a
skinparam DatabaseBackgroundColor #fef3c7
skinparam DatabaseBorderColor #d97706
skinparam CloudBackgroundColor #f1f5f9
skinparam CloudBorderColor #94a3b8
skinparam ArrowColor #374151
skinparam Shadowing false
skinparam RoundCorner 8

cloud "Production" {
  node "API Server" as API
  database "PostgreSQL" as DB
}
API --> DB : SQL
@enduml

For a full theme and skinparam reference including all deployment diagram property names, see our PlantUML skinparam guide. For all deployment element syntax in one place, bookmark our PlantUML cheat sheet.

Archimate and Timing: Companion Diagram Types

PlantUML supports Archimate and timing diagrams as separate diagram types that complement deployment diagrams in enterprise architecture documentation. Archimate covers three architecture layers — Business, Application, and Technology — and can document the strategic context above the infrastructure level that deployment diagrams show.

PlantUML timing diagrams are useful alongside deployment diagrams for showing time-based behaviour, such as how a blue-green deployment transitions traffic between two production environments over a deployment window. See the official Archimate diagram reference and the deployment diagram syntax reference for syntax details on both types.

@startuml
' Timing diagram: blue-green deployment traffic shift
concise "Production (Blue)" as BLUE
concise "Production (Green)" as GREEN
concise "Load Balancer" as LB

@0
BLUE : 100% traffic
GREEN : idle
LB : blue-only

@15
BLUE : 50% traffic
GREEN : 50% traffic
LB : canary split

@30
BLUE : 0% traffic
GREEN : 100% traffic
LB : green-only

@45
BLUE : drained
GREEN : active
LB : complete
@enduml

Every plantuml deployment diagram example in this guide — including cloud architecture, microservices, CI/CD pipelines, and the timing diagram above — works in our free online PlantUML generator. Paste any code block, render, and export as PNG or SVG with no install or Java required.

Build your complete deployment diagram — free, instant, no signup
From a simple 3-tier web app to a full Kubernetes multi-cloud architecture — our free generator handles every deployment diagram type. Export to PNG or SVG for docs, Confluence, or GitHub.
Generate Free →

PlantUML Deployment Diagram — Frequently Asked Questions

What is a PlantUML deployment diagram used for?

A plantuml deployment diagram documents where software runs — mapping applications to servers, VMs, containers, or cloud services. Common uses include cloud architecture documentation, DevOps runbooks, infrastructure migration planning, Kubernetes cluster documentation, and capacity planning reviews. It answers “where does this system live?” rather than “how does the code work?”

What is the difference between a deployment diagram and a component diagram in PlantUML?

A component diagram shows what software modules exist and how they connect logically — it has no servers or cloud zones. A deployment diagram shows where those modules run physically or virtually — servers, Kubernetes pods, cloud services, and network zones. Use both together: component diagram for developer onboarding, deployment diagram for operations documentation.

How do I show AWS, GCP or Azure infrastructure in PlantUML?

Use the cloud "AWS Region Name" { ... } syntax to create a cloud zone, then nest node, database, and queue elements inside it for specific services. For official cloud provider icons, include the PlantUML Standard Library with !include <awslib/AWSCommon> to use AWS service macros with official branding.

What is a node in a PlantUML deployment diagram?

A node in PlantUML represents any physical or virtual computing resource — a bare-metal server, a VM, a Docker container, a Kubernetes pod, or a cloud instance. It renders as a 3D box by default. You can place artifact, component, or database elements inside a node to show what software runs on that resource.

Can I use PlantUML to document Kubernetes or Docker infrastructure?

Yes — use a cloud "Kubernetes Cluster" block and add node "Pod: ServiceName" elements inside it. For Docker Compose, use a rectangle "Docker Host" block with nested node elements for each service container. Arrow labels show the network protocol — HTTP, gRPC, TCP — between containers or pods.

What is the difference between a node and an artifact in PlantUML?

A node represents a computing resource (server, VM, container). An artifact represents a deployable software file (myapp.jar, nginx.conf, docker-image:v2.1) that runs on a node. Place artifacts inside node blocks to show which server hosts which software file. If you do not need to reference a specific file, use component inside the node instead.

How do I add custom colors and themes to a PlantUML deployment?

Add !theme cerulean after @startuml for a quick preset. For custom colors, use skinparam NodeBackgroundColor, skinparam NodeBorderColor, skinparam DatabaseBackgroundColor, and skinparam CloudBackgroundColor. Combine stereotypes with skinparam to use different colors for different infrastructure types within the same diagram.

Can PlantUML diagrams document CI/CD pipeline stages?

Yes — CI/CD pipelines map naturally to deployment diagrams. Each pipeline stage (developer machine, CI runner, container registry, staging, production) becomes a node. Pipeline steps become labeled arrows showing what triggers each transition (git push, docker build, kubectl apply, manual approval). This produces a clear pipeline visual for sprint planning and DevOps onboarding documentation.

What is the best way to document a multi-cloud architecture in PlantUML?

Use multiple cloud "Provider Name" blocks side by side in a single diagram. Connect them with labeled arrows for data flows and protocols between providers. Add left to right direction to spread cloud zones horizontally — this keeps multi-cloud diagrams readable in Confluence pages and on wide screens.

J
Joshua

SEO strategist and founder of AI Tool Synergy. Focused on building topical authority through data-driven content and free tools that actually work. Explore all free tools at aitoolsynergy.com/free-tools-online — no signup ever required.