幾行代碼就搞定高端大氣的雲系統架構圖

想知道如何用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

幾行代碼就搞定高端大氣的雲系統架構圖幾行代碼就搞定高端大氣的雲系統架構圖

本文地址:https://www.linuxprobe.com/cloud-system-architecture.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章