English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

अतिथि
1 / ?
पाठों पर वापस जाएँ

आगंतुक और आउटबाउंड के रूप में अलग सेट

नेटवर्क आर्किटेक्चर में द्विभाजितीय ग्राफ

एक द्विभाजितीय ग्राफ (bipartite graph) नोड्स को दो सेटों में बांटता है, जहाँ किनारे (edges) केवल सेटों के बीच की अनुमति होती है (कभी भी एक सेट के भीतर नहीं)।

नेटवर्क सीमाओं में प्राकृतिक द्विभाजितीय ढांचा होता है:

- इंग्रेस पक्ष: एक पक्ष पर बाहरी क्लाइंट, दूसरे पक्ष पर आंतरिक सेवाएँ। किनारे: प्रवेश करने वाले बाहरी अनुरोध, बाहर जाने वाले आंतरिक प्रतिक्रियाएँ।

- Egress पक्ष: एक पक्ष में आंतरिक सेवाएँ, दूसरे पक्ष में बाहरी गंतव्य। किनारे (Edges): आंतरिक सेवाएँ आउटबाउड कॉल शुरू कर रही हैं, और बाहरी प्रतिक्रियाएँ वापस आ रही हैं।

असममितता (Asymmetry):

- Ingress: स्रोत समुच्चय असीमित है (इंटरनेट पर कोई भी व्यक्ति)। गंतव्य समुच्चय छोटा है (कुछ सेवाएँ)। वॉल्यूम उपयोगकर्ताओं के साथ बढ़ता है।

- Egress: स्रोत समुच्चय छोटा है (कुछ आंतरिक सेवाएँ)। गंतव्य समुच्चय सीमित है (कुछ ज्ञात पार्टनर)। वॉल्यूम आंतरिक गतिविधि के साथ बढ़ता है।

Single-box डिज़ाइन एक नोड के माध्यम से दोनों द्विभाजि (bipartite) आधे हिस्सों को सिकोड़ देता है। उस नोड को बाहर से (ingress) और अंदर से (egress के विपरीत दिशा से) दोनों ही फैन-इन (fan-in) प्राप्त होता है। नोड का लोड = दोनों पक्षों का योग।

Split डिज़ाइन अलग-अलग नोड्स पर दोनों द्विभाजि (bipartite) आधे हिस्सों को बनाए रखता है। प्रत्येक नोड अपनी उचित स्केलिंग अक्ष (scaling axis) के साथ एक भूमिका संभालता है।

Bipartite ingress & egress: separate node sets, separate cut vertices

एक छोटे SaaS के लिए द्विभाजि ग्राफ (bipartite graph) बनाएं: 5 बाहरी ग्राहक एंडपॉइंट (जो अनुरोध भेज रहे हैं), 3 आंतरिक सेवाएँ (बैकएंड), और 4 बाहरी पार्टनर API (जिन्हें आउटबाउड कॉल किया जाता है)। पहचानें कि किन किनारे (edges) ingress द्विभाजि आधे हिस्से से संबंधित हैं और किन किनारे egress द्विभाजि आधे हिस्से से संबंधित हैं। यह अनुमान लगाएं कि यदि आंतरिक सेवाओं में से एक विफल हो जाती है, तो ग्राफ कनेक्टिविटी पर क्या प्रभाव पड़ेगा।

विभाजन से पहले: हर जगह एक कट वर्टेक्स

एकल-बॉक्स: एक वर्टेक्स सब कुछ धारण करता है

विभाजन के पहले, हर बाहरी/आंतरिक जोड़ी के बीच एकल प्रॉक्सी बॉक्स स्थित होता है। ग्राफ़ शब्दों में यह एक उच्च क्रम का कट वर्टेक्स है: इसकी हटाने पर सभी क्लाइंट्स सभी बैकएंड्स से और सभी आंतरिक सेवाएं सभी बाहरी पार्टनर्स से अलग हो जाती हैं।

इस नोड पर कनेक्टिविटी = 1 है। इस नोड को बाधित करने वाली कोई भी चीज़ (प्रक्रिया क्रैश, नेटवर्क ग्लिच, OOM किल) हर निर्भर पथ को अलग कर देती है।

विभाजन के बाद: कट वर्टेक्स को दो हल्के नोड्स द्वारा प्रतिस्थापित किया गया

इंग्रेस + एग्रेस में विभाजित करने से जहाँ एक था, वहाँ दो ग्राफ़ नोड्स बन जाते हैं। अब प्रत्येक नोड केवल एक द्विभाजी (bipartite) आधा हिस्से पर स्थित है:

- इंग्रेस नोड: बाहरी-क्लाइंट्स-से-आंतरिक-सेवाओं वाले द्विभाजी आधा हिस्से के लिए कट वर्टेक्स

- एग्रेस नोड: आंतरिक-सेवाओं-से-पार्टनर्स वाले द्विभाजी आधा हिस्से के लिए कट वर्टेक्स

हेयरपिन लूप ज्यामितीय रूप से गायब हो जाता है: एकल-बॉक्स ग्राफ़ में, एक आंतरिक सेवा को सार्वजनिक पता के माध्यम से बाहरी-मुखी सेवा तक पहुंचने के लिए उसी वर्टेक्स से दो बार गुजरना पड़ता था (एग्रेस भूमिका के माध्यम से बाहर, फिर इंग्रेस भूमिका के माध्यम से अंदर)। विभाजित ग्राफ़ में, यात्रा दो अलग वर्टेक्स पर पहुंचती है।

प्रति पक्ष कनेक्टिविटी 1 पर ही रहती है, लेकिन दो कट वर्टेक्स को स्वतंत्र रूप से प्रतिस्थापित किया जा सकता है। दूसरे इंग्रेस प्रॉक्सी को जोड़ने से इंग्रेस-पक्ष की कनेक्टिविटी 2 हो जाती है, बिना एग्रेस पक्ष को बदले।

प्रत्येक पक्ष की प्रतिकृति (Replication)

उत्पादन फ्लीट्स (Production fleets) अक्सर 2+ इंग्रेस प्रॉक्सी (HA) और 2+ एग्रेस प्रॉक्सी (HA) चलाते हैं। प्रत्येक पक्ष स्वतंत्र रूप से कनेक्टिविटी 2 तक पहुँचता है। आवश्यकतानुसार प्रत्येक पक्ष पर क्षमता क्षैतिज रूप से (horizontally) बढ़ाई जा सकती है।

एक टीम वर्तमान में एक प्रॉक्सी बॉक्स (दोनों दिशाओं के लिए एकल कट वर्टेक्स) चला रही है। वे इसे एक इंग्रेस और एक एग्रेस में विभाजित करती हैं, और बाद में एक दूसरा इंग्रेस (HA जोड़ी) जोड़ती हैं, लेकिन एकल एग्रेस को बनाए रखती हैं। प्रत्येक चरण में ग्राफ़ कनेक्टिविटी में परिवर्तन का विवरण दें, और चरण 3 के बाद भी 1-कनेक्टेड रहने वाले बाइपार्टिट आधा (bipartite half) की पहचान करें (जो इसलिए सबसे कम सहनशीलता वाला विफलता मोड है)।

नेटवर्क पार्तिशन टॉलरेंस

संश्लेषण

अब आप नेटवर्क आर्किटेक्चर को द्विभागीय ग्राफ़ के रूप में पढ़ सकते हैं, कट वर्टेक्स की पहचान कर सकते हैं, और प्रत्येक आधा हिस्से के लिए कनेक्टिविटी को ट्रैक कर सकते हैं।

इसे नेटवर्क पार्तिशनों पर लागू करें।

एक नेटवर्क पार्तिशन एक ग्राफ़ कट है: पार्तिशन के पार के किनारे (edges) विफल हो जाते हैं; दोनों पक्ष कार्य करते रहते हैं, लेकिन एक-दूसरे तक पहुंच नहीं पाते।

एक भौगोलिक रूप से वितरित प्रणाली में दो डेटा सेंटर हैं जो एकल इंटर-डीसी लिंक से जुड़े हैं। इनग्रेस ट्रैफ़िक डीसी1 के माध्यम से प्रवेश करता है; एग्रेस डीसी1 के माध्यम से बाहरी साझेदारों तक जाता है; कुछ आंतरिक सेवाएं डीसी2 में स्थित हैं और स्टेटफुल ऑपरेशन्स के लिए डीसी1 में वापस कॉल करती हैं।

अनुमान लगाएं कि यदि इंटर-डीसी लिंक विफल हो जाता है तो क्या होता है: (1) प्रत्येक डीसी के भीतर द्विभागीय आधे हिस्से कौन से कनेक्टेड रहते हैं, (2) कौन से ट्रैफ़िक फ्लो जारी रहते हैं और कौन से रुक जाते हैं, और (3) एक आर्किटेक्चरल परिवर्तन का प्रस्ताव दें जो प्रणाली को पूर्ण आउटेज के बजाय सीमित क्षति (bounded degradation) के साथ इस पार्तिशन को सहन करने की अनुमति दे।

सहयोगी नोट्स

सहयोगी नोट्स

यह ज्यामिति-आधारित पाठ इंग्रेस और एग्रेस अलगाव मुख्य पाठ को द्विभागीय ग्राफ विश्लेषण के रूप में पुनर्निर्मित करता है।

अगला सहयोगी, geometry_of_failure_modes_and_blast_radius, बीचवॉस केंद्रता (बॉटलनेक नोड्स की पहचान करता है) और मिन-कट (ब्लास्ट रेडियस की सीमा निर्धारित करता है) व्युत्पन्न करता है।

बहुत बढ़िया।