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
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})?
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