Register
Process Type
Graphical expression
Mind Type
Structured expression
Note Type
Efficient expression

Diagram architekturySyntaxe

Diagram architektury

Architektonický diagram slouží k znázornění vztahů mezi službami a zdroji běžnými v cloudovém nebo CI/CD nasazení. V architektonickém diagramu jsou služby (uzly) propojeny čarami. Související služby lze umístit do skupin, aby byla lépe zřejmá jejich organizace.

Příklad

Kód
                            
Kopírovat
Vložení
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

Syntaxe

Stavebními prvky architektonického diagramu jsou: skupiny, služby, spoje a spojovací body.

U podporovaných komponent se ikona deklaruje uzavřením ikony do kulatých závorek () a popisek deklaruje uzavřením textu do hranatých závorek [].

Chcete-li začít architektonický diagram, je třeba použít syntaxi architecture-beta a poté uvést skupiny, služby, spoje a spojovací body. Ačkoli tyto 3 stavební prvky lze deklarovat v libovolném pořadí, musíte zajistit, aby byl identifikátor již dříve deklarován jinou komponentou.

Skupina

Syntaxe pro deklaraci skupiny je:

                            
Kopírovat
Vložení
group {group id}({icon name})[{title}] (in {parent id})?

Po složení:

                            
Kopírovat
Vložení
group public_api(cloud)[Public API]

Vytvoří skupinu s názvem public_api, s ikonou cloud a popiskem Public API.

Kromě toho lze pomocí volitelné syntaxe in umístit skupinu do jiné skupiny.

                            
Kopírovat
Vložení
group private_api(cloud)[Private API] in public_api

Služba

Syntaxe pro deklaraci služby je:

                            
Kopírovat
Vložení
service {service id}({icon name})[{title}] (in {parent id})?

Po složení:

                            
Kopírovat
Vložení
service database1(database)[My Database]

Vytvoří službu s názvem database1, s ikonou database a popiskem My Database.

Pokud služba patří do určité skupiny, můžete ji do ní umístit pomocí volitelné syntaxe in

                            
Kopírovat
Vložení
service database1(database)[My Database] in private_api

Spoj

Syntaxe pro deklaraci spoje je:

                            
Kopírovat
Vložení
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?

Směr spoje

Na které straně služby spoj vychází, lze určit přidáním dvojtečky : na stranu služby u spoje a doplněním L|R|T|B.

Například:

                            
Kopírovat
Vložení
db:R -- L:server

Vytvoří spoj mezi službami db a server, který vede z pravé strany db na levou stranu serveru.

                            
Kopírovat
Vložení
db:T -- L:server

Vytvoří spoj pod úhlem 90 stupňů mezi službami db a server, který vychází z horní strany db a levé strany serveru.

Šipka

Přidáním < před levý směr nebo > za pravý směr můžete na každou stranu spoje přidat šipku.

Například:

                            
Kopírovat
Vložení
subnet:R --> L:gateway

Vytvoří spoj se šipkou směřující ke službě gateway.

Spoj mimo skupinu

Chcete-li, aby spoj přešel ze skupiny do jiné skupiny nebo ke službě v jiné skupině, můžete za serviceId přidat modifikátor {group}.

Například:

                            
Kopírovat
Vložení
service server[Server] in groupOne service subnet[Subnet] in groupTwo server{group}:B --> T:subnet{group}

Vytvoří spoj, který vychází ze skupiny groupOne, připojuje se k blízkosti serveru, poté vstupuje do groupTwo a připojuje se k blízkosti subnetu.

Je třeba poznamenat, že groupId nelze použít pro určení spoje a modifikátor {group} lze použít pouze pro služby ve skupině.

Spojovací bod

Spojovací bod je speciální typ uzlu, který může sloužit jako potenciální čtyřsměrný bod větvení spoje.

Syntaxe pro deklaraci spojovacího bodu je:

                            
Kopírovat
Vložení
junction {junction id} (in {parent id})?
Kód
                            
Kopírovat
Vložení
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