Diagrams ist ein OSS, das Dateien für verschiedene Architekturdiagramme generiert, indem Code in Python geschrieben wird. Die Version zum Zeitpunkt der Veröffentlichung dieses Artikels ist 0.6.2.
Es ist möglich, Architekturdiagramme von lokalen, Kubernetes, AWS, Azure, GCP, Alibaba Cloud sowie Oracle Cloud sowie Architekturdiagramme zu erstellen, die diese mischen. Dieser Artikel basiert auf OCI, aber die grundlegende Verwendung ist für andere Architekturdiagramme als OCI dieselbe. Nur die zu importierenden Pakete unterscheiden sich. Das generierte Architekturdiagramm unterscheidet sich von dem verschiedener Cloud-Standards, aber ich denke, dass es möglich ist, das Versionsmanagement des Architekturdiagramms basierend auf "Diagramm als Code" zu realisieren, das auch auf der ursprünglichen Site gesungen wird. Die Lizenz ist eine MIT-Lizenz.
Diagramme basieren auf einem OSS namens Graphviz, um Diagramme darzustellen. Um Diagramme verwenden zu können, müssen Sie zuerst Graphviz installieren. Wenn Sie Homebrew auf Ihrem Mac verwenden, können Sie es mit "Brew Install Graph Viz" installieren. Laden Sie unter Windows die Software von der Graphviz-Site herunter und installieren Sie sie. Übergeben Sie den Pfad außerdem an den Installationspfad \ bin.
Es kann durch "Pip Install Diagrams" in der Umgebung von Python3.6 oder höher installiert werden.
Dieses Mal werde ich das folgende Beispiel ausgeben. Wie im Beispiel ist auch Japanisch verfügbar.
sample.py
from diagrams import Cluster, Diagram
from diagrams.oci.compute import Vm as VM
from diagrams.oci.database import Databaseservice as DBCS
from diagrams.oci.network import Loadbalance as LB, Drg as DRG
from diagrams.oci.connectivity import Fastconnect as FC
with Diagram("OCI-Beispielarchitekturdiagramm", outformat="pdf", filename="oci_sample", show=False):
with Cluster("Sample VCN"):
drg = DRG("DRG")
with Cluster("Private Subnet"):
lb = LB("Load Balancer")
ap = [VM("Application\nServer2"), VM("Application\nServer1")]
db = DBCS("Database Server")
FC("FastConnect") >> drg >> lb >> ap >> db
Diagramme haben die Grundkonzepte Diagramm, Knoten und Cluster. Diagram Eine Klasse von Architekturdiagrammen. Da die Diagram-Klasse die with-Anweisung unterstützt, kann sie wie ein Beispiel beschrieben werden. Unten finden Sie eine Beschreibung der Beispielquellenargumente.
--name: Das erste Argument. Der Argumentname wird im Beispielcode weggelassen. Geben Sie den Titel des Diagramms an. --outformat: Geben Sie das Format der Ausgabedatei an. Wenn nicht angegeben, ist der Standardwert png. Außerdem unterstützt es jpg, svg und pdf. --filen: Geben Sie den Namen der Ausgabedatei an. Wenn nicht angegeben, ist der Standardwert der in Kleinbuchstaben konvertierte Figurentitel. --show: Verwenden Sie bool, um anzugeben, ob die Ausgabedatei im Standard-Viewer angezeigt werden soll. Der Standardwert ist True.
Die folgenden Argumente können zusätzlich zu den im Beispiel angegebenen angegeben werden.
--direction: Geben Sie die Richtung des Durchflusses an. Die folgenden 4 Typen können angegeben werden. --LR: Von links nach rechts (Standard)
Node Eine Klasse von Knoten (Instanzen, Dienste usw.). Im Beispieldiagramm gelten die Teile "DRG" oder "Database Server". Der Objektname des Knotens hat das Format "provider.resource type.name". Eine Liste der Knoten finden Sie unter hier. Das einzige Argument ist label. --label: Der Argumentname wird im Beispielcode weggelassen. Geben Sie den Titel des Knotens an.
Cluster Eine Klasse, die Knoten gruppiert. In der Beispielabbildung werden Cluster zur Darstellung von VCNs und Subnetzen verwendet. Es ist auch möglich, Cluster wie in der Beispielabbildung gezeigt zu verschachteln. Die Anzahl der Verschachtelungsebenen ist nicht besonders begrenzt. Es ist auch möglich, mehrere Cluster in derselben Hierarchie anzuzeigen. Unten finden Sie eine Beschreibung der Argumente. --label: Erstes Argument. Der Argumentname wird im Beispielcode weggelassen. Geben Sie den Titel der Gruppierung an. Wenn nicht angegeben, wird "Cluster" angezeigt. --direction: Entspricht dem Richtungsargument von Diagram.
Erstellen Sie einfach eine Instanz von Node, die in der with-Anweisung der Diagram-Klasse angezeigt werden soll, ordnen Sie sie in der Anzeigereihenfolge an und geben Sie die Richtung der Verbindungslinie zwischen den Nodes an. Geben Sie den Cluster nach Bedarf an, und die zum Cluster gehörenden Knoten werden im Cluster mit Anweisung erstellt. Es gibt drei Arten von Linienrichtungen:
: Pfeil von vorne nach hinten
Wenn Sie mit Python vertraut sind, werden Sie es wahrscheinlich nach einer Weile verstehen, wenn Sie sich das Codierungsbeispiel ansehen, mit Ausnahme der Argumenterklärungen. Zum Zeitpunkt des Schreibens des Artikels scheint die Abdeckung der unterstützten Dienste etwas schwach zu sein, aber Diagramme werden aktiv aktualisiert und werden sich voraussichtlich weiterentwickeln.