Skip to content

Deployment Modeling: ArchiMate Technology Layer vs C4 Deployment Views vs Backstage

Purpose

This document compares how ArchiMate (specifically the Technology layer and its cross-layer relationships), C4/Structurizr (deployment diagrams), and Backstage (Resource entities) model the deployment and infrastructure dimension of software architecture. It examines what each can express, what each cannot, and how they relate to each other.


1. What Each Model Provides for Deployment

1.1 ArchiMate Technology Layer — 13 element types, full cross-layer semantics

ArchiMate's Technology layer is a complete infrastructure modeling vocabulary organized by the same three-aspect structure (Active Structure, Behavior, Passive Structure) as every other ArchiMate layer:

Aspect Element Definition
Active Structure Node A computational or physical resource that hosts, manipulates, or interacts with other resources. The primary structural element. Can be composed of sub-nodes.
Active Structure Device A physical IT resource upon which system software and artifacts may be deployed. A specialization of Node.
Active Structure System Software Software that provides or contributes to an environment for running other software. OS, middleware, DBMS, container runtime. A specialization of Node.
Active Structure Technology Collaboration A temporary configuration of two or more nodes working together to perform collective technology behavior.
Active Structure Technology Interface A point of access where technology services are made available to the environment. Ports, APIs, protocols.
Active Structure Path A link between two or more nodes through which they can exchange data or material.
Active Structure Communication Network A set of structures that connects nodes for transmission, routing, and reception.
Behavior Technology Function A collection of technology behavior that can be performed by a node.
Behavior Technology Process A sequence of technology behaviors that achieves a specific result.
Behavior Technology Interaction A unit of technology behavior performed by a collaboration of two or more nodes.
Behavior Technology Event A technology state change.
Behavior Technology Service An explicitly defined piece of technology functionality exposed to the environment.
Passive Structure Artifact A piece of data that is used or produced in a software development process, or by deployment and operation of an IT system. Deployed on nodes.

Additionally, ArchiMate's Physical layer extends the Technology layer with four elements for modeling the physical world:

Element Definition
Equipment Physical machines, tools, or instruments that can create, use, store, move, or transform materials.
Facility A physical structure or environment (data center, building, office).
Distribution Network A physical network for transporting materials or energy.
Material Tangible physical matter or energy.

Total: 17 element types for infrastructure and physical modeling.

1.2 C4/Structurizr Deployment — 2 element types, container-to-node mapping

C4's deployment vocabulary is deliberately minimal:

Element Definition
DeploymentNode A physical or virtual infrastructure element — server, VM, container host, cloud instance, Kubernetes cluster, AWS region, availability zone. Can be nested.
InfrastructureNode A specialization of DeploymentNode for specific infrastructure components — load balancer, firewall, DNS, CDN.

Plus two instance types (in Structurizr, not in the abstract C4 model):

Concept Definition
ContainerInstance An instance of a Container deployed on a DeploymentNode.
SoftwareSystemInstance An instance of a SoftwareSystem deployed on a DeploymentNode.

And one structural concept:

Concept Definition
DeploymentEnvironment A named environment (Development, Staging, Production) that scopes a set of deployment nodes and instances.

Total: 2 element types + 2 instance types + 1 environment concept.

The Structurizr DSL expresses deployment as:

production = deploymentEnvironment "Production" {
    deploymentNode "AWS" {
        deploymentNode "eu-west-1" {
            deploymentNode "EKS Cluster" "" "Kubernetes" {
                deploymentNode "Pod" "" "Docker" {
                    containerInstance webapp
                }
            }
            deploymentNode "RDS" "" "Amazon RDS" {
                containerInstance database
            }
        }
    }
}

1.3 Backstage — 1 element type, no deployment topology

Backstage's deployment-related vocabulary:

Element Definition
Resource A physical or virtual infrastructure resource needed to operate a component — database, S3 bucket, Kafka cluster, external SaaS service.

That's it. Backstage has no concept of: - Deployment nodes or infrastructure topology - Where components run - Network paths between nodes - Deployment environments (dev, staging, production) - Container instances or replicas

Backstage knows that a component uses a resource (usesResource). It does not know where either the component or the resource runs.


2. Side-by-Side Vocabulary Comparison

Infrastructure Concept ArchiMate C4 / Structurizr Backstage
Physical server Device DeploymentNode
Virtual machine Node DeploymentNode
Container host / K8s cluster Node (composed of System Software) DeploymentNode (nested)
Operating system System Software DeploymentNode (annotation)
Middleware / runtime System Software DeploymentNode (annotation)
Database engine System Software DeploymentNode (annotation)
Database instance Node + System Software DeploymentNode + ContainerInstance Resource
Message broker Node + System Software DeploymentNode Resource
Object storage (S3) Node DeploymentNode or InfrastructureNode Resource
Load balancer Node or Device InfrastructureNode
Firewall Node or Device InfrastructureNode
CDN Node InfrastructureNode
Network / VPC Communication Network DeploymentNode (nested, by convention)
Network path Path Relationship between DeploymentNodes
Network interface / port Technology Interface
Data center / region Facility (Physical layer) + Location DeploymentNode (top-level nesting)
Availability zone Location or nested Node DeploymentNode (nested)
Deployment environment Custom property or Plateau DeploymentEnvironment (first-class)
Deployed artifact Artifact ContainerInstance
Software deployed on node Artifact assigned to Node ContainerInstance inside DeploymentNode
Technology service exposed Technology Service — (relationship label)
Technology behavior Technology Function, Technology Process
Technology event Technology Event
Physical equipment Equipment
Physical facility Facility
Physical network Distribution Network

3. What ArchiMate's Technology Layer Can Express That C4 and Backstage Cannot

3.1 Typed infrastructure elements

ArchiMate distinguishes between a Device (physical hardware), System Software (OS, middleware, DBMS), and Node (a logical composition of both). C4 has only DeploymentNode for all of these. Backstage has nothing.

This matters when you need to answer: - "Which physical devices run in our data center?" — ArchiMate: query for Device instances. C4: all deployment nodes look the same. - "Which middleware versions are we running?" — ArchiMate: query for System Software instances. C4: buried in deployment node descriptions. - "What operating systems are in our estate?" — ArchiMate: System Software with type annotation. C4: free-text annotation on deployment nodes.

3.2 Technology behavior and services

ArchiMate models what infrastructure does, not just what it is:

flowchart TD
    K8s["Kubernetes Cluster (Node)"]
    CO["Container Orchestration<br/>(Technology Function)"]
    PSE["Pod Scaling Event<br/>(Technology Event)"]
    SD["Service Discovery<br/>(Technology Function)"]
    SM["Service Mesh<br/>(Technology Service)"]
    API["Cluster API<br/>(Technology Interface)"]
    DP["Deployment Pipeline<br/>(Application Process)"]

    K8s -->|"assigned to"| CO
    CO -->|"triggers"| PSE
    K8s -->|"assigned to"| SD
    SD -->|"realizes"| SM
    K8s -->|"exposes"| API
    API -->|"serves"| DP

C4 deployment diagrams show only structure — what runs where. They cannot express what the infrastructure does (functions, processes), what events it produces, or what services it exposes.

3.3 Communication networks and paths

ArchiMate has dedicated elements for network topology:

flowchart LR
    CN["Corporate Network<br/>(Communication Network)"]
    VPN["VPN Tunnel (Path)"]
    VPC["Cloud VPC<br/>(Communication Network)"]
    IL["Internet Link (Path)"]
    CDN["CDN (Node)"]
    AS["Application Server (Node)"]
    TI["Technology Interface:<br/>HTTPS Port 443"]
    WA["Web Application<br/>(Application Component)"]

    CN -->|"path"| VPN --> VPC
    CN -->|"path"| IL --> CDN
    AS --> TI -->|"serves"| WA

C4 models network topology only through nesting of deployment nodes (e.g., a "VPC" deployment node containing other nodes) and relationship labels. There are no dedicated network or path elements.

3.4 Cross-layer relationships — the critical differentiator

This is where ArchiMate's Technology layer becomes fundamentally different from C4's deployment view. ArchiMate's Technology layer doesn't exist in isolation — it connects to the Application and Business layers through formal relationships:

flowchart TD
    subgraph strategy["Strategy Layer"]
        Cap["Capability: High Availability"]
    end
    subgraph business["Business Layer"]
        BS["Business Service: 24/7 Order Processing"]
    end
    subgraph application["Application Layer"]
        AS["Application Service: Order Placement"]
        AC["Application Component: Order Management"]
    end
    subgraph technology["Technology Layer"]
        EKS["Node: EKS Production Cluster"]
        EC2["Device: EC2 m5.xlarge (×3)"]
        K8s["System Software: Kubernetes 1.28"]
        CO["Technology Function: Container Orchestration"]
        CP["Technology Service: Compute Platform"]
        VPC["Communication Network: Production VPC"]
        RDS["Node: RDS Multi-AZ"]
        PG["System Software: PostgreSQL 15"]
    end

    Cap -->|"realized by"| BS
    BS -->|"realized by"| AS
    AS -->|"realized by"| AC
    AC -->|"assigned to"| EKS
    EKS -->|"composed of"| EC2 & K8s
    EKS -->|"assigned to"| CO
    CO -->|"realizes"| CP
    CP -->|"serves"| AC
    EKS -->|"path"| VPC
    VPC -->|"path"| RDS
    RDS -->|"composed of"| PG
    PG -->|"serves"| AC

This full chain — from business capability through application service to technology infrastructure — enables questions that neither C4 nor Backstage can answer:

Question ArchiMate C4 Backstage
"Which business capabilities are at risk if this server fails?" ✅ Trace: Node → Application Component → Application Service → Business Service → Capability
"What technology services support the Order Placement capability?" ✅ Technology Service → serves → Application Component → realizes → Application Service → realizes → Business Service → realizes → Capability
"Which infrastructure changes require a business impact assessment?" ✅ Any Technology layer change can be traced upward
"What is the full technology stack supporting this business process?" ✅ Business Process → served by → Application Service → realized by → Application Component → assigned to → Node → composed of → Device + System Software

3.5 Physical layer integration

ArchiMate's Physical layer extends the Technology layer for modeling the physical world:

flowchart TD
    F["Facility: Frankfurt Data Center"]
    E["Equipment: Server Rack A1"]
    D["Device: Dell PowerEdge R750"]
    SS["System Software: VMware ESXi 8"]
    N["Node: VM-Prod-01"]
    DN["Distribution Network: Power Grid"]

    F -->|"contains"| E
    E -->|"contains"| D
    D -->|"composed of"| SS
    SS -->|"composed of"| N
    F -->|"connected via"| DN

Neither C4 nor Backstage can model physical facilities, equipment, or distribution networks. For organizations with on-premises infrastructure, co-location facilities, or IoT/OT environments, this is essential.


4. What C4 Deployment Views Can Express That ArchiMate Handles Differently

4.1 Deployment environments as first-class concepts

Structurizr has a dedicated deploymentEnvironment concept that scopes deployment nodes and container instances to a named environment (Development, Staging, Production, DR). You can define multiple environments and generate separate deployment diagrams for each.

ArchiMate has no native "environment" concept. You model environments using: - Plateau elements from the Implementation & Migration layer (representing a state of the architecture at a point in time) - Location elements (representing physical or logical locations) - Custom properties or tags on Technology layer elements - Separate views filtered by environment

C4's approach is simpler and more developer-friendly. ArchiMate's approach is more flexible but requires modeling conventions.

4.2 Container instances (replicas)

Structurizr explicitly models ContainerInstance — an instance of a Container deployed on a specific node. This allows showing that the same container is deployed multiple times (e.g., 3 replicas of a web application behind a load balancer, or the same service deployed in both production and DR).

ArchiMate models this via Artifact (the deployed software) assigned to Node (the infrastructure). Multiple deployments of the same application component are modeled as multiple artifacts or multiple assignment relationships. It works but is less intuitive than C4's instance concept.

4.3 Developer-readable deployment topology

A C4 deployment diagram in Structurizr DSL is immediately readable by any developer:

production = deploymentEnvironment "Production" {
    deploymentNode "AWS" "" "Amazon Web Services" {
        deploymentNode "eu-west-1" "" "AWS Region" {
            deploymentNode "EKS" "" "Kubernetes 1.28" {
                deploymentNode "orders-pod" "" "Docker" instances 3 {
                    containerInstance ordersAPI
                }
            }
            deploymentNode "RDS" "" "Amazon RDS" {
                deploymentNode "Multi-AZ" "" "PostgreSQL 15" {
                    containerInstance ordersDB
                }
            }
            infrastructureNode "ALB" "" "Application Load Balancer"
        }
    }
}

The equivalent ArchiMate model requires knowledge of Node, Device, System Software, Artifact, Assignment, Composition, and the visual notation. It's more precise but less accessible.


5. What Backstage Provides — And What It Doesn't

5.1 What Backstage's Resource concept captures

Backstage's Resource is a deliberately simple concept: "infrastructure needed to operate a component." It captures:

  • What exists: A PostgreSQL database, an S3 bucket, a Kafka cluster, an external SaaS API
  • Who uses it: ComponentusesResourceResource
  • Who owns it: ResourceownedByGroup
  • What domain it belongs to: ResourcebelongsToDomainDomain

5.2 What Backstage cannot express

Concern Backstage Capability
Where does this resource run? ❌ No deployment topology
What physical hardware hosts it? ❌ No physical modeling
What network connects it to consumers? ❌ No network modeling
What technology stack does it use? ❌ No system software / middleware modeling
What technology services does it expose? ❌ No technology behavior modeling
How many instances/replicas exist? ❌ No instance concept
Which environment is it in? ❌ No environment concept
What business capabilities depend on it? ❌ No cross-layer traceability

Backstage's Resource is an inventory entry, not a deployment model. It answers "what infrastructure exists and who owns it?" but not "where does it run, how is it configured, and what depends on it at the business level?"


6. Modeling the Same System in All Three

Consider an Order Management system deployed on AWS with a Kubernetes cluster, a managed database, and a load balancer.

6.1 ArchiMate — Full architectural semantics

flowchart TD
    subgraph biz["Business Layer"]
        BizSvc["Business Service: Order Fulfillment"]
    end
    subgraph app["Application Layer"]
        AppSvc["Application Service: Order Placement"]
        OM["Application Component: Order Management"]
        API["Application Component: Orders API"]
        DB["Application Component: Orders DB"]
    end
    subgraph tech["Technology Layer"]
        Facility["Facility: AWS eu-west-1 (Physical)"]
        EKS["Node: EKS Production Cluster"]
        K8s["System Software: Kubernetes 1.28"]
        Docker["System Software: Docker Runtime"]
        CO["Technology Function: Container Orchestration"]
        CP["Technology Service: Compute Platform"]
        Pod["Node: orders-pod (×3)"]
        Art["Artifact: orders-api:v2.3.1"]
        RDS["Node: RDS Multi-AZ Instance"]
        PG["System Software: PostgreSQL 15"]
        HW["Device: db.r6g.xlarge"]
        DP["Technology Function: Data Persistence"]
        MDB["Technology Service: Managed Database"]
        Schema["Artifact: orders-schema"]
        ALB["Node: Application Load Balancer"]
        HTTPS["Technology Interface: HTTPS :443"]
        VPC["Communication Network: Production VPC"]
    end

    BizSvc -->|"realized by"| AppSvc
    AppSvc -->|"realized by"| OM
    OM -->|"composed of"| API & DB
    Facility -->|"contains"| EKS & RDS & ALB
    EKS -->|"composed of"| K8s & Docker
    EKS -->|"assigned to"| CO -->|"realizes"| CP
    EKS -->|"contains"| Pod -->|"contains"| Art -->|"realizes"| API
    RDS -->|"composed of"| PG & HW
    RDS -->|"assigned to"| DP -->|"realizes"| MDB
    RDS -->|"contains"| Schema -->|"realizes"| DB
    ALB --> HTTPS -->|"serves"| API
    VPC ---|"Path: orders-pod ↔ RDS"| RDS

What this enables: Full traceability from "Order Fulfillment" business service down to "db.r6g.xlarge" hardware instance. Impact analysis in both directions. Technology service catalog. Physical facility mapping.

6.2 C4/Structurizr — Developer-readable deployment topology

production = deploymentEnvironment "Production" {
    deploymentNode "AWS" "" "Amazon Web Services" {
        deploymentNode "eu-west-1" "" "AWS Region" {
            deploymentNode "EKS Cluster" "" "Kubernetes 1.28" {
                deploymentNode "orders-pod" "" "Docker" instances 3 {
                    containerInstance ordersAPI
                }
            }
            deploymentNode "RDS" "" "Amazon RDS" {
                deploymentNode "Multi-AZ" "" "PostgreSQL 15" {
                    containerInstance ordersDB
                }
            }
            infrastructureNode "ALB" "" "Application Load Balancer"
        }
    }
}

What this enables: Clear visual diagram showing where each container runs. Environment-specific views (dev vs staging vs production). Readable by any developer in 30 seconds. Version-controlled in Git.

What this cannot express: No link to business services or capabilities. No technology behavior (what the infrastructure does). No network topology beyond nesting. No physical facility modeling.

6.3 Backstage — Operational inventory

# catalog-info.yaml for Orders API
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: orders-api
spec:
  type: service
  lifecycle: production
  owner: orders-team
  system: order-management
  consumesApis:
    - orders-openapi
  dependsOn:
    - resource:orders-db
    - resource:orders-kafka
---
apiVersion: backstage.io/v1alpha1
kind: Resource
metadata:
  name: orders-db
spec:
  type: database
  owner: platform-team
  system: order-management
---
apiVersion: backstage.io/v1alpha1
kind: Resource
metadata:
  name: orders-kafka
spec:
  type: message-broker
  owner: platform-team

What this enables: "Orders API depends on orders-db and orders-kafka." "Platform team owns the database." "Orders API is in production lifecycle." Searchable, browsable catalog.

What this cannot express: Where any of this runs. What hardware, what region, what Kubernetes cluster. No deployment topology at all. No business traceability.


7. The Expressiveness Gap

flowchart TD
    Full["Full deployment semantics"]
    AM["<b>ArchiMate Technology + Physical layers</b><br/>17 element types, 11 relationship types,<br/>cross-layer traceability, physical modeling,<br/>technology behavior, network topology"]
    C4D["<b>C4 Deployment diagrams</b><br/>2 element types, environments, instances,<br/>developer-readable, version-controlled"]
    BS["<b>Backstage Resources</b><br/>1 element type, ownership, lifecycle,<br/>no topology, no deployment"]
    Min["Minimal deployment semantics"]

    Full --- AM --- C4D --- BS --- Min

7.1 What each adds over the one below

Step up What you gain
Backstage → C4 Deployment topology (where things run), environments (dev/staging/prod), infrastructure nodes (load balancers, firewalls), container instances (replicas), visual diagrams
C4 → ArchiMate Typed infrastructure elements (Device vs System Software vs Node), technology behavior (functions, processes, events, services), network topology (Communication Network, Path, Technology Interface), physical modeling (Facility, Equipment), cross-layer traceability to Application and Business layers, formal relationship semantics (11 types vs 1)

7.2 What each sacrifices compared to the one above

Step down What you lose What you gain
ArchiMate → C4 Cross-layer traceability, typed infrastructure, technology behavior, network elements, physical modeling, formal relationships Developer readability, "as code" workflow, environment-first modeling, 30-second comprehension
C4 → Backstage Deployment topology, environments, visual diagrams, infrastructure nodes Auto-discovery, always-current inventory, ownership, lifecycle, API-centric view

8. When to Use Which

Scenario Recommended Approach
"Show a developer where their service runs" C4 deployment diagram
"Track what infrastructure exists and who owns it" Backstage Resources
"Analyze business impact of an infrastructure failure" ArchiMate (Technology → Application → Business traceability)
"Document the production deployment for a specific system" C4 deployment diagram (per environment)
"Model the enterprise infrastructure landscape" ArchiMate Technology layer
"Map physical data centers and equipment" ArchiMate Physical layer
"Understand network topology and communication paths" ArchiMate (Communication Network, Path, Technology Interface)
"Track technology services exposed by infrastructure" ArchiMate (Technology Service, Technology Function)
"Ensure every component has a known infrastructure dependency" Backstage (Resource + usesResource)
"Compare deployment across dev/staging/production" C4 (DeploymentEnvironment with separate views)
"Audit which middleware versions are in the estate" ArchiMate (System Software instances)
"Answer 'if this Kubernetes cluster goes down, which business processes are affected?'" ArchiMate only (cross-layer trace)

9. Integration Strategy — Using All Three Together

9.1 Ownership boundaries

Concern Owner Model
Enterprise infrastructure landscape (all platforms, networks, data centers) Enterprise / Infrastructure Architect ArchiMate Technology + Physical layers
Technology-to-business traceability Enterprise Architect ArchiMate cross-layer relationships
Per-system deployment topology (where my containers run) Solution Architect / DevOps C4 deployment diagrams
Runtime infrastructure inventory (what exists, who owns it) Platform Engineering Backstage Resources

9.2 Integration points in the Linked.Archi knowledge graph

ArchiMate Technology Layer          C4 Deployment              Backstage
─────────────────────────          ──────────────              ─────────

am:Node "EKS Cluster"  ◄─────────► c4:DeploymentNode          
                                    "EKS Cluster"              

am:SystemSoftware       ◄── (no    c4:DeploymentNode           
"PostgreSQL 15"             direct  "PostgreSQL 15"            bs:Resource
                            map,    (annotation)               "orders-db"
                            align                              (type: database)
                            by name)

am:Node "RDS Instance"  ◄─────────► c4:DeploymentNode  ◄─────► bs:Resource
                                    "RDS"                      "orders-db"

The integration rule: ArchiMate owns the semantic identity of infrastructure (what it IS, what it DOES, how it connects to business). C4 owns the deployment view (where containers run, per environment). Backstage owns the operational inventory (what exists, who owns it, what lifecycle state).

9.3 SPARQL query across all three

PREFIX am:   <https://meta.linked.archi/archimate3/onto#>
PREFIX c4:   <https://meta.linked.archi/c4/onto#>
PREFIX bs:   <https://meta.linked.archi/backstage/onto#>
PREFIX arch: <https://meta.linked.archi/core#>

# For a given Backstage resource, find:
# - The C4 deployment node it maps to
# - The ArchiMate technology service it realizes
# - The business service ultimately affected

SELECT ?bsResource ?c4Node ?amTechService ?amBizService
WHERE {
    ?bsResource a bs:Resource ;
                skos:prefLabel ?name .

    ?c4Node a c4:DeploymentNode ;
            skos:prefLabel ?name .

    ?amNode a am:Node ;
            skos:prefLabel ?name ;
            am:assignedTo ?amTechFunc .
    ?amTechFunc am:realizes ?amTechService .
    ?amTechService am:serves ?amAppComp .
    ?amAppComp am:realizes ?amAppService .
    ?amAppService am:realizes ?amBizService .
}

10. Summary

Dimension ArchiMate Technology Layer C4 Deployment Backstage Resources
Element types 17 (13 Technology + 4 Physical) 2 + instances 1
Relationship types 11 formal types 1 (deployedOn) + nesting 1 (usesResource)
Infrastructure typing Device, System Software, Node (distinct) DeploymentNode (generic) Resource (generic)
Network modeling Communication Network, Path, Technology Interface Nesting convention
Physical modeling Facility, Equipment, Distribution Network, Material
Technology behavior Technology Function, Process, Interaction, Event, Service
Deployment environments Convention-based First-class (DeploymentEnvironment)
Container instances Artifact → assigned to → Node ContainerInstance (first-class)
Ownership Custom property ownedBy (first-class)
Lifecycle Custom property or I&M layer lifecycle (first-class)
Cross-layer traceability Full (Technology → Application → Business → Strategy)
Developer readability Requires training Immediate Immediate (YAML)
Version control Possible (XML/RDF export) Native (DSL in Git) Native (YAML in Git)
Auto-discovery Manual modeling Manual (DSL) Auto-discovered + YAML

ArchiMate's Technology layer is an order of magnitude richer than C4's deployment vocabulary, which is in turn richer than Backstage's Resource concept. But richness and adoption are inversely correlated. The practical answer is to use all three at their appropriate scope: ArchiMate for enterprise infrastructure architecture and business traceability, C4 for per-system deployment documentation, and Backstage for runtime inventory and ownership.


References