Rajah Seni Bina
Carta seni bina digunakan untuk memaparkan hubungan antara perkhidmatan dan sumber yang biasa dalam penggelaran awan atau CI/CD. Dalam carta seni bina, perkhidmatan (nod) disambung melalui garisan. Perkhidmatan berkaitan boleh diletakkan dalam kumpulan, untuk menerangkan cara organisasinya dengan lebih baik.
Contoh
Salin
Benamkan
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
Sintaks
Blok binaan carta seni bina ialah: kumpulan, perkhidmatan, pautan dan titik sambungan.
Bagi komponen yang disokong, ikon diisytiharkan dengan mengapit ikon dalam kurungan kecil (), manakala label diisytiharkan dengan mengapit teks dalam pendakap sederhana [].
Untuk memulakan carta seni bina, sintaks architecture-beta perlu digunakan, kemudian senaraikan kumpulan, perkhidmatan, pautan dan titik sambungan. Walaupun 3 blok binaan ini boleh diisytiharkan dalam sebarang susunan, pastikan pengecam telah diisytiharkan terlebih dahulu oleh komponen lain.
Kumpulan
Sintaks untuk mengisytiharkan kumpulan ialah:
Salin
Benamkan
group {group id}({icon name})[{title}] (in {parent id})?
Selepas digabungkan:
Salin
Benamkan
group public_api(cloud)[Public API]
Mencipta satu kumpulan bernama public_api, menggunakan ikon cloud, dengan label Public API.
Selain itu, sintaks in pilihan boleh digunakan untuk meletakkan kumpulan dalam kumpulan lain.
Salin
Benamkan
group private_api(cloud)[Private API] in public_api
Perkhidmatan
Sintaks untuk mengisytiharkan perkhidmatan ialah:
Salin
Benamkan
service {service id}({icon name})[{title}] (in {parent id})?
Selepas digabungkan:
Salin
Benamkan
service database1(database)[My Database]
Mencipta perkhidmatan bernama database1, menggunakan ikon database, dengan label My Database.
Jika perkhidmatan itu tergolong dalam sesuatu kumpulan, ia boleh diletakkan di dalamnya melalui sintaks in pilihan
Salin
Benamkan
service database1(database)[My Database] in private_api
Pautan
Sintaks untuk mengisytiharkan pautan ialah:
Salin
Benamkan
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?
Arah pautan
Dari sisi mana perkhidmatan pautan keluar boleh ditentukan dengan menambah titik bertindih : pada sisi perkhidmatan anak panah sambungan dan menambah L|R|T|B.
Contohnya:
Salin
Benamkan
db:R -- L:server
Mencipta satu pautan antara perkhidmatan db dan server; pautan ini memanjang dari sebelah kanan db ke sebelah kiri server.
Salin
Benamkan
db:T -- L:server
Mencipta satu pautan 90 darjah antara perkhidmatan db dan server; pautan ini memanjang dari bahagian atas db dan sebelah kiri server.
Anak panah
Dengan menambah < sebelum arah kiri, atau > selepas arah kanan, anak panah boleh ditambah pada setiap sisi pautan.
Contohnya:
Salin
Benamkan
subnet:R --> L:gateway
Mencipta satu pautan dengan anak panah yang menunjuk ke perkhidmatan gateway.
Pautan luar kumpulan
Untuk membuat pautan berpindah dari satu kumpulan ke kumpulan lain atau ke perkhidmatan dalam kumpulan lain, pengubah suai {group} boleh ditambah selepas serviceId.
Contohnya:
Salin
Benamkan
service server[Server] in groupOne
service subnet[Subnet] in groupTwo
server{group}:B --> T:subnet{group}
Mencipta satu pautan, bermula dari groupOne, bersambung ke kedudukan berhampiran server, kemudian masuk ke groupTwo, bersambung ke kedudukan berhampiran subnet.
Perlu diberi perhatian bahawa groupId tidak boleh digunakan untuk menentukan pautan, manakala pengubah suai {group} hanya boleh digunakan untuk perkhidmatan dalam kumpulan.
Titik sambungan
Titik sambungan ialah sejenis nod khas, ia boleh berfungsi sebagai titik cabang empat arah yang berpotensi bagi pautan.
Sintaks untuk mengisytiharkan titik sambungan ialah:
Salin
Benamkan
junction {junction id} (in {parent id})?
Salin
Benamkan
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