Build cloud architecture diagrams without leaving your IDE

Build cloud architecture diagrams without leaving your IDE

  • 1369

Introducing Diagrams: Diagram as Code .Build cloud architecture diagrams without leaving your IDE

I’ve built an infrastructure diagram drawing library. You can see it on GitHub and this website.

Diagrams let you draw a cloud system architecture in Python code. It was born for prototyping a new system architecture design without any design tools.

You can also describe or visualize the existing system architecture. Diagrams currently supports these major five providers: AWS, Azure, GCP, Kubernetes, and Alibaba Cloud.

Diagram as Code also allows you to track the architecture diagram changes on any version control system.

Note: It does not control any actual cloud resources nor generate cloud formation or terraform code, but only for drawing cloud system architecture diagrams.

You can start with this quick start. You can go to the guides for more details.

Here are some examples:

from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB
with Diagram("Grouped Workers", show=False, direction="TB"):
    ELB("lb") >> [EC2("worker1"),      
                  EC2("worker2"), 
                  EC2("worker3"), 
                  EC2("worker4"),               
                  EC2("worker5")] >> RDS("events")

Diagram.py

This is image title

from diagrams import Cluster, Diagram
from diagrams.aws.compute import ECS, EKS, Lambda
from diagrams.aws.database import Redshift 
from diagrams.aws.integration import SQS 
from diagrams.aws.storage import S3  
with Diagram("Event Processing", show=False):   
    source = EKS("k8s source")      
    with Cluster("Event Flows"):        
        with Cluster("Event Workers"):          
            workers = [ECS("worker1"),   
                       ECS("worker2"),
                       ECS("worker3")]
        queue = SQS("event queue")  
        with Cluster("Processing"):       
            handlers = [Lambda("proc1"),                             
                        Lambda("proc2"),                      
                        Lambda("proc3")]     
    store = S3("events store")    
    dw = Redshift("analytics")     
 
    source >> workers >> queue >> handlers  
    handlers >> store 
    handlers >> dw

diagrams.py

This is image title
You can find all the examples on the examples page.

Thank you!