IREX - UML pour communiquer l’architecture de déploiement : illustration avec ACRA

Cet article montre comment le diagramme de déploiement UML permet de représenter l’infrastructure d’ACRA, ses composants et leurs relations.

 · 4 min read

1. Introduction

Le déploiement d'une application ne consiste pas uniquement à installer un logiciel sur une machine. Il implique de comprendre quels composants doivent être déployés, comment ils sont organisés et quelles interactions existent entre eux. Cette compréhension est particulièrement importante dans le cas des architectures distribuées reposant sur plusieurs services spécialisés.

Toutefois, les notions liées au déploiement sont souvent mal comprises. Une représentation textuelle de l'infrastructure peut rapidement devenir complexe, ce qui favorise les interprétations erronées concernant la composition réelle du système et les responsabilités associées à chaque composant.

Dans ce contexte, le diagramme de déploiement UML constitue un outil de communication efficace. Il permet de représenter visuellement l'organisation physique ou virtuelle d'une solution logicielle et facilite la compréhension de son environnement d'exécution.

2. Le diagramme de déploiement : que représente-t-il ?

Le diagramme de déploiement UML décrit la manière dont les composants logiciels sont installés sur une infrastructure matérielle ou virtuelle.

Il permet notamment de représenter :

  • les nœuds de déploiement, tels que les serveurs physiques ou les machines virtuelles ;
  • les applications déployées sur chacun de ces nœuds ;
  • les relations existant entre les différents composants ;
  • les points d'entrée utilisés pour accéder aux services ;
  • les mécanismes de communication internes à la solution.

Contrairement au diagramme de composants, qui présente une vue logique du système, le diagramme de déploiement fournit une vision physique de l'architecture. Il répond ainsi à plusieurs questions essentielles :

  • Sur quelle infrastructure la solution est-elle déployée ?
  • Quels composants constituent une instance complète du système ?
  • Comment les utilisateurs accèdent-ils aux différents services ?
  • Comment les applications communiquent-elles entre elles ?

Cette représentation constitue un support précieux pour les équipes chargées de l'installation, de l'exploitation et de la maintenance des systèmes.

3. Illustration avec la plateforme ACRA

Le diagramme de déploiement d'ACRA met en évidence la manière dont une instance complète de la plateforme est organisée.

Une instance ACRA est déployée sur une seule machine virtuelle fonctionnant sous Debian. Cette machine virtuelle héberge l'ensemble des applications nécessaires au fonctionnement de la solution. Une instance ACRA ne correspond donc pas à un composant isolé, mais à un ensemble cohérent de services déployés conjointement.

L'accès à la plateforme s'effectue à travers un Nginx principal, qui constitue le point d'entrée unique de l'instance. Ce composant reçoit les requêtes externes et les redirige vers les applications appropriées selon les règles de routage définies.

Les principales applications composant ACRA sont notamment Grafana, Prometheus, Zabbix, Keycloak, Thanos et SeaweedFS. Chacune de ces applications dispose de son propre Nginx interne. Ce dernier est un composant d’ACRA et agit comme un reverse proxy local permettant de gérer les communications propres à l'application concernée ainsi que l'accès au service associé.

Ainsi, le Nginx principal assure le routage global de l'instance ACRA, tandis que les Nginx internes prennent en charge la gestion spécifique de chaque application. Cette organisation permet de maintenir une séparation claire entre les différents composants tout en conservant une architecture centralisée au niveau de la machine virtuelle.

Diagramme de déploiement illustrant ACRA déployée sur une machine virtuelle Debian unique, comprenant un Nginx principal et un Nginx interne associé à chaque application
Figure 1. Diagramme de déploiement illustrant ACRA déployée sur une machine virtuelle Debian unique, comprenant un Nginx principal et un Nginx interne associé à chaque application.

4. Ce que le diagramme apporte

Le diagramme de déploiement facilite la compréhension de la notion d'instance ACRA. Il montre qu'une instance complète correspond à l'ensemble des applications déployées sur la même machine virtuelle et non à un service pris isolément.

Cette représentation met également en évidence le rôle du Nginx principal comme point d'entrée unique de la plateforme. Elle permet de comprendre comment les requêtes sont distribuées vers les différents services composant ACRA.

La présence des Nginx internes apparaît également plus clairement grâce au diagramme. Chaque application dispose de son propre mécanisme de routage local, ce qui favorise une meilleure isolation des configurations et simplifie la gestion individuelle des services.

Enfin, cette représentation constitue un support efficace pour les équipes d'exploitation. Elle facilite les activités de déploiement, le transfert de connaissances entre collaborateurs ainsi que les opérations de maintenance ou d'évolution de l'infrastructure.

5. Conclusion

Les architectures modernes reposent sur un ensemble croissant de services interconnectés, ce qui rend parfois difficile la compréhension de leur organisation physique.

Le diagramme de déploiement UML répond à cette problématique en offrant une représentation claire des infrastructures d'exécution. Il permet d'identifier les nœuds de déploiement, les composants hébergés ainsi que les mécanismes de communication existants entre les différents services.

À travers l'exemple d'ACRA, cette approche montre qu'une instance complète de la plateforme correspond à un ensemble cohérent d'applications déployées sur une machine virtuelle unique. Le diagramme met également en évidence le rôle central du Nginx principal ainsi que l'existence des Nginx internes propres à chaque application.

Utilisé comme support de communication, le diagramme de déploiement contribue ainsi à réduire les ambiguïtés, à améliorer la compréhension de l'architecture et à faciliter les activités des équipes chargées de l'exploitation des systèmes.


No comments yet

No comments yet. Start a new discussion.

Add Comment