Processo Tipo
Expressão gráfica
Pensamento Tipo
Expressão estruturada
Anotações Tipo
Expressão eficiente

Diagrama de arquiteturaSintaxe

Diagrama de arquitetura

O diagrama de arquitetura é usado para exibir as relações entre serviços e recursos comuns em implantações em nuvem ou CI/CD. No diagrama de arquitetura, os serviços (nós) são conectados por linhas. Serviços relacionados podem ser colocados em grupos, para ilustrar melhor como estão organizados.

Exemplo

Código
                            
Copiar
Incorporar
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

Sintaxe

Os blocos de construção do diagrama de arquitetura são: grupos, serviços, linhas de conexão e pontos de conexão.

Para componentes com suporte, os ícones são declarados entre parênteses () e os rótulos são declarados com o texto entre colchetes [].

Para iniciar um diagrama de arquitetura, é preciso usar a sintaxe architecture-beta e, em seguida, listar grupos, serviços, linhas de conexão e pontos de conexão. Embora esses 3 blocos de construção possam ser declarados em qualquer ordem, é preciso garantir que o identificador já tenha sido declarado anteriormente por outro componente.

Grupo

A sintaxe para declarar um grupo é:

                            
Copiar
Incorporar
group {group id}({icon name})[{title}] (in {parent id})?

Combinado:

                            
Copiar
Incorporar
group public_api(cloud)[Public API]

Cria um grupo chamado public_api, usando o ícone cloud, com o rótulo Public API.

Além disso, é possível colocar um grupo dentro de outro usando a sintaxe opcional in.

                            
Copiar
Incorporar
group private_api(cloud)[Private API] in public_api

Serviço

A sintaxe para declarar um serviço é:

                            
Copiar
Incorporar
service {service id}({icon name})[{title}] (in {parent id})?

Combinado:

                            
Copiar
Incorporar
service database1(database)[My Database]

Cria um serviço chamado database1, usando o ícone database, com o rótulo My Database.

Se o serviço pertencer a um grupo, é possível colocá-lo nele usando a sintaxe opcional in

                            
Copiar
Incorporar
service database1(database)[My Database] in private_api

Linha de conexão

A sintaxe para declarar uma linha de conexão é:

                            
Copiar
Incorporar
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?

Direção da linha de conexão

De qual lado do serviço a linha de conexão sai pode ser especificado adicionando dois-pontos : ao lado do serviço na seta de conexão e acrescentando L|R|T|B.

Por exemplo:

                            
Copiar
Incorporar
db:R -- L:server

Cria uma linha de conexão entre os serviços db e server; essa linha vai do lado direito de db até o lado esquerdo de server.

                            
Copiar
Incorporar
db:T -- L:server

Cria uma linha de conexão de 90 graus entre os serviços db e server; essa linha sai do topo de db e do lado esquerdo de server.

Setas

É possível adicionar setas em cada lado da linha de conexão adicionando < antes da direção à esquerda, ou > depois da direção à direita.

Por exemplo:

                            
Copiar
Incorporar
subnet:R --> L:gateway

Cria uma linha de conexão com uma seta apontando para o serviço gateway.

Linha de conexão fora do grupo

Para fazer uma linha de conexão passar de um grupo para outro grupo ou para um serviço dentro de outro grupo, adicione o modificador {group} após o serviceId.

Por exemplo:

                            
Copiar
Incorporar
service server[Server] in groupOne service subnet[Subnet] in groupTwo server{group}:B --> T:subnet{group}

Cria uma linha de conexão que parte de groupOne, conecta-se à proximidade de server e, em seguida, entra em groupTwo, conectando-se à proximidade de subnet.

Vale observar que o groupId não pode ser usado para especificar uma linha de conexão, e o modificador {group} só pode ser usado para serviços dentro de um grupo.

Ponto de conexão

O ponto de conexão é um tipo especial de nó que pode servir como ponto potencial de bifurcação em quatro direções de uma linha de conexão.

A sintaxe para declarar um ponto de conexão é:

                            
Copiar
Incorporar
junction {junction id} (in {parent id})?
Código
                            
Copiar
Incorporar
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