
想知道如何用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:
- #usingpip(pip3)
- $pipinstalldiagrams
- #usingpipenv
- $pipenvinstalldiagrams
- #usingpoetry
- $poetryadddiagrams
快速开始
- #diagram.py
- fromdiagramsimportDiagram
- fromdiagrams.aws.computeimportEC2
- fromdiagrams.aws.databaseimportRDS
- fromdiagrams.aws.networkimportELB
- withDiagram("WebService",show=False):
- ELB("lb")>>EC2("web")>>RDS("userdb")
此代码生成下图:
- $pythondiagram.py

它将保存web_service.png在你的工作目录中。
AWS 上的分组工作人员
- fromdiagramsimportDiagram
- fromdiagrams.aws.computeimportEC2
- fromdiagrams.aws.databaseimportRDS
- fromdiagrams.aws.networkimportELB
- withDiagram("GroupedWorkers",show=False,direction="TB"):
- ELB("lb")>>[EC2("worker1"),
- EC2("worker2"),
- EC2("worker3"),
- EC2("worker4"),
- EC2("worker5")]>>RDS("events")

集群网络服务
- fromdiagramsimportCluster,Diagram
- fromdiagrams.aws.computeimportECS
- fromdiagrams.aws.databaseimportElastiCache,RDS
- fromdiagrams.aws.networkimportELB
- fromdiagrams.aws.networkimportRoute53
- withDiagram("ClusteredWebServices",show=False):
- dns=Route53("dns")
- lb=ELB("lb")
- withCluster("Services"):
- svc_group=[ECS("web1"),
- ECS("web2"),
- ECS("web3")]
- withCluster("DBCluster"):
- db_main=RDS("userdb")
- db_main-[RDS("userdbro")]
- memcached=ElastiCache("memcached")
- dns>>lb>>svc_group
- svc_group>>db_main
- svc_group>>memcached

原文链接:https://mp.weixin.qq.com/s/bSTo7lYNw6Mdt0qKBpirJg








发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。