成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Diagrams畫架構(gòu)圖,你會嗎?

開發(fā) 開發(fā)工具
Diagrams是基于Python的一款Diagram as Code工具,它最大的特點就是提供了很多云廠商及開源組件的圖標,畫出來的圖顯得更專業(yè)一點,也更易懂一點。

最近發(fā)現(xiàn)一個畫架構(gòu)圖的神器diagrams,提供了很多云廠商及開源組件的圖標,相比于C4-PlantUML顯得更專業(yè)一點。
之前寫過技術(shù)文檔畫圖工具箱,diagrams屬于diagram as code工具派別。

mac安裝

brew install graphviz
pip install diagrams
brew install python@3.11

示例1

from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB

# python aws_example.py
with Diagram("Grouped Workers", show=False, direction="TB"):
    ELB("lb") >> [EC2("worker1"),
                  EC2("worker2"),
                  EC2("worker3"),
                  EC2("worker4"),
                  EC2("worker5")] >> RDS("events")

執(zhí)行python example.py即可以在當前目錄生成png圖片。

示例2

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_primary = RDS("userdb")
        db_primary - [RDS("userdb ro")]

    memcached = ElastiCache("memcached")

    dns >> lb >> svc_group
    svc_group >> db_primary
    svc_group >> memcached

基本語法就是import node,以with Diagram開始,之后聲明組件,然后使用with來進行分組,最后通過>>來串聯(lián)。
默認文件名是Diagram名,空格替換為下劃線,可以用filename指定。
圖片格式默認是png,可以用outformat=[“jpg”, “png”, “dot”]來指定要生成的圖片類型。
show默認為True,也就是python生成完圖片會默認打開圖片。

k8s示例

from diagrams import Cluster, Diagram
from diagrams.k8s.compute import Pod, StatefulSet
from diagrams.k8s.network import Service
from diagrams.k8s.storage import PV, PVC, StorageClass

with Diagram("Stateful Architecture", show=False):
    with Cluster("Apps"):
        svc = Service("svc")
        sts = StatefulSet("sts")

        apps = []
        for _ in range(3):
            pod = Pod("pod")
            pvc = PVC("pvc")
            pod - sts - pvc
            apps.append(svc >> pod >> pvc)

    apps << PV("pv") << StorageClass("sc")

開源組件示例

from diagrams import Cluster, Diagram
from diagrams.onprem.analytics import Spark
from diagrams.onprem.compute import Server
from diagrams.onprem.database import PostgreSQL
from diagrams.onprem.inmemory import Redis
from diagrams.onprem.aggregator import Fluentd
from diagrams.onprem.monitoring import Grafana, Prometheus
from diagrams.onprem.network import Nginx
from diagrams.onprem.queue import Kafka

with Diagram("Advanced Web Service with On-Premise", show=False):
    ingress = Nginx("ingress")

    metrics = Prometheus("metric")
    metrics << Grafana("monitoring")

    with Cluster("Service Cluster"):
        grpcsvc = [
            Server("grpc1"),
            Server("grpc2"),
            Server("grpc3")]

    with Cluster("Sessions HA"):
        primary = Redis("session")
        primary - Redis("replica") << metrics
        grpcsvc >> primary

    with Cluster("Database HA"):
        primary = PostgreSQL("users")
        primary - PostgreSQL("replica") << metrics
        grpcsvc >> primary

    aggregator = Fluentd("logging")
    aggregator >> Kafka("stream") >> Spark("analytics")

    ingress >> grpcsvc >> aggregator

主要結(jié)構(gòu)

node

# aws resources
from diagrams.aws.compute import ECS, Lambda
from diagrams.aws.database import RDS, ElastiCache
from diagrams.aws.network import ELB, Route53, VPC
...

# azure resources
from diagrams.azure.compute import FunctionApps
from diagrams.azure.storage import BlobStorage
...

# alibaba cloud resources
from diagrams.alibabacloud.compute import ECS
from diagrams.alibabacloud.storage import ObjectTableStore
...

# gcp resources
from diagrams.gcp.compute import AppEngine, GKE
from diagrams.gcp.ml import AutoML 
...

# k8s resources
from diagrams.k8s.compute import Pod, StatefulSet
from diagrams.k8s.network import Service
from diagrams.k8s.storage import PV, PVC, StorageClass
...

# oracle resources
from diagrams.oci.compute import VirtualMachine, Container
from diagrams.oci.network import Firewall
from diagrams.oci.storage import FileStorage, StorageGateway

完整版見nodes

數(shù)據(jù)流及布局

  • >>表示從左到右連接
  • <<表示從右到左連接
  • -表示無方向的連接

Diagram有個屬性direction來表示整體布局,可選的值有TB, BT, LR及RL,默認是LR,即從左到右

TB: top to bottom
BT: bottom to top
LR: left to right
RL: right to left

Cluster用于分組,也支持內(nèi)嵌,比如

with Cluster("Event Flows"):
        with Cluster("Event Workers"):
            workers = [ECS("worker1"),
                       ECS("worker2"),
                       ECS("worker3")]

        queue = SQS("event queue")

        with Cluster("Processing"):
            handlers = [Lambda("proc1"),
                        Lambda("proc2"),
                        Lambda("proc3")]

連接符之間可以用Edge來銜接,用于個性化處理邊的屬性,比如

metrics = Prometheus("metric")
    metrics << Edge(color="firebrick", style="dashed") << Grafana("monitoring")

小結(jié)

diagrams是基于python的一款diagram as code工具,它最大的特點就是提供了很多云廠商及開源組件的圖標,畫出來的圖顯得更專業(yè)一點,也更易懂一點。

doc

  • diagrams
  • Diagrams: Diagram as Code
  • diagrams examples
  • 技術(shù)文檔畫圖工具箱
責任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2020-06-22 08:23:42

阿里技術(shù)架構(gòu)圖

2020-06-15 08:54:46

架構(gòu)圖 EA業(yè)務建模

2025-04-25 10:00:00

2021-06-30 10:43:35

云系統(tǒng)架構(gòu)代碼

2020-09-04 09:55:25

TikTok程序禁令

2023-07-10 08:36:21

工具pptword

2021-05-14 07:20:07

.NetSwagger使用

2021-08-19 15:36:09

數(shù)據(jù)備份存儲備份策略

2021-09-12 17:25:12

SQLite數(shù)據(jù)庫

2020-07-07 07:30:33

技術(shù)IT架構(gòu)

2024-02-22 08:31:26

數(shù)據(jù)恢復工具MySQL回滾SQL

2021-04-14 06:53:52

C# 修飾符 Public

2021-04-16 15:02:11

CAP理論分布式

2012-06-20 10:47:25

Team Leader

2019-05-07 15:49:27

AI人工智能藝術(shù)

2021-08-13 07:23:15

架構(gòu)秒殺系統(tǒng)

2011-08-19 11:34:05

iOS架構(gòu)圖

2010-07-13 10:40:30

唐駿

2022-04-19 07:51:11

RPC 通信架構(gòu)

2014-08-08 09:03:19

IT性能管理
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲国产一区二区三区四区 | 国产激情偷乱视频一区二区三区 | 在线免费观看毛片 | 日韩免费 | 91精品国产一区二区三区 | 久草成人网 | 一区二区三区视频 | av网站在线免费观看 | 日本精品裸体写真集在线观看 | 午夜日韩视频 | 天天干天天操 | 中文字幕国产 | 亚洲一区二区视频 | 精品欧美一区二区三区久久久 | 高清黄色网址 | 国产精品久久久久久久岛一牛影视 | 久久99精品久久久久 | 亚洲精品成人免费 | 日韩欧美一区二区三区在线播放 | 91亚洲国产成人久久精品网站 | 99精品欧美一区二区三区综合在线 | 亚洲一区在线播放 | 九九综合 | 国产成人免费 | 国产成人精品a视频 | 国产成人精品在线播放 | 欧美日韩国产精品激情在线播放 | 久久久国产一区 | 欧美一区二区 | 日韩在线小视频 | 国产亚洲一区二区三区 | 日韩精品一区二区三区四区 | 自拍偷拍3p | 国产精品日韩欧美 | 色综合色综合色综合 | 国产精品99久久久久久宅男 | 亚州精品天堂中文字幕 | 国产三级精品视频 | 69电影网| 午夜影院在线 | 精品国产91乱码一区二区三区 |