Quy Trình Loại
Biểu thức đồ họa
Suy Nghĩ Loại
Biểu thức có cấu trúc
Ghi Chú Loại
Biểu thức hiệu quả

Architecture DiagramCú pháp

Architecture Diagram

Sơ đồ kiến trúc dùng để thể hiện mối quan hệ giữa các dịch vụ và tài nguyên thường gặp trong triển khai đám mây hoặc CI/CD. Trong sơ đồ kiến trúc, các dịch vụ (nút) được kết nối bằng đường. Các dịch vụ liên quan có thể được đặt trong nhóm, để minh họa rõ hơn cách chúng được tổ chức.

Ví dụ

Mã
                            
Sao chép
Nhúng
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

Cú pháp

Các khối xây dựng của sơ đồ kiến trúc là: nhóm, dịch vụ, đường kết nối và điểm kết nối.

Đối với thành phần được hỗ trợ, biểu tượng được khai báo bằng cách bao biểu tượng trong dấu ngoặc đơn (), còn nhãn được khai báo bằng cách bao văn bản trong dấu ngoặc vuông [].

Để bắt đầu sơ đồ kiến trúc, cần dùng cú pháp architecture-beta, rồi liệt kê nhóm, dịch vụ, đường kết nối và điểm kết nối. Mặc dù 3 khối xây dựng này có thể được khai báo theo bất kỳ thứ tự nào, nhưng phải đảm bảo mã định danh đã được một thành phần khác khai báo trước đó.

Nhóm

Cú pháp khai báo nhóm là:

                            
Sao chép
Nhúng
group {group id}({icon name})[{title}] (in {parent id})?

Sau khi kết hợp:

                            
Sao chép
Nhúng
group public_api(cloud)[Public API]

Tạo một nhóm tên là public_api, dùng biểu tượng cloud, và có nhãn Public API.

Ngoài ra, có thể dùng cú pháp in tùy chọn để đặt nhóm này vào trong một nhóm khác.

                            
Sao chép
Nhúng
group private_api(cloud)[Private API] in public_api

Dịch vụ

Cú pháp khai báo dịch vụ là:

                            
Sao chép
Nhúng
service {service id}({icon name})[{title}] (in {parent id})?

Sau khi kết hợp:

                            
Sao chép
Nhúng
service database1(database)[My Database]

Tạo dịch vụ tên là database1, dùng biểu tượng database, nhãn là My Database.

Nếu dịch vụ này thuộc một nhóm nào đó, có thể đặt nó vào trong đó bằng cú pháp in tùy chọn

                            
Sao chép
Nhúng
service database1(database)[My Database] in private_api

Đường kết nối

Cú pháp khai báo đường kết nối là:

                            
Sao chép
Nhúng
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?

Hướng đường kết nối

Đường kết nối đi ra từ phía nào của dịch vụ, có thể chỉ định bằng cách thêm dấu hai chấm : vào phía dịch vụ của mũi tên kết nối và thêm L|R|T|B.

Ví dụ:

                            
Sao chép
Nhúng
db:R -- L:server

Tạo một đường kết nối giữa dịch vụ db và server, đường này kéo dài từ phía bên phải của db đến phía bên trái của server.

                            
Sao chép
Nhúng
db:T -- L:server

Tạo một đường kết nối 90 độ giữa dịch vụ db và server, đường này kéo dài từ phía trên của db và phía bên trái của server.

Mũi tên

Bằng cách thêm < trước hướng bên trái, hoặc thêm > sau hướng bên phải, có thể thêm mũi tên ở mỗi bên của đường kết nối.

Ví dụ:

                            
Sao chép
Nhúng
subnet:R --> L:gateway

Tạo một đường kết nối có mũi tên trỏ tới dịch vụ gateway.

Đường kết nối ra ngoài nhóm

Để đường kết nối chuyển từ nhóm này sang nhóm khác hoặc sang dịch vụ trong nhóm khác, có thể thêm bổ ngữ {group} sau serviceId.

Ví dụ:

                            
Sao chép
Nhúng
service server[Server] in groupOne service subnet[Subnet] in groupTwo server{group}:B --> T:subnet{group}

Tạo một đường kết nối, xuất phát từ groupOne, kết nối tới vị trí lân cận của server, rồi đi vào groupTwo, kết nối tới vị trí lân cận của subnet.

Cần lưu ý rằng, groupId không thể dùng để chỉ định đường kết nối, còn bổ ngữ {group} chỉ có thể dùng cho dịch vụ bên trong nhóm.

Điểm kết nối

Điểm kết nối là một loại nút đặc biệt, nó có thể đóng vai trò là điểm phân nhánh bốn hướng tiềm năng cho đường kết nối.

Cú pháp khai báo điểm kết nối là:

                            
Sao chép
Nhúng
junction {junction id} (in {parent id})?
Mã
                            
Sao chép
Nhúng
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