阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

几行代码就搞定高端大气的云系统架构图

55次阅读
没有评论

共计 1857 个字符,预计需要花费 5 分钟才能阅读完成。

导读 想知道如何用 Python 代码绘制出云系统架构图,那么,今天猿妹要和大家分享的这个开源项目你一定喜欢——diagrams。

想知道如何用 Python 代码绘制出云系统架构图,那么,今天猿妹要和大家分享的这个开源项目你一定喜欢——diagrams。
几行代码就搞定高端大气的云系统架构图
diagrams 是一个不需要使用任何的设计工具,只需要几行代码就能做出一张惊艳的云系统架构图的工具,它的诞生就是为了在没有任何设计工具的情况下对新的系统架构设计进行原型设计,你可以用它来描述或者可视化现有的系统架构,diagrams 目前支持 AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud 等。同时,它还支持内置的架构图组件、SaaS 和主流的编程框架和语言。Diagram as Code 还允许用户跟踪任何版本控制系统中的架构图更改。

除此之外,如果你熟悉 Go,你可以使用 go-diagrams。(项目地址:https://github.com/blushft/go-diagrams)

几行代码就搞定高端大气的云系统架构图

目前,diagrams 已经在 Github 上标星 14.5K,累计分支 795 个 (Github 地址:https://github.com/mingrammer/diagrams)

安装要求

diagrams 支持 Python 3.6 及以上版本,它是使用 Graphviz 来渲染图表,因此您需要安装 Graphviz 才能使用,首先确保这两项符合要求之后,才可以安装 diagrams。macOS 用户可以通过以下方式下载 Graphviz:

# using pip (pip3) 
$ pip install diagrams 
 
# using pipenv 
$ pipenv install diagrams 
 
# using poetry 
$ poetry add diagrams
快速开始
# diagram.py 
from diagrams import Diagram 
from diagrams.aws.compute import EC2 
from diagrams.aws.database import RDS 
from diagrams.aws.network import ELB 
 
with Diagram("Web Service", show=False): 
    ELB("lb") >> EC2("web") >> RDS("userdb")

此代码生成下图:

$ python diagram.py

几行代码就搞定高端大气的云系统架构图
它将保存 web_service.png 在你的工作目录中。

AWS 上的分组工作人员
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")

几行代码就搞定高端大气的云系统架构图

集群网络服务
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_main = RDS("userdb") 
        db_main - [RDS("userdb ro")] 
 
    memcached = ElastiCache("memcached") 
 
    dns >> lb >> svc_group 
    svc_group >> db_main 
    svc_group >> memcached

几行代码就搞定高端大气的云系统架构图

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1857字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中