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