Diagramas de Despliegue
1. Qué es un Diagrama de Despliegue? #
Un Diagrama de Despliegue (Deployment Diagram) muestra la arquitectura física de un sistema: cómo los componentes de software se distribuyen en los nodos físicos (servidores, dispositivos, contenedores, etc.).
Se utiliza para representar:
- Servidores
- Dispositivos hardware
- Contenedores (Docker, máquinas virtuales, etc.)
- Componentes de software desplegados
- Conexiones entre nodos
2. Elementos del Diagrama de Despliegue #
| Elemento | Descripción |
|---|---|
| Nodo | Recurso físico o virtual que ejecuta procesos. Se representa como una caja 3D. |
| Artefacto | Unidad de implementación como ejecutables, archivos .jar, .dll, etc. |
| Dependencia | Indica que un nodo o artefacto depende de otro. |
| Asociación | Conexión entre nodos. Representa comunicación. |
| Estereotipos | Permiten detallar tipos de nodos o artefactos (<<device>>, <<executionEnvironment>>, etc.). |
3. Nodo #
Ampliar
1@startuml 2node "Servidor Web" { 3} 4@enduml
4. Nodo con Artefacto #
Ampliar
1@startuml 2node "Servidor Web" { 3 artifact "app.war" 4} 5@enduml
5. Varios Nodos y Conexiones #
Ampliar
1@startuml 2node "Cliente" <<device>> { 3 artifact "browser.exe" 4} 5 6node "Servidor Web" <<executionEnvironment>> { 7 artifact "app.war" 8} 9 10node "Base de Datos" <<database>> { 11 artifact "mysql_data" 12} 13 14"Cliente" --> "Servidor Web" 15"Servidor Web" --> "Base de Datos" 16@enduml
6. Artefactos Independientes #
Los artefactos también pueden representarse fuera de los nodos y asignarse con líneas punteadas:
Ampliar
1@startuml 2artifact "cliente.exe" 3artifact "api.jar" 4artifact "bbdd.sql" 5 6node "PC Cliente" 7node "Servidor API" 8node "Servidor DB" 9 10"cliente.exe" -down-> "PC Cliente" 11"api.jar" -down-> "Servidor API" 12"bbdd.sql" -down-> "Servidor DB" 13 14"PC Cliente" --> "Servidor API" 15"Servidor API" --> "Servidor DB" 16@enduml
7. Estereotipos Comunes #
| Estereotipo | Uso |
|---|---|
<<device>> | Dispositivo físico |
<<executionEnvironment>> | VM, contenedor, JVM, etc. |
<<database>> | Nodo que representa una base de datos |
8. Ejemplo completo #
Ampliar
1@startuml 2node "Cliente" <<device>> { 3 artifact "navegador.exe" 4} 5 6node "Servidor Web" <<executionEnvironment>> { 7 artifact "api.war" 8} 9 10node "Servidor de Base de Datos" <<database>> { 11 artifact "postgres_data" 12} 13 14"Cliente" --> "Servidor Web" : HTTP 15"Servidor Web" --> "Servidor de Base de Datos" : JDBC 16@enduml
9. Buenas Prácticas #
- Usa nombres claros en los nodos.
- Representa conexiones importantes (HTTP, TCP, JDBC...).
- No sobrecargues el diagrama con detalles innecesarios.
- Usa estereotipos para aclarar el rol de cada nodo.
Resumen del tema
Conceptos clave #
- Topología física del sistema: modelado de la infraestructura de hardware, servidores, máquinas virtuales y contenedores en tiempo de ejecución.
- Nodos (
node): cajas tridimensionales que representan recursos computacionales:<<device>>: dispositivos físicos (servidores bare-metal, terminales cliente).<<executionEnvironment>>: entornos de ejecución lógicos (JVM, Docker, NodeJS, Kubernetes).
- Artefactos (
artifact): unidades de software físicas y ejecutables (.jar,.war,.exe, scripts.sql) alojadas dentro de los nodos. - Vías de comunicación: enlaces que conectan nodos especificando el protocolo de red utilizado (
HTTP,HTTPS,JDBC,gRPC). - Uso en ingeniería y DevOps: documentación de la arquitectura de despliegue, balanceo de carga y distribución de microservicios y bases de datos.
Qué debes recordar #
El diagrama de despliegue representa la arquitectura física y de red, mostrando qué artefactos de software se ejecutan en qué nodos físicos o virtuales y cómo se comunican.