新聞中心
想知道如何用Python代碼繪制出云系統(tǒng)架構(gòu)圖,那么,今天猿妹要和大家分享的這個(gè)開(kāi)源項(xiàng)目你一定喜歡——diagrams。

超過(guò)十年行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營(yíng)模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都做網(wǎng)站、成都網(wǎng)站建設(shè),成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,微信小程序定制開(kāi)發(fā),微信開(kāi)發(fā),APP應(yīng)用開(kāi)發(fā),同時(shí)也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營(yíng)銷和我們一樣獲得訂單和生意!
diagrams是一個(gè)不需要使用任何的設(shè)計(jì)工具,只需要幾行代碼就能做出一張?bào)@艷的云系統(tǒng)架構(gòu)圖的工具,它的誕生就是為了在沒(méi)有任何設(shè)計(jì)工具的情況下對(duì)新的系統(tǒng)架構(gòu)設(shè)計(jì)進(jìn)行原型設(shè)計(jì),你可以用它來(lái)描述或者可視化現(xiàn)有的系統(tǒng)架構(gòu),diagrams目前支持AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud 等。同時(shí),它還支持內(nèi)置的架構(gòu)圖組件、SaaS 和主流的編程框架和語(yǔ)言。Diagram as Code還允許用戶跟蹤任何版本控制系統(tǒng)中的架構(gòu)圖更改。
除此之外,如果你熟悉Go,你可以使用go-diagrams。(項(xiàng)目地址:https://github.com/blushft/go-diagrams)
目前,diagrams已經(jīng)在Github上標(biāo)星14.5K,累計(jì)分支 795 個(gè)(Github地址:https://github.com/mingrammer/diagrams)
安裝要求
diagrams支持Python 3.6及以上版本,它是使用Graphviz來(lái)渲染圖表,因此您需要安裝 Graphviz才能使用,首先確保這兩項(xiàng)符合要求之后,才可以安裝diagrams。macOS用戶可以通過(guò)以下方式下載Graphviz:
- # using pip (pip3)
- $ pip install diagrams
- # using pipenv
- $ pipenv install diagrams
- # using poetry
- $ poetry add diagrams
快速開(kāi)始
- # 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")
集群網(wǎng)絡(luò)服務(wù)
- 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
分享標(biāo)題:高端大氣的云系統(tǒng)架構(gòu)圖,幾行代碼就能搞定
文章路徑:http://m.5511xx.com/article/dhdjdds.html


咨詢
建站咨詢
