Prozess Typ
Grafischer Ausdruck
Denken Typ
Strukturierter Ausdruck
Notizen Typ
Effizienter Ausdruck

ArchitekturdiagrammSyntax

Architekturdiagramm

Architekturdiagramme werden verwendet, um die Beziehungen zwischen Diensten und Ressourcen darzustellen, die in Cloud- oder CI/CD-Bereitstellungen üblich sind. In einem Architekturdiagramm werden Dienste (Knoten) durch Linien verbunden. Zugehörige Dienste können in Gruppen zusammengefasst werden, um ihre Organisation besser zu veranschaulichen.

Beispiel

Code
                            
Kopieren
Einbetten
architecture-beta group api(cloud)[API] service db(database)[Database] in api service disk1(disk)[Storage] in api service disk2(disk)[Storage] in api service server(server)[Server] in api db:L -- R:server disk1:T -- B:server disk2:T -- B:db

Syntax

Die Bausteine eines Architekturdiagramms sind: Gruppen, Dienste, Verbindungen und Verbindungspunkte.

Für unterstützte Komponenten wird das Icon deklariert, indem es in runde Klammern () gesetzt wird, während das Label deklariert wird, indem der Text in eckige Klammern [] gesetzt wird.

Um ein Architekturdiagramm zu beginnen, verwendest du die architecture-beta-Syntax und listest dann Gruppen, Dienste, Verbindungen und Verbindungspunkte auf. Obwohl diese 3 Bausteine in beliebiger Reihenfolge deklariert werden können, muss sichergestellt werden, dass der Bezeichner zuvor von einer anderen Komponente deklariert wurde.

Gruppe

Die Syntax zum Deklarieren einer Gruppe lautet:

                            
Kopieren
Einbetten
group {group id}({icon name})[{title}] (in {parent id})?

Nach der Kombination:

                            
Kopieren
Einbetten
group public_api(cloud)[Public API]

Es wurde eine Gruppe namens public_api erstellt, unter Verwendung des Icons cloud und mit dem Label Public API.

Außerdem kann mit der optionalen in-Syntax eine Gruppe in einer anderen Gruppe platziert werden.

                            
Kopieren
Einbetten
group private_api(cloud)[Private API] in public_api

Dienst

Die Syntax zum Deklarieren eines Dienstes lautet:

                            
Kopieren
Einbetten
service {service id}({icon name})[{title}] (in {parent id})?

Nach der Kombination:

                            
Kopieren
Einbetten
service database1(database)[My Database]

Erstellt einen Dienst namens database1, unter Verwendung des Icons database, mit dem Label My Database.

Wenn der Dienst zu einer Gruppe gehört, kann er mit der optionalen in-Syntax darin platziert werden

                            
Kopieren
Einbetten
service database1(database)[My Database] in private_api

Verbindung

Die Syntax zum Deklarieren einer Verbindung lautet:

                            
Kopieren
Einbetten
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?

Verbindungsrichtung

Auf welcher Seite des Dienstes die Verbindung austritt, kann angegeben werden, indem auf der Dienstseite des Verbindungspfeils ein Doppelpunkt : und L|R|T|B hinzugefügt wird.

Zum Beispiel:

                            
Kopieren
Einbetten
db:R -- L:server

Erstellt eine Verbindung zwischen den Diensten db und server, die von der rechten Seite von db zur linken Seite von server verläuft.

                            
Kopieren
Einbetten
db:T -- L:server

Erstellt eine 90-Grad-Verbindung zwischen den Diensten db und server, die von der Oberseite von db und der linken Seite von server ausgeht.

Pfeile

Indem du auf der linken Richtung ein < davor oder auf der rechten Richtung ein > danach hinzufügst, kann auf jeder Seite der Verbindung ein Pfeil hinzugefügt werden.

Zum Beispiel:

                            
Kopieren
Einbetten
subnet:R --> L:gateway

Erstellt eine Verbindung, deren Pfeil auf den Dienst gateway zeigt.

Verbindungen außerhalb von Gruppen

Um eine Verbindung von einer Gruppe zu einer anderen Gruppe oder einem Dienst in einer anderen Gruppe zu führen, kannst du nach der serviceId einen {group}-Modifikator hinzufügen.

Zum Beispiel:

                            
Kopieren
Einbetten
service server[Server] in groupOne service subnet[Subnet] in groupTwo server{group}:B --> T:subnet{group}

Erstellt eine Verbindung, die von groupOne ausgeht, sich an eine Position neben server anschließt und dann in groupTwo eintritt und sich an eine Position neben subnet anschließt.

Es ist zu beachten, dass eine groupId nicht zur Angabe einer Verbindung verwendet werden kann und der {group}-Modifikator nur für Dienste innerhalb einer Gruppe verwendet werden kann.

Verbindungspunkt

Ein Verbindungspunkt ist ein besonderer Knotentyp, der als potenzieller vierteiliger Verzweigungspunkt einer Verbindung dienen kann.

Die Syntax zum Deklarieren eines Verbindungspunkts lautet:

                            
Kopieren
Einbetten
junction {junction id} (in {parent id})?
Code
                            
Kopieren
Einbetten
architecture-beta service left_disk(disk)[Disk] service top_disk(disk)[Disk] service bottom_disk(disk)[Disk] service top_gateway(internet)[Gateway] service bottom_gateway(internet)[Gateway] junction junctionCenter junction junctionRight left_disk:R -- L:junctionCenter top_disk:B -- T:junctionCenter bottom_disk:T -- B:junctionCenter junctionCenter:R -- L:junctionRight top_gateway:B -- T:junctionRight bottom_gateway:T -- B:junctionRight