आर्किटेक्चर डायग्राम
आर्किटेक्चर डायग्राम क्लाउड या 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
सेवा db और server के बीच 90 डिग्री की कनेक्टिंग लाइन बनाएँ, जो db के शीर्ष और server के बाईं ओर से निकलती है।
तीर
बाईं दिशा से पहले < जोड़कर, या दाईं दिशा के बाद > जोड़कर, कनेक्टिंग लाइन के प्रत्येक ओर तीर जोड़ा जा सकता है।
उदाहरण के लिए:
कॉपी करें
एम्बेड
subnet:R --> L:gateway
gateway सेवा की ओर इंगित तीर वाली एक कनेक्टिंग लाइन बनाएँ।
समूह के बाहर की कनेक्टिंग लाइन
किसी कनेक्टिंग लाइन को एक समूह से दूसरे समूह या दूसरे समूह के भीतर की सेवा तक ले जाने के लिए, serviceId के बाद {group} संशोधक जोड़ा जा सकता है।
उदाहरण के लिए:
कॉपी करें
एम्बेड
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