Diagram Arsitektur
Diagram arsitektur digunakan untuk menampilkan hubungan antar layanan dan sumber daya yang umum ditemukan dalam penyebaran cloud atau CI/CD. Dalam diagram arsitektur, layanan (simpul) dihubungkan melalui garis. Layanan yang terkait dapat ditempatkan dalam grup, untuk lebih baik mengilustrasikan cara pengorganisasiannya.
Contoh
Salin
Sematkan
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 bangunan diagram arsitektur adalah: grup, layanan, tautan, dan titik koneksi.
Untuk komponen yang didukung, ikon dideklarasikan dengan membungkus ikon menggunakan tanda kurung biasa (), sedangkan label dideklarasikan dengan membungkus teks menggunakan tanda kurung siku [].
Untuk memulai diagram arsitektur, Anda perlu menggunakan sintaks architecture-beta, lalu mencantumkan grup, layanan, tautan, dan titik koneksi. Meskipun 3 blok bangunan ini dapat dideklarasikan dalam urutan apa pun, Anda harus memastikan bahwa pengenalnya telah dideklarasikan sebelumnya oleh komponen lain.
Grup
Sintaks untuk mendeklarasikan grup adalah:
Salin
Sematkan
group {group id}({icon name})[{title}] (in {parent id})?
Setelah digabungkan:
Salin
Sematkan
group public_api(cloud)[Public API]
Membuat grup bernama public_api, menggunakan ikon cloud, dan dengan label Public API.
Selain itu, Anda dapat menggunakan sintaks in opsional untuk menempatkan grup di dalam grup lain.
Salin
Sematkan
group private_api(cloud)[Private API] in public_api
Layanan
Sintaks untuk mendeklarasikan layanan adalah:
Salin
Sematkan
service {service id}({icon name})[{title}] (in {parent id})?
Setelah digabungkan:
Salin
Sematkan
service database1(database)[My Database]
Membuat layanan bernama database1, menggunakan ikon database, dengan label My Database.
Jika layanan tersebut termasuk dalam suatu grup, Anda dapat menempatkannya di dalamnya menggunakan sintaks in opsional
Salin
Sematkan
service database1(database)[My Database] in private_api
Tautan
Sintaks untuk mendeklarasikan tautan adalah:
Salin
Sematkan
{serviceId}{{group}}?:{T|B|L|R} {<}?--{>}? {T|B|L|R}:{serviceId}{{group}}?
Arah tautan
Dari sisi mana layanan tautan keluar dapat ditentukan dengan menambahkan titik dua : pada sisi layanan dari panah koneksi dan menambahkan L|R|T|B.
Misalnya:
Salin
Sematkan
db:R -- L:server
Membuat tautan antara layanan db dan server, tautan ini membentang dari sisi kanan db ke sisi kiri server.
Salin
Sematkan
db:T -- L:server
Membuat tautan 90 derajat antara layanan db dan server, tautan ini keluar dari bagian atas db dan sisi kiri server.
Panah
Dengan menambahkan < sebelum arah sisi kiri, atau menambahkan > setelah arah sisi kanan, Anda dapat menambahkan panah pada setiap sisi tautan.
Misalnya:
Salin
Sematkan
subnet:R --> L:gateway
Membuat tautan dengan panah yang menunjuk ke layanan gateway.
Tautan di luar grup
Untuk memindahkan tautan dari satu grup ke grup lain atau ke layanan di dalam grup lain, Anda dapat menambahkan pengubah {group} setelah serviceId.
Misalnya:
Salin
Sematkan
service server[Server] in groupOne
service subnet[Subnet] in groupTwo
server{group}:B --> T:subnet{group}
Membuat tautan, yang berangkat dari groupOne, terhubung ke posisi dekat server, lalu masuk ke groupTwo, dan terhubung ke posisi dekat subnet.
Perlu diperhatikan bahwa groupId tidak dapat digunakan untuk menentukan tautan, sedangkan pengubah {group} hanya dapat digunakan untuk layanan di dalam grup.
Titik koneksi
Titik koneksi adalah jenis simpul khusus, yang dapat berfungsi sebagai titik percabangan empat arah potensial untuk tautan.
Sintaks untuk mendeklarasikan titik koneksi adalah:
Salin
Sematkan
junction {junction id} (in {parent id})?
Salin
Sematkan
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