谁说 ChatGPT 不会画架构图,看我如何用 DiagramsGPT 画架构图?

1,184 阅读5分钟

有没有过这样的场景:你的团队要开一个项目讨论会,大家需要一张架构图来讨论系统的组成和连接,但偏偏你手头没有设计工具,时间又紧,绘图软件操作起来还不熟练……别担心,有个叫 Diagrams 的神器可以救你。它让我们用 Python 代码画架构图,既然是 Python,那么 GPT 就能够轻松的切入,一句话,画一个流弊的架构图,简单又高效,尤其适合那些常跟云服务打交道的朋友!今天咱们就来聊聊这个工具,看看它怎么用,以及它到底能为我们带来哪些好处。

Diagrams 是什么?它能干嘛?

Diagrams 的核心理念是 “代码即图”——就是说,用几行代码就能生成架构图。听起来是不是很酷?尤其是对于那些更习惯用代码表达设计思路的开发者,这种方法简直不要太好用!它的优势不仅仅在于省时间和方便,而是在项目过程中可以追踪更改,便于团队协作。你可以想象一下,假如团队的小伙伴们都能用代码来“画”图,那更新、修改架构图简直小菜一碟,信息传递也会顺畅很多。

Diagrams 支持多个主流云平台的服务组件,比如 AWSAzureGCP阿里云、甚至 Kubernetes 等等。这也就是说,无论你的项目基于哪个云服务平台,都可以用 Diagrams 找到对应的模块来绘制架构图,让图表更贴合实际。

为什么 Diagrams 这么受欢迎?

1. 用代码画图,高效又简单

传统画图工具不仅需要我们一张一张地拖拉图形,还要费劲地调整位置。Diagrams 只需几行代码,就能让图自动生成,而且这个图还可以和代码一起纳入版本控制。每次有更新,架构图也会自动随代码同步更新。对于团队来说,这样的好处就是再明显不过了,不但节省了重复劳动,还让大家更容易了解最新的架构情况。

举个例子,如果我们想快速画一张简单的网络架构图,只需几行 Python 代码:

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")

这段代码的意思是,用一个负载均衡器(ELB)连接到一堆的 worker 服务器(Worker)。运行这段代码后,你会得到一个清晰的、结构合理的图表,非常适合用来展示基本的网络架构。

2. 适配主流云服务,灵活性强

Diagrams 能够直接支持 AWS、Azure、GCP 等主流云服务提供商的组件。如果你的公司是多云策略(即使用多家云服务提供商),Diagrams 依然能很好地适配,不需要担心画图时没有合适的图标或组件。比如,你的架构图中可能会涉及 AWS 的存储(S3)和 Google Cloud 的数据处理(BigQuery),这些都可以直接用 Diagrams 实现,非常方便。

3. 适用场景丰富,帮助更好地沟通

Diagrams 最常见的应用场景就是快速原型设计和文档编写。比如团队需要快速探讨一个想法,几分钟内用 Diagrams 就能生成一个初步的架构图。而在编写技术文档时,加入 Diagrams 的图表也会让内容更直观易懂,减少读者的理解负担。除此之外,由于 Diagrams 的代码化特性,这些图表还可以存入代码库中,方便团队随时查阅和更新。

Diagrams 的实用小技巧

1. 分层绘制复杂架构

随着系统的逐渐庞大,架构图也会变得复杂,Diagrams 提供了一种分层绘制的方式。你可以用多个 with Diagram(...) 语句来分别绘制不同的部分,然后再将它们组合在一起。比如将网络层、应用层和存储层分开,便于维护和管理。

2. 多种图形组合,满足个性化需求

Diagrams 提供了丰富的图标库,你可以轻松地将不同的云服务模块组合在一起,创建复杂的架构图。此外,你还可以用 Diagrams 的 custom 模块来加入自己设计的图标或第三方图标,确保架构图完全符合你的需求。

3. 自动生成布局,节省时间

Diagrams 内置了智能布局功能,会自动安排图形的位置,保证图表看起来整齐美观,省去了人工拖动的麻烦。而且,如果架构图较为复杂,Diagrams 还支持调整图表的显示方向,比如从左到右或从上到下,适应不同的展示需求。

Diagrams 入门操作步骤

  1. 1. 安装依赖:首先,你得在本地安装 Python,然后通过 pip 安装 Diagrams 包:
pip install diagrams

注意,Mac 用户还需要安装graphviz,因为这个库依赖它。

brew install graphviz
  1. 1. 编写代码:接下来就是写代码了。比如,你想绘制一个包含负载均衡器、web 服务器和数据库的简单架构图,可以这样写:

    from diagrams import Diagram
    from diagrams.aws.compute import EC2
    from diagrams.aws.network import ELB
    from diagrams.aws.database import RDS
    
    with Diagram("Simple Web Service"):
        lb = ELB("load balancer")
        web = EC2("web server")
        db = RDS("user db")
        lb >> web >> db
    
  2. 2. 运行生成:最后,运行这段代码,Diagrams 会自动生成一张图表,并保存成图片格式,方便直接插入到文档中。

一些思考

如果你从事云开发或架构设计的工作,那 Diagrams 绝对是你不容错过的工具。它让代码和架构图完美结合,使得绘制云系统架构图变得不再繁琐。不论是初创团队还是大型企业,Diagrams 都能在原型设计、技术文档编写和团队协作中发挥巨大作用。

在工作中,我们经常会遇到各种各样的需求——有时候是为项目做一个初步的设计,有时候是为现有系统更新文档,有时候则是为团队展示思路。而 Diagrams 的出现,让这些事情变得简单高效。对于那些习惯用代码表达设计的朋友,Diagrams 带来的不仅仅是工具上的便利,更是思维方式的提升。