प्लांटयूएमएल डिप्लॉयमेंट डायग्राम सिंटैक्स गाइड

डिप्लॉयमेंट डायग्राम क्या है?

एक डिप्लॉयमेंट डायग्राम एक संरचनात्मक यूएमएल डायग्राम जो सॉफ्टवेयर सिस्टम की भौतिक निष्पादन संरचना को मॉडल करता है। यूनिफाइड मॉडलिंग लैंग्वेज (यूएमएल) विनिर्देश के एक मुख्य मानक के रूप में, इस विशिष्ट यूएमएल डायग्राम प्रकार सॉफ्टवेयर घटकों के हार्डवेयर होस्टिंग लक्ष्यों, क्लाउड इंफ्रास्ट्रक्चर तत्वों या कंटेनर रनटाइम पर भौतिक रूप से डिप्लॉय किए जाने के तरीके को दर्शाता है। यह सिस्टम इंजीनियरों, डेवोप्स पेशेवरों और नेटवर्क आर्किटेक्ट्स को डेवलपमेंट और प्रोडक्शन क्षेत्रों में सर्वर क्लस्टर सीमाओं, डेटाबेस रिप्लिकेशन पथ, लोड बैलेंसर टियर और हार्डवेयर नेटवर्क प्रोटोकॉल के स्पष्ट लेआउट प्रदान करता है।

साथ में वीपीएसकोड, आपको जटिल वेक्टर समूहन आकृतियों या हाथ से निर्देशांक मैपिंग के साथ लड़ने की जरूरत नहीं है। साधारण घोषणात्मक स्क्रिप्ट ब्लॉक्स का उपयोग करके, हमारा इंजन आपकी हार्डवेयर नोड संरचनाओं को स्वचालित रूप से समूहित, गणना और नेस्ट करता है।

कोर सिंटैक्स गाइड: तत्व और निर्माण

प्लांटयूएमएल में एक सटीक, मानकों के अनुरूप यूएमएल डिप्लॉयमेंट डायग्राम डिज़ाइन करने के लिए, आपको हार्डवेयर नोड्स, निष्पादन वातावरण, डिप्लॉयमेंट आर्टिफैक्ट्स और नेटवर्क लिंकेज को समझना होगा।

1. इंफ्रास्ट्रक्चर क्यूब्स (नोड्स) घोषित करना

डिप्लॉयमेंट लेआउट में, भौतिक गणना संसाधनों को 3D त्रि-आयामी घनों के रूप में दर्शाया जाता है। आप इन तत्वों को नोडकीवर्ड या विशेष विकल्पों के चयन द्वारा घोषित करते हैं, जो पाठकों को हार्डवेयर परत के बारे में तुरंत दृश्य संदर्भ प्रदान करते हैं:

नोड "बेयर मेटल एप्लीकेशन सर्वर" को कोरसर्वर के रूप में
नोड सर्वर1
डेटाबेस "डेटाबेस सर्वर" को डीबी_नोड के रूप में

2. क्लाउड परतों और वर्चुअल वातावरणों का मॉडलिंग

आधुनिक एप्लीकेशन्स को लगभग कभी भी सीधे भौतिक हार्डवेयर पर डिप्लॉय नहीं किया जाता है। प्लांटयूएमएल तार्किक निष्पादन सीमाओं, क्लाउड प्रोवाइडर फुटप्रिंट्स या डॉकर और कुबरनेटीस जैसे वर्चुअल कंटेनर रनटाइम का प्रतिनिधित्व करने के लिए नेस्टेड समूहन वाले आवरण प्रदान करता है:

  • क्लाउड — बाहरी सार्वजनिक वेब परतों या क्लाउड नेटवर्क सीमाओं का प्रतिनिधित्व करता है (उदाहरण के लिए, एवीएस, एज़र)।
  • फ्रेम — वर्चुअल सिस्टम या संगठनात्मक क्षेत्रों का प्रतिनिधित्व करता है।
  • स्टोरेज — भौतिक सैन कॉन्फ़िगरेशन या ऑब्जेक्ट स्टोर स्थानों का प्रतिनिधित्व करता है।
बादल "अमेज़ॉन वेब सेवाएं VPC" {
    नोड "EC2 लिनक्स इंस्टेंस" के रूप में वर्करनोड
}

3. डेप्लॉयमेंट आर्टिफैक्ट्स को परिभाषित करना (कहाँ चलता है)

एक आर्टिफैक्ट वास्तविक भौतिक फ़ाइल (जैसे संकलित JAR फ़ाइल, स्थिर बिल्ड फ़ोल्डर, या ज़िप्ड पैकेज) का प्रतिनिधित्व करता है जिसे एक नोड पर डेप्लॉय किया जाता है। आप आर्टिफैक्ट की घोषणा करते हैं आर्टिफैक्टकीवर्ड, या इसे आपके हार्डवेयर ब्लॉक्स के भीतर सीधे रखें:

नोड "एप्लीकेशन सर्वर" {
    आर्टिफैक्ट "api_v1.0.war" के रूप में API_फ़ाइल
}

4. नेटवर्क संचार लिंक को मैप करना

इंफ्रास्ट्रक्चर तत्वों के बीच कनेक्शन वास्तविक भौतिक नेटवर्क, तार के मार्ग, या वायरलेस चैनल का प्रतिनिधित्व करते हैं। आप इन लिंक्स को ठोस डबल डैश (--), और उद्धरण के भीतर टेक्स्ट जोड़कर स्पष्ट रूप से उपयोग किए गए नेटवर्क प्रोटोकॉल को परिभाषित करें (उदाहरण के लिए, HTTPS, TCP/IP, SSH):

नोड सर्वर1
नोड DB_नोड
सर्वर1 -- DB_नोड : "TCP/IP (पोर्ट 5432)"

व्यावहारिक डेप्लॉयमेंट मैप्स के लिए सर्वोत्तम प्रथाएं

  • संरचनाओं को सही तरीके से नेस्ट करें: हमेशा अपने आंतरिक घटकों या आर्टिफैक्ट्स को अपने नोडघोषणाओं के कुर्सी कोष्ठक के भीतर बनाएं ताकि निष्पादन निवास को स्पष्ट रूप से दिखाया जा सके।
  • संचार प्रोटोकॉल को लेबल करें: सर्वरों के बीच कभी भी खाली पंक्ति न बनाएं। हमेशा संपर्क को उसके मुख्य संचार प्रोटोकॉल (उदाहरण के लिए, "HTTPS (पोर्ट 443)") के साथ लेबल करें ताकि नेटवर्क और सुरक्षा समीक्षा में मदद मिल सके।
  • उपलब्धता क्षेत्रों को अलग करें: उच्च उपलब्धता वाले क्लाउड कॉन्फ़िगरेशन के दस्तावेज़ीकरण के दौरान, अलग-अलग फ्रेम लेआउट को समझाने के लिए उपयोग करें (उदाहरण के लिए, us-east-1a बनाम us-east-1b).

वास्तविक दुनिया के PlantUML डेप्लॉयमेंट डायग्राम उदाहरण

उदाहरण 1: क्लासिक तीन-स्तरीय वेब सेटअप (नोड्स और प्रोटोकॉल)

यह बॉयलरप्लेट एक मानक आधुनिक कॉर्पोरेट एप्लिकेशन संरचना का मॉडल बनाता है, जिसमें बाहरी कंटेंट वितरण नेटवर्क, एप्लिकेशन सर्वर क्लस्टर और सुरक्षित आंतरिक डेटाबेस होस्ट स्तर को मैप किया गया है।

@startuml
cloud "सार्वजनिक इंटरनेट" as net

node "Cloudflare CDN एज" as cdn

frame "निष्क्रिय क्षेत्र (DMZ)" {
    node "Nginx लोड बैलेंसर सर्वर" as proxy
}

frame "निजी एप्लिकेशन VPC सबनेट" {
    node "Ubuntu सर्वर 22.04" as app_node {
        artifact "core_api.jar" as application
    }
}

database "प्रबंधित डेटाबेस स्तर" {
    node "PostgreSQL प्राथमिक क्लस्टर" as db_master
}

' स्थानिक संबंध तार स्थापित करें
net -- cdn : "HTTPS"
cdn -- proxy : "HTTPS (TLS 1.3)"
proxy -- app_node : "HTTP (पोर्ट 8080)"
app_node -- db_master : "TCP/IP (पोर्ट 5432)"
@enduml

सिंटैक्स विश्लेषण: यह नक्शा स्पष्ट रूप से सुरक्षा सीमाओं को निर्धारित करता है। संकलित संसाधन core_api.jar सुरक्षित रूप से app_node सर्वर बॉक्स के अंदर निहित है। नेटवर्क मार्ग साफ रूप से अंदर की ओर बढ़ते हैं, जो सार्वजनिक वेब एज से लेकर प्रबंधित डेटाबेस स्तर तक हर सेगमेंट के लिए सख्त प्रोटोकॉल नियम स्थापित करते हैं।

उदाहरण 2: क्लाउड-नेटिव कंटेनर आर्किटेक्चर (Kubernetes और AWS मेश)

यह उन्नत एंटरप्राइज ब्लूप्रिंट एक बहुत बड़ी स्केल करने वाले, बहु-क्षेत्रीय क्लाउड डेप्लॉयमेंट को मैप करता है। यह लोड-बैलेंस्ड Kubernetes कंटेनर सिस्टम को दृश्यमान बनाने के लिए नेस्टेड नोड लेआउट का उपयोग करता है, जो स्वतंत्र क्लाउड डेटाबेस के साथ बातचीत करता है।

@startuml
cloud "अमेज़ॅन वेब सेवाएं (AWS)" {
    
    node "AWS एप्लिकेशन लोड बैलेंसर" as alb
    
    frame "उपलब्धता क्षेत्र: us-east-1a" {
        node "EC2 वर्कर नोड नोड A" as ec2_a {
            node "K8s पॉड: वेब फ्रंटएंड" as pod_web_a
            node "K8s पॉड: ऑर्डर API" as pod_api_a
        }
    }
    
    frame "उपलब्धता क्षेत्र: us-east-1b" {
        node "EC2 वर्कर नोड नोड B" as ec2_b {
            node "K8s पॉड: वेब फ्रंटएंड" as pod_web_b
            node "K8s पॉड: ऑर्डर API" as pod_api_b
        }
    }
    
    storage "AWS Aurora सर्वरलेस क्लस्टर" {
        database "ग्राहक डेटाबेस" as rds_db
    }
}

' इंफ्रास्ट्रक्चर ऑर्केस्ट्रेशन लाइनें रूट करें
alb -- pod_web_a : "HTTP राउंड-रॉबिन"
alb -- pod_web_b : "HTTP राउंड-रॉबिन"

pod_web_a -- pod_api_a : "आंतरिक gRPC"
pod_web_b -- pod_api_b : "आंतरिक gRPC"

pod_api_a -- rds_db : "SSL/TCP"
pod_api_b -- rds_db : "SSL/TCP"
@enduml

सिंटैक्स विश्लेषण: नेस्ट करके नोड लक्ष्यों को बच्चे के भीतर नोड संरचनाएँ, यह टेम्पलेट एक कंटेनरीकृत लेआउट को पूरी तरह से मॉडल करता है (EC2 वर्चुअल मशीनों के अंदर चल रहे पॉड्स)। एप्लिकेशन लोड बैलेंसर इनकमिंग रिक्वेस्ट्स को उपलब्धता क्षेत्रों के बीच बिना किसी रुकावट के वितरित करता है, जबकि क्लस्टर के घटक डेटाबेस कॉल्स को साझा स्टोरेज पूल में वापस रूट करते हैं।

Scroll to Top