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