مخطط معماري
يُستخدم مخطط البنية لعرض العلاقات بين الخدمات والموارد الشائعة في السحابة أو في عمليات نشر 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، ثم سرد المجموعات والخدمات والروابط ونقاط الاتصال. ورغم أنه يمكن الإعلان عن هذه اللبنات الثلاث بأي ترتيب، يجب التأكد من أن المعرّف قد أُعلِن مسبقًا بواسطة مكوّن آخر.
المجموعة
صيغة الإعلان عن المجموعة هي:
نسخ
تضمين
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