ลงทะเบียน
ชั้นเรียนกระบวนการ
การแสดงออกทางกราฟิก
การคิด
การแสดงออกที่มีโครงสร้าง
หมายเหตุ
การแสดงออกอย่างมีประสิทธิภาพ

แผนภาพสถาปัตยกรรมไวยากรณ์

แผนภาพสถาปัตยกรรม

แผนภาพสถาปัตยกรรมใช้แสดงความสัมพันธ์ระหว่างบริการและทรัพยากรที่พบบ่อยในการปรับใช้บนคลาวด์หรือ 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

สร้างเส้นเชื่อมต่อ 90 องศาระหว่างบริการ db และ server โดยเส้นเชื่อมต่อนี้ทอดจากด้านบนของ db และด้านซ้ายของ server

ลูกศร

สามารถเพิ่มลูกศรที่แต่ละด้านของเส้นเชื่อมต่อได้โดยใส่ < หน้าทิศทางด้านซ้าย หรือใส่ > หลังทิศทางด้านขวา

ตัวอย่าง:

                            
คัดลอก
ฝัง
subnet:R --> L:gateway

สร้างเส้นเชื่อมต่อที่มีลูกศรชี้ไปยังบริการ gateway

เส้นเชื่อมต่อนอกกลุ่ม

หากต้องการให้เส้นเชื่อมต่อย้ายจากกลุ่มหนึ่งไปยังอีกกลุ่มหนึ่งหรือบริการภายในอีกกลุ่มหนึ่ง สามารถเพิ่มตัวปรับแต่ง {group} หลัง serviceId ได้

ตัวอย่าง:

                            
คัดลอก
ฝัง
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