Diagrams:使用图表描述云系统架构原型


使用Diagrams可以用Python代码绘制云系统架构。它的诞生是为没有任何设计工具的新系统架构设计提供原型。您还可以描述或可视化现有的系统架构。图表目前支持六个主要供应商:AWS,Azure,GCP,Kubernetes,Alibaba Cloud和Oracle Cloud。现在,它还支持On-Premise节点。
Diagram as Code还使您可以跟踪任何版本控制系统中的体系结构图更改。
注意:它不控制任何实际的云资源,也不会生成云形式或本地形式的代码。它仅用于绘制云系统架构图。

事件处理架构图:

from diagrams import Cluster, Diagram
from diagrams.aws.compute import ECS, EKS, Lambda
from diagrams.aws.database import Redshift
from diagrams.aws.integration import SQS
from diagrams.aws.storage import S3

with Diagram("Event Processing", show=False):
    source = EKS(
"k8s source")

    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")]

    store = S3(
"events store")
    dw = Redshift(
"analytics")

    source >> workers >> queue >> handlers
    handlers >> store
    handlers >> dw

有状态架构图:

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")