Diagramas de despliegue UML
Qué corre dónde. Nodos, los artefactos desplegados sobre ellos y las conexiones entre medias - el diagrama que de verdad necesita una revisión de infraestructura, una de seguridad o un incidente a las tres de la madrugada.
7 min de lecturaUML 2.5.121 de 35
La respuesta corta
- Los artefactos se despliegan sobre nodos; los nodos no se despliegan sobre nada. Un JAR es un artefacto, la JVM que lo ejecuta es un nodo.
- Un dispositivo es hardware, un entorno de ejecución es software que aloja otro software. Ambos son nodos, y el entorno se anida dentro del dispositivo.
- La línea simple entre nodos es un camino de comunicación. Etiquétala con el protocolo: esa etiqueta es lo que hace útil el diagrama en una revisión de seguridad.
- Esto no es un dibujo de arquitectura informal. Nodos, artefactos, deploy y caminos de comunicación tienen semántica definida, así que dos lectores coinciden en la afirmación.
01Qué muestra#
Un diagrama de despliegue asigna software a hardware. Es el único diagrama UML sobre el mundo físico - máquinas, contenedores, enlaces de red - y responde una pregunta que ningún otro responde: si esta caja se quema, ¿qué deja de funcionar?
Es además el diagrama que con más probabilidad pedirá alguien que no programa. Las revisiones de seguridad, los planes de recuperación ante desastres, las preguntas sobre dónde residen los datos y las conversaciones de coste empiezan todas por «dónde corre esto exactamente y qué habla con qué».
02Nodos, artefactos, caminos#
| Elemento | Notación | Qué significa |
|---|---|---|
| Nodo | caja tridimensional | Algo que computa o almacena. El caso general; los dos estereotipos de abajo lo acotan. |
| Dispositivo | caja tridimensional, «device» | Hardware físico: servidor, teléfono, balanceador de carga, anfitrión de base de datos. |
| Entorno de ejecución | caja tridimensional, «executionEnvironment» | Software que aloja otro software: JVM, runtime de contenedores, clúster de Kubernetes, plataforma serverless. |
| Artefacto | rectángulo, «artifact» | El archivo físico que se despliega: un jar, una imagen, un binario, un archivo de configuración. Nómbrelo como el archivo real. |
| Despliegue | anidamiento o flecha «deploy» | Este artefacto corre en ese nodo. Dibujarlo dentro es más claro que una flecha, cuando cabe. |
| Camino de comunicación | línea continua sencilla | Dos nodos pueden hablarse. Etiquételo con el protocolo y el puerto: ahí está el valor. |
03Cuánto detalle#
Los diagramas de despliegue se pudren más rápido que ningún otro tipo, porque la infraestructura cambia cada semana y los diagramas no. La forma de mantener uno útil es dibujarlo a la altura que cambia despacio.
Dibuje topología, no inventario.«Clúster de Kubernetes» seguirá siendo cierto durante años. «Tres instancias m5.large en eu-central-1b» será falso el trimestre que viene y pertenece al repositorio de infraestructura como código, el único sitio donde puede estar bien.
Etiquete los enlaces. Una línea que no dice nada casi no vale nada; una línea que dice TCP 5432, HTTPS o AMQP over TLS es la razón por la que un revisor de seguridad lee el diagrama. Lo mismo con las fronteras de confianza: si un enlace sale de su red hacia la de otro, dígalo.
Dibuje la multiplicidad donde importa. Un nodo puede llevar multiplicidad igual que una clase. Poner 1..* en el nodo de aplicación y 1 en la base de datos dice algo real sobre los modos de fallo del sistema.
04Cuándo dibujar uno#
Úsalo cuando
- Revisión de seguridad o cumplimiento: qué cruza qué frontera y con qué protocolo
- Recuperación ante desastres y análisis de fallos: qué es único y qué es redundante
- Formar a alguien que va a operar el sistema, no solo a cambiarlo
- Preguntas sobre residencia de datos: qué datos viven en qué jurisdicción
Usa otra cosa cuando
- Todo el sistema es un proceso en una máquina
- Su infraestructura como código ya lo describe y de verdad se lee
- Está pensando en servicios y contratos lógicos: use un diagrama de componentes
- Habría que actualizarlo cada sprint para que siguiera siendo cierto
05Errores comunes#
- Caminos de comunicación sin etiquetar.El protocolo y el puerto son el contenido. Sin ellos una línea solo dice «estos están conectados».
- Componentes dibujados donde van los artefactos. Los nodos alojan archivos. Ponga
checkout.jaren el nodo y dejeCheckoutpara el diagrama de componentes. - Detalle de instancias que no puede seguir siendo cierto. Los nombres de host y los tamaños de instancia van en el código, no en un diagrama.
- Sin fronteras de confianza. Si algunos nodos son suyos y otros de un tercero, esa distinción suele ser lo más importante de la página.
- Un diagrama por entorno. Dibuje producción. Anote las diferencias en el texto; no dibuje cuatro diagramas casi idénticos que acabarán divergiendo.
En una línea cada uno
- 01El único diagrama UML sobre la realidad física: qué corre dónde y qué habla con qué.
- 02Los nodos computan o almacenan; «device» es hardware, «executionEnvironment» es software anfitrión.
- 03Los artefactos son archivos - jars, imágenes, binarios - y anidarlos en un nodo significa que están desplegados ahí.
- 04Etiquete siempre los caminos de comunicación con protocolo y puerto.
- 05Dibuje la topología que cambia despacio; deje el inventario a la infraestructura como código.
- 06Marque las fronteras de confianza: los revisores vienen por ellas.
06Preguntas frecuentes#
¿Qué diferencia hay entre un nodo y un artefacto?
Un nodo es hardware o un entorno de ejecución: un servidor, un contenedor, una JVM. Un artefacto es un fichero físico producido por el desarrollo, como un JAR, una imagen o un fichero de configuración. Los artefactos se despliegan sobre nodos; los nodos no se despliegan sobre nada.
¿Qué diferencia hay entre un dispositivo y un entorno de ejecución?
Ambos son nodos. Un dispositivo es hardware físico o virtual, marcado con la palabra clave device. Un entorno de ejecución es software que aloja otro software, como un servidor de aplicaciones o un motor de contenedores, y normalmente se dibuja anidado dentro del dispositivo que lo ejecuta.
¿Qué es un camino de comunicación?
La línea simple entre dos nodos, que significa que pueden intercambiar mensajes. Suele etiquetarse con el protocolo o la red, que es lo que hace útil un diagrama de despliegue en una revisión de infraestructura o de seguridad.
¿Un diagrama de despliegue es lo mismo que uno de arquitectura?
No. La mayoría de los llamados diagramas de arquitectura son cajas y flechas informales. Un diagrama de despliegue es un diagrama de estructura UML con semántica definida: nodos, artefactos, la relación deploy y caminos de comunicación, de modo que dos personas que lo lean coincidan en qué afirma.
En esta serie
- 01¿Qué es UML?
- 02Símbolos UML
- 03Elegir un diagrama
- 04Diagramas de clases
- 05Ejemplos de diagramas de clases
- 06Cómo dibujar un diagrama de clases
- 07Símbolos del diagrama de clases
- 08Diagramas de secuencia
- 09Ejemplos de diagramas de secuencia
- 10Cómo dibujar un diagrama de secuencia
- 11Diagramas de casos de uso
- 12Ejemplos de casos de uso
- 13Diagramas de actividad
- 14Ejemplos de actividad
- 15Diagramas de máquina de estados
- 16Ejemplos de máquina de estados
- 17Diagramas de componentes
- 18Ejemplos de componentes
- 19Dibujar un diagrama de componentes
- 20Símbolos de componentes
- 21Diagramas de despliegue
- 22Ejemplos de despliegue
- 23Diagramas de objetos
- 24Diagramas de paquetes
- 25Diagramas de estructura compuesta
- 26Diagramas de comunicación
- 27Secuencia vs comunicación
- 28Diagramas de tiempos
- 29Diagramas de visión general de interacción
- 30Diagramas de perfil
- 31UML con IA
- 32Ejemplo de e-commerce
- 33Ejemplo bancario
- 34Ejemplo de microservicios
- 35Ejemplo de AWS
Lecturas relacionadas
Fundamentos
Diagramas de estructura
Diagramas de estructura
Diagramas de estructura
Diagramas de estructura
Diagramas de estructura