아키텍처 다이어그램
아키텍처 다이어그램은 클라우드 또는 CI/CD 배포에서 흔히 볼 수 있는 서비스와 리소스 간의 관계를 보여주는 데 사용됩니다. 아키텍처 다이어그램에서 서비스(노드)는 선으로 연결됩니다. 관련 서비스를 그룹에 배치하여 조직 방식을 더 잘 설명할 수 있습니다.
예시
복사
임베드
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
문법
아키텍처 다이어그램의 구성 요소는 그룹, 서비스, 연결선 및 연결점입니다.
지원 구성 요소의 경우, 아이콘은 소괄호 () 로 아이콘을 감싸 선언하고, 레이블은 대괄호 [] 로 텍스트를 감싸 선언합니다.
아키텍처 다이어그램을 시작하려면 architecture-beta 문법을 사용한 다음 그룹, 서비스, 연결선 및 연결점을 나열해야 합니다. 이 3가지 구성 요소는 임의의 순서로 선언할 수 있지만, 식별자가 다른 구성 요소에 의해 이전에 선언되었는지 확인해야 합니다.
그룹
그룹을 선언하는 문법은 다음과 같습니다:
복사
임베드
group {group id}({icon name})[{title}] (in {parent id})?
조합 후:
복사
임베드
group public_api(cloud)[Public API]
public_api 라는 이름의 그룹을 생성하고, cloud 아이콘을 사용하며, Public API 레이블을 가집니다.
또한 선택적 in 문법을 사용하여 그룹을 다른 그룹 안에 배치할 수 있습니다.
복사
임베드
group private_api(cloud)[Private API] in public_api
서비스
서비스를 선언하는 문법은 다음과 같습니다:
복사
임베드
service {service id}({icon name})[{title}] (in {parent id})?
조합 후:
복사
임베드
service database1(database)[My Database]
database1 이라는 이름의 서비스를 생성하고, database 아이콘을 사용하며, 레이블은 My Database 입니다.
해당 서비스가 어떤 그룹에 속하면 선택적 in 문법을 사용하여 그 안에 배치할 수 있습니다.
복사
임베드
service database1(database)[My Database] in private_api
연결선
연결선을 선언하는 문법은 다음과 같습니다:
복사
임베드
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?
연결선 방향
연결선이 서비스의 어느 쪽에서 나오는지는 연결 화살표의 서비스 측에 콜론 : 을 추가하고 L|R|T|B 를 붙여 지정할 수 있습니다.
예:
복사
임베드
db:R -- L:server
서비스 db 와 server 사이에 연결선을 생성하며, 이 연결선은 db 의 오른쪽에서 server 의 왼쪽으로 연장됩니다.
복사
임베드
db:T -- L:server
서비스 db 와 server 사이에 90도 연결선을 생성하며, 이 연결선은 db 의 상단과 server 의 왼쪽에서 연장됩니다.
화살표
왼쪽 방향 앞에 < 를 추가하거나 오른쪽 방향 뒤에 > 를 추가하여 연결선의 각 측면에 화살표를 추가할 수 있습니다.
예:
복사
임베드
subnet:R --> L:gateway
gateway 서비스를 가리키는 화살표 연결선을 생성합니다.
그룹 외부의 연결선
연결선을 한 그룹에서 다른 그룹이나 다른 그룹 내의 서비스로 이동하려면 serviceId 뒤에 {group} 수정자를 추가할 수 있습니다.
예:
복사
임베드
service server[Server] in groupOne
service subnet[Subnet] in groupTwo
server{group}:B --> T:subnet{group}
groupOne 에서 출발하여 server 인접 위치에 연결되고, 그런 다음 groupTwo 로 들어가 subnet 인접 위치에 연결되는 연결선을 생성합니다.
주의할 점은 groupId 는 연결선을 지정하는 데 사용할 수 없으며, {group} 수정자는 그룹 내의 서비스에만 사용할 수 있다는 것입니다.
연결점
연결점은 연결선의 잠재적인 사방 분기점 역할을 할 수 있는 특수한 유형의 노드입니다.
연결점을 선언하는 문법은 다음과 같습니다:
복사
임베드
junction {junction id} (in {parent id})?
복사
임베드
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