Usa esta librería para hacer diagramas de arquitecturas desde código Python


Quizás en algún momento como profesional de datos, será necesario crear un diagrama con la arquitectura de tu solución, definir desde qué clientes podrá ser utilizada, qué servicios o APIs usarás, las bases de datos que conectarás etc. Incluso puede que sea posible que quieras adicionar en tu diagrama las librerías utilizadas en tu proceso. 

Si bien existen muchas soluciones disponibles, tanto para usar online como para descargar, quizás quieras que tu diagrama sea fácilmente editable desde código. Para esto existe esta librería 

Si quieres tener una solución para hacer diagramas de cualquier tipo te recomiendo mirar yEd Graph Editor que tiene además de diferentes opciones de gráficos, una funcionalidad que organiza automáticamente los nodos y enlaces.


Cómo instalar en Python

Para instalar en Python se usa este comando

pip install diagrams

Uso básico

Este es un ejemplo tomado del sitio web, en el cual se pueden importar diferentes

from diagrams import Cluster, Diagram
from diagrams.aws.compute import ECS
from diagrams.aws.database import ElastiCache, RDS
from diagrams.aws.network import ELB
from diagrams.aws.network import Route53

#Crear el diagrama y deshabilitar la visualización automática
with Diagram("Clustered Web Services", show=False):
    dns = Route53("dns")
    lb = ELB("lb")

    # Crear un clúster de servicios con tres instancias de ECS
    with Cluster("Services"):
        svc_group = [ECS("web1"),
                     ECS("web2"),
                     ECS("web3")]

    # Crear un clúster de base de datos RDS con una instancia principal y una instancia de lectura replicada
    with Cluster("DB Cluster"):
        db_primary = RDS("userdb")
        db_primary - [RDS("userdb ro")]

    # Crear una instancia de ElastiCache para memcached
    memcached = ElastiCache("memcached")

    # Conectar el DNS al balanceador de carga, y luego al clúster de servicios
    dns >> lb >> svc_group
    # Conectar el clúster de servicios a la base de datos y a memcached
    svc_group >> db_primary
    svc_group >> memcached

Y da como resultado una gráfica como la que sigue y donde mostramos cómo se relacionan algunas parte del código con los elementos dibujados.

Esta librería tiene incluidos gran cantidad de componentes de plataformas de nube, software y algunos elementos  genéricos como elementos de programación o incluso permite la adicion de tus propios íconos. Estos son algunas librerías que aparecen en su documentación oficial
  • OnPrem
  • AWS
  • Azure
  • GCP
  • IBM
  • K8S
  • AlibabaCloud
  • OCI
  • OpenStack
  • Firebase
  • DigitalOcean
  • Elastic
  • Outscale
  • Generic
  • Programming
  • Saas
  • C4
  • Custom
Puede encontra más información de esta librería en este enlace



Publicar un comentario

0 Comentarios