Diagrammes de déploiement UML
Ce qui tourne où. Les noeuds, les artefacts qu'on y déploie, et les connexions entre eux - le diagramme dont une revue d'infrastructure, une revue de sécurité ou un incident à trois heures du matin a réellement besoin.
7 min de lectureUML 2.5.121 sur 35
La réponse courte
- Les artefacts se déploient sur des noeuds ; les noeuds ne se déploient nulle part. Un JAR est un artefact, la JVM qui l'exécute est un noeud.
- Un dispositif est du matériel, un environnement d'exécution est un logiciel qui en héberge d'autres. Les deux sont des noeuds, et l'environnement s'imbrique dans le dispositif.
- La ligne simple entre noeuds est un chemin de communication. Étiquetez-la avec le protocole : c'est cette étiquette qui rend le diagramme utile en revue de sécurité.
- Ce n'est pas une image d'architecture informelle. Noeuds, artefacts, deploy et chemins de communication ont une sémantique définie : deux lecteurs s'accordent sur l'affirmation.
01Ce qu'il montre#
Un diagramme de déploiement fait correspondre le logiciel au matériel. C'est le seul diagramme UML qui parle du monde physique - machines, conteneurs, liens réseau - et il répond à une question à laquelle aucun autre ne répond : si cette boîte brûle, qu'est-ce qui cesse de fonctionner ?
C'est aussi le diagramme que réclamera le plus probablement quelqu'un qui n'écrit pas de code. Les revues de sécurité, les plans de reprise après sinistre, les questions de localisation des données et les discussions de coût commencent toutes par « où est-ce que ça tourne, au juste, et qui parle à qui ».
02Nœuds, artefacts, chemins#
| Élément | Notation | Ce que cela signifie |
|---|---|---|
| Nœud | boîte en trois dimensions | Quelque chose qui calcule ou stocke. Le cas général ; les deux stéréotypes ci-dessous le précisent. |
| Périphérique | boîte en trois dimensions, «device» | Matériel physique : serveur, téléphone, répartiteur de charge, hôte de base de données. |
| Environnement d'exécution | boîte en trois dimensions, «executionEnvironment» | Du logiciel qui héberge d'autre logiciel : JVM, runtime de conteneurs, cluster Kubernetes, plateforme serverless. |
| Artefact | rectangle, «artifact» | Le fichier physique qui est déployé : un jar, une image, un binaire, un fichier de configuration. Nommez-le comme le fichier réel. |
| Déploiement | imbrication ou flèche «deploy» | Cet artefact tourne sur ce nœud. Le dessiner à l'intérieur est plus clair qu'une flèche, quand la place le permet. |
| Chemin de communication | simple trait plein | Deux nœuds savent se parler. Étiquetez-le avec le protocole et le port : c'est là qu'est la valeur. |
03Quel niveau de détail#
Les diagrammes de déploiement pourrissent plus vite que tous les autres, parce que l'infrastructure change chaque semaine et pas les diagrammes. La façon d'en garder un utile est de le dessiner à la hauteur qui change lentement.
Dessinez la topologie, pas l'inventaire. « Cluster Kubernetes » restera vrai des années. « Trois instances m5.large en eu-central-1b » sera faux au trimestre prochain et appartient au dépôt d'infrastructure as code, le seul endroit où cela peut être juste.
Étiquetez les liens. Un trait qui ne dit rien ne vaut presque rien ; un trait qui dit TCP 5432, HTTPS ou AMQP over TLS est la raison pour laquelle un auditeur sécurité lit le diagramme. Idem pour les frontières de confiance : si un lien quitte votre réseau pour celui de quelqu'un d'autre, dites-le.
Dessinez la multiplicité là où elle compte. Un nœud peut porter une multiplicité comme une classe. Écrire 1..* sur le nœud applicatif et 1 sur la base dit quelque chose de réel sur les modes de défaillance du système.
04Quand en dessiner un#
À utiliser quand
- Revue de sécurité ou conformité - ce qui franchit quelle frontière et avec quel protocole
- Reprise après sinistre et analyse des pannes - ce qui est unique, ce qui est redondant
- Former quelqu'un qui doit exploiter le système, pas seulement le modifier
- Questions de localisation des données : quelles données résident dans quelle juridiction
Préférer autre chose quand
- Tout le système est un processus sur une machine
- Votre infrastructure as code le décrit déjà et elle est réellement lue
- Vous réfléchissez à des services et des contrats logiques - prenez un diagramme de composants
- Il faudrait le mettre à jour chaque sprint pour qu'il reste vrai
05Erreurs fréquentes#
- Des chemins de communication non étiquetés.Le protocole et le port sont le contenu. Sans eux, un trait dit seulement « ceux-ci sont connectés ».
- Des composants dessinés là où vont les artefacts. Les nœuds hébergent des fichiers. Mettez
checkout.jarsur le nœud et laissezCheckoutau diagramme de composants. - Un détail d'instance qui ne peut pas rester vrai. Les noms d'hôtes et les tailles d'instances vont dans le code, pas dans un diagramme.
- Aucune frontière de confiance. Si certains nœuds sont à vous et d'autres à un tiers, cette distinction est souvent la chose la plus importante de la page.
- Un diagramme par environnement. Dessinez la production. Notez les écarts dans le texte ; ne dessinez pas quatre diagrammes presque identiques qui vont diverger.
En une ligne chacun
- 01Le seul diagramme UML sur la réalité physique : ce qui tourne où et qui parle à qui.
- 02Les nœuds calculent ou stockent ; «device» est du matériel, «executionEnvironment» du logiciel hôte.
- 03Les artefacts sont des fichiers - jars, images, binaires - et les imbriquer dans un nœud veut dire qu'ils y sont déployés.
- 04Étiquetez toujours les chemins de communication avec le protocole et le port.
- 05Dessinez la topologie qui change lentement ; laissez l'inventaire à l'infrastructure as code.
- 06Marquez les frontières de confiance : c'est pour elles que les auditeurs sont venus.
06Questions fréquentes#
Quelle différence entre un noeud et un artefact ?
Un noeud est du matériel ou un environnement d'exécution : un serveur, un conteneur, une JVM. Un artefact est un fichier physique produit par le développement, comme un JAR, une image ou un fichier de configuration. Les artefacts se déploient sur des noeuds ; les noeuds ne se déploient nulle part.
Quelle différence entre un dispositif et un environnement d'exécution ?
Les deux sont des noeuds. Un dispositif est du matériel physique ou virtuel, marqué du mot-clé device. Un environnement d'exécution est un logiciel qui héberge d'autres logiciels, comme un serveur d'applications ou un moteur de conteneurs, et se dessine normalement imbriqué dans le dispositif qui l'exécute.
Qu'est-ce qu'un chemin de communication ?
La ligne simple entre deux noeuds, qui signifie qu'ils peuvent échanger des messages. Elle porte d'ordinaire le protocole ou le réseau, ce qui rend le diagramme de déploiement utile en revue d'infrastructure ou de sécurité.
Un diagramme de déploiement est-il un diagramme d'architecture ?
Non. La plupart des prétendus diagrammes d'architecture sont des boîtes et des flèches informelles. Un diagramme de déploiement est un diagramme de structure UML à sémantique définie : noeuds, artefacts, relation deploy et chemins de communication, si bien que deux lecteurs s'accordent sur ce qu'il affirme.
Dans cette série
- 01Qu'est-ce que UML ?
- 02Symboles UML
- 03Choisir un diagramme
- 04Diagrammes de classes
- 05Exemples de diagrammes de classes
- 06Dessiner un diagramme de classes
- 07Symboles du diagramme de classes
- 08Diagrammes de séquence
- 09Exemples de diagrammes de séquence
- 10Dessiner un diagramme de séquence
- 11Diagrammes de cas d'utilisation
- 12Exemples de cas d'utilisation
- 13Diagrammes d'activité
- 14Exemples d'activité
- 15Diagrammes états-transitions
- 16Exemples d'états-transitions
- 17Diagrammes de composants
- 18Exemples de composants
- 19Dessiner un diagramme de composants
- 20Symboles de composants
- 21Diagrammes de déploiement
- 22Exemples de déploiement
- 23Diagrammes d'objets
- 24Diagrammes de paquetages
- 25Diagrammes de structure composite
- 26Diagrammes de communication
- 27Séquence vs communication
- 28Diagrammes de temps
- 29Diagrammes globaux d'interaction
- 30Diagrammes de profil
- 31UML avec l'IA
- 32Exemple e-commerce
- 33Exemple bancaire
- 34Exemple microservices
- 35Exemple AWS
À lire aussi
Fondamentaux
Diagrammes de structure
Diagrammes de structure
Diagrammes de structure
Diagrammes de structure
Diagrammes de structure