Proces Typ
Wyrażenie graficzne
Myślenie Typ
Wyrażenie strukturalne
Notatki Typ
Efektywne wyrażanie

Diagram architekturySkładnia

Diagram architektury

Diagram architektury służy do pokazywania relacji między usługami i zasobami powszechnymi w chmurze lub wdrożeniach CI/CD. Na diagramie architektury usługi (węzły) są połączone liniami. Powiązane usługi można umieścić w grupach, aby lepiej zilustrować sposób ich organizacji.

Przykład

Kod
                            
Kopiuj
Osadź
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

Składnia

Elementami składowymi diagramu architektury są: grupy, usługi, łącza i punkty połączenia.

W przypadku obsługiwanych komponentów ikonę deklaruje się, ujmując ją w nawiasy okrągłe (), a etykietę deklaruje się, ujmując tekst w nawiasy kwadratowe [].

Aby rozpocząć diagram architektury, należy użyć składni architecture-beta, a następnie wymienić grupy, usługi, łącza i punkty połączenia. Chociaż te 3 elementy składowe można deklarować w dowolnej kolejności, należy upewnić się, że identyfikator został wcześniej zadeklarowany przez inny komponent.

Grupa

Składnia deklarowania grupy to:

                            
Kopiuj
Osadź
group {group id}({icon name})[{title}] (in {parent id})?

Po połączeniu:

                            
Kopiuj
Osadź
group public_api(cloud)[Public API]

Utworzono grupę o nazwie public_api, używa ikony cloud i ma etykietę Public API.

Ponadto można użyć opcjonalnej składni in, aby umieścić grupę w innej grupie.

                            
Kopiuj
Osadź
group private_api(cloud)[Private API] in public_api

Usługa

Składnia deklarowania usługi to:

                            
Kopiuj
Osadź
service {service id}({icon name})[{title}] (in {parent id})?

Po połączeniu:

                            
Kopiuj
Osadź
service database1(database)[My Database]

Utworzono usługę o nazwie database1, używa ikony database, z etykietą My Database.

Jeśli usługa należy do grupy, można umieścić ją w niej za pomocą opcjonalnej składni in

                            
Kopiuj
Osadź
service database1(database)[My Database] in private_api

Łącze

Składnia deklarowania łącza to:

                            
Kopiuj
Osadź
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?

Kierunek łącza

Z której strony usługi wychodzi łącze, można określić, dodając dwukropek : po stronie usługi przy strzałce połączenia oraz oznaczenie L|R|T|B.

Na przykład:

                            
Kopiuj
Osadź
db:R -- L:server

Utwórz łącze między usługami db i server, które rozciąga się od prawej strony db do lewej strony server.

                            
Kopiuj
Osadź
db:T -- L:server

Utwórz łącze 90-stopniowe między usługami db i server, które wychodzi od góry db i lewej strony server.

Strzałka

Dodając < przed kierunkiem po lewej stronie lub > po kierunku po prawej stronie, można dodać strzałkę po każdej stronie łącza.

Na przykład:

                            
Kopiuj
Osadź
subnet:R --> L:gateway

Utwórz łącze ze strzałką wskazującą na usługę gateway.

Łącze poza grupą

Aby łącze przechodziło z jednej grupy do innej grupy lub usługi wewnątrz innej grupy, można dodać modyfikator {group} po serviceId.

Na przykład:

                            
Kopiuj
Osadź
service server[Server] in groupOne service subnet[Subnet] in groupTwo server{group}:B --> T:subnet{group}

Utwórz łącze wychodzące z groupOne, łączące się w pobliżu server, a następnie wchodzące do groupTwo i łączące się w pobliżu subnet.

Należy zauważyć, że groupId nie można użyć do określenia łącza, a modyfikator {group} można stosować tylko do usług wewnątrz grupy.

Punkt połączenia

Punkt połączenia to specjalny typ węzła, który może służyć jako potencjalny czterokierunkowy punkt rozgałęzienia łączy.

Składnia deklarowania punktu połączenia to:

                            
Kopiuj
Osadź
junction {junction id} (in {parent id})?
Kod
                            
Kopiuj
Osadź
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