18 points par GN⁺ 2024-11-05 | 3 commentaires | Partager sur WhatsApp
  • Diagrams est un outil qui permet de dessiner des architectures de systèmes cloud avec du code Python
    • Il a été conçu pour pouvoir être utilisé sans outil de design lors du prototypage d’une nouvelle architecture système
    • Il peut aussi servir à décrire ou visualiser une architecture système existante
    • Le Diagram as Code permet de suivre les changements des diagrammes d’architecture dans un système de gestion de versions
  • Principaux fournisseurs pris en charge
    • Prend en charge les principaux fournisseurs cloud comme AWS, Azure, GCP, Kubernetes, Alibaba Cloud et Oracle Cloud
    • Prend aussi en charge les nœuds on-premise, le SaaS, ainsi que les principaux frameworks et langages de programmation
  • Points à noter
    • Ne contrôle pas de véritables ressources cloud et ne génère ni code CloudFormation ni code Terraform
    • Utilisé uniquement pour dessiner des diagrammes d’architecture de systèmes cloud

3 commentaires

 
xguru 2024-11-06

Diagrams - dessiner une architecture cloud avec du code Python
Créé par Minjae Kwon de Danggeun Market, le projet a désormais atteint 38 700 étoiles sur GitHub !

 
GN⁺ 2024-11-05
Avis sur Hacker News
  • Ce projet est un wrapper pour Graphviz, qui génère des fichiers .dot avec un style appliqué et offre un meilleur rendu visuel que les fichiers gv bruts

    • Le fait de le décrire en Python apporte en théorie des avantages comme la coloration syntaxique et l’autocomplétion dans l’IDE, mais en pratique ce n’est pas adapté aux personnes qui ne veulent pas apprendre Python ou Golang
    • Pour les petits diagrammes d’architecture, le moteur de mise en page fait l’affaire, mais à grande échelle le résultat n’est pas très esthétique
    • J’utilise draw.io pour expliquer l’intention ou le design, et Graphviz avec du style pour les éléments dynamiques
    • J’aimerais voir une extension du langage dot qui permette la modélisation des menaces et le stylage du rendu
  • D2 est un outil assez sympa

    • Le NetBox de Digital Ocean peut générer des diagrammes à partir d’une base de données d’actifs réseau
    • NetBox sert de source de vérité pour l’infrastructure réseau et définit puis vérifie l’état attendu des composants et ressources réseau
    • Chaque fichier représente un type d’appareil physique individuel et peut être chargé dans NetBox, ce qui évite de devoir créer manuellement de nouvelles définitions de types d’appareils
    • Les images des appareils sont au format PNG et classées par fabricant, et peuvent être chargées dans NetBox, ce qui évite d’avoir à créer les images des appareils
  • Personnellement, j’utilise Mermaid pour les diagrammes de séquence et les organigrammes

    • DaC semble être une meilleure option pour l’infrastructure
  • Implémenter un DSL sous forme de langage de programmation semble complexe lorsqu’il s’agit de générer des structures de données statiques

    • Un DSL est utile lorsqu’il est utilisé par d’autres morceaux de code, mais dans ce cas cela ajoute une surcharge par rapport aux alternatives
  • Le langage de programmation PostScript est basé sur une pile et excelle pour les dessins et les diagrammes

    • Ghostscript est un interpréteur PostScript gratuit
  • Je déteste utiliser Visio ou LucidChart et je préfère dessiner des diagrammes avec Python

    • Utiliser Python permet de faire d’une pierre deux coups
  • En voyant ces bibliothèques, je me dis qu’il faudrait une API efficace permettant aux LLM de maîtriser les diagrammes

  • Je suis content qu’il y ait un ensemble de nœuds "Generic"

    • Les diagrammes d’architecture qui dépendent trop des noms ou des icônes d’une plateforme cloud spécifique me mettent mal à l’aise
    • Aucune information utile n’est affichée sur les lignes de connexion entre les nœuds
 
healingme 2024-11-12

Il y a aussi plantuml.