Diagram as Code:用python代码生成架构图

工作中常需要画系统架构图,通常的方法是通过visio、processon、draw.io之类的软件,但是今天介绍的这个软件 Diagrams ,可以通过写Python 代码完成架构图绘制,确实很cool。来看看吧。

介绍

Diagrams诞生是为了在没有任何设计工具的情况下对新的系统架构设计进行原型设计。Diagrams 目前支持主要的主要云平台包括:AWS、Azure、GCP、Kubernetes、阿里云、Oracle Cloud 等。它还支持 On-Premise 节点、SaaS 和主要的编程框架和语言。

Diagrams也支持版本控制,跟踪版本的变化。

开始体验:

基础环境需要 Python 3.6 或更高版本,请先检查您的 Python 版本。

  • 安装依赖包:

#ubuntu

$ sudo apt install graphviz

#centos

$ sudo yum install graphviz

#Mac 用户:

$ brew install graphviz

  • 安装diagrams:

#using pip (pip3)

$ pip install diagrams

示例:

Demo: Clustered Web Services

# diagram.py

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

with Diagram("Clustered Web Services", show=False):
    dns = Route53("dns")
    lb = ELB("lb")

    with Cluster("Services"):
        svc_group = [ECS("web1"),
                     ECS("web2"),
                     ECS("web3")]

    with Cluster("DB Cluster"):
        db_primary = RDS("userdb")
        db_primary - [RDS("userdb ro")]

    memcached = ElastiCache("memcached")

    dns >> lb >> svc_group
    svc_group >> db_primary
    svc_group >> memcached

$ python diagram.py

可以看到已经输出一个漂亮的系统架构图,例子比较简单,可以在继续深入研究下,还是很好用的工具。

示例

另外的例子:

#python#

github

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章