Arkitekturdiagram
Arkitekturdiagrammer brukes til å vise forholdet mellom tjenester og ressurser som er vanlige i sky- eller CI/CD-utrullinger. I et arkitekturdiagram kobles tjenester (noder) sammen med linjer. Relaterte tjenester kan plasseres i grupper for bedre å illustrere hvordan de er organisert.
Eksempel
Kopier
Bygg inn
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
Syntaks
Byggesteinene i arkitekturdiagrammet er: grupper, tjenester, lenker og koblingspunkter.
For komponenter som støttes, deklareres ikoner ved å omslutte ikonet med parenteser (), mens etiketter deklareres ved å omslutte teksten med hakeparenteser [].
For å starte et arkitekturdiagram bruker du architecture-beta -syntaksen, og deretter lister du opp grupper, tjenester, lenker og koblingspunkter. Selv om disse 3 byggesteinene kan deklareres i vilkårlig rekkefølge, må du sikre at identifikatoren allerede er deklarert av en annen komponent.
Gruppe
Syntaksen for å deklarere en gruppe er:
Kopier
Bygg inn
group {group id}({icon name})[{title}] (in {parent id})?
Satt sammen:
Kopier
Bygg inn
group public_api(cloud)[Public API]
opprettes en gruppe kalt public_api , med ikonet cloud og etiketten Public API .
I tillegg kan du bruke den valgfrie in -syntaksen til å plassere en gruppe i en annen gruppe.
Kopier
Bygg inn
group private_api(cloud)[Private API] in public_api
Tjeneste
Syntaksen for å deklarere en tjeneste er:
Kopier
Bygg inn
service {service id}({icon name})[{title}] (in {parent id})?
Satt sammen:
Kopier
Bygg inn
service database1(database)[My Database]
opprettes en tjeneste kalt database1 , med ikonet database og etiketten My Database .
Hvis tjenesten tilhører en gruppe, kan du plassere den der med den valgfrie in -syntaksen
Kopier
Bygg inn
service database1(database)[My Database] in private_api
Lenke
Syntaksen for å deklarere en lenke er:
Kopier
Bygg inn
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?
Lenkeretning
Hvilken side av tjenesten linjen kommer ut fra, kan angis ved å legge til et kolon : på den siden av tjenesten som koblingspilen er på, og legge til L|R|T|B .
For eksempel:
Kopier
Bygg inn
db:R -- L:server
Opprett en lenke mellom tjenestene db og server , der denne lenken strekker seg fra høyre side av db til venstre side av server .
Kopier
Bygg inn
db:T -- L:server
Opprett en 90-graders lenke mellom tjenestene db og server , der denne lenken går ut fra toppen av db og til venstre side av server .
Piler
Ved å legge til < før retningen på venstre side, eller > etter retningen på høyre side, kan du legge til piler på hver side av lenken.
For eksempel:
Kopier
Bygg inn
subnet:R --> L:gateway
Opprett en lenke med en pil som peker mot tjenesten gateway .
Lenker utenfor grupper
For å la en lenke gå fra én gruppe til en annen gruppe eller til en tjeneste i en annen gruppe, kan du legge til {group} -modifikatoren etter serviceId .
For eksempel:
Kopier
Bygg inn
service server[Server] in groupOne
service subnet[Subnet] in groupTwo
server{group}:B --> T:subnet{group}
Opprett en lenke som starter fra groupOne , kobles til i nærheten av server , og deretter går inn i groupTwo og kobles til i nærheten av subnet .
Det er viktig å merke seg at groupId ikke kan brukes til å angi lenker, og {group} -modifikatoren kan bare brukes for tjenester inne i en gruppe.
Koblingspunkt
Et koblingspunkt er en spesiell type node som kan fungere som et potensielt fireveis forgreiningspunkt for lenker.
Syntaksen for å deklarere et koblingspunkt er:
Kopier
Bygg inn
junction {junction id} (in {parent id})?
Kopier
Bygg inn
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