आगंतुक और आउटबाउंड के रूप में अलग सेट
नेटवर्क आर्किटेक्चर में द्विभाजितीय ग्राफ
एक द्विभाजितीय ग्राफ (bipartite graph) नोड्स को दो सेटों में बांटता है, जहाँ किनारे (edges) केवल सेटों के बीच की अनुमति होती है (कभी भी एक सेट के भीतर नहीं)।
नेटवर्क सीमाओं में प्राकृतिक द्विभाजितीय ढांचा होता है:
- इंग्रेस पक्ष: एक पक्ष पर बाहरी क्लाइंट, दूसरे पक्ष पर आंतरिक सेवाएँ। किनारे: प्रवेश करने वाले बाहरी अनुरोध, बाहर जाने वाले आंतरिक प्रतिक्रियाएँ।
- Egress पक्ष: एक पक्ष में आंतरिक सेवाएँ, दूसरे पक्ष में बाहरी गंतव्य। किनारे (Edges): आंतरिक सेवाएँ आउटबाउड कॉल शुरू कर रही हैं, और बाहरी प्रतिक्रियाएँ वापस आ रही हैं।
असममितता (Asymmetry):
- Ingress: स्रोत समुच्चय असीमित है (इंटरनेट पर कोई भी व्यक्ति)। गंतव्य समुच्चय छोटा है (कुछ सेवाएँ)। वॉल्यूम उपयोगकर्ताओं के साथ बढ़ता है।
- Egress: स्रोत समुच्चय छोटा है (कुछ आंतरिक सेवाएँ)। गंतव्य समुच्चय सीमित है (कुछ ज्ञात पार्टनर)। वॉल्यूम आंतरिक गतिविधि के साथ बढ़ता है।
Single-box डिज़ाइन एक नोड के माध्यम से दोनों द्विभाजि (bipartite) आधे हिस्सों को सिकोड़ देता है। उस नोड को बाहर से (ingress) और अंदर से (egress के विपरीत दिशा से) दोनों ही फैन-इन (fan-in) प्राप्त होता है। नोड का लोड = दोनों पक्षों का योग।
Split डिज़ाइन अलग-अलग नोड्स पर दोनों द्विभाजि (bipartite) आधे हिस्सों को बनाए रखता है। प्रत्येक नोड अपनी उचित स्केलिंग अक्ष (scaling axis) के साथ एक भूमिका संभालता है।
विभाजन से पहले: हर जगह एक कट वर्टेक्स
एकल-बॉक्स: एक वर्टेक्स सब कुछ धारण करता है
विभाजन के पहले, हर बाहरी/आंतरिक जोड़ी के बीच एकल प्रॉक्सी बॉक्स स्थित होता है। ग्राफ़ शब्दों में यह एक उच्च क्रम का कट वर्टेक्स है: इसकी हटाने पर सभी क्लाइंट्स सभी बैकएंड्स से और सभी आंतरिक सेवाएं सभी बाहरी पार्टनर्स से अलग हो जाती हैं।
इस नोड पर कनेक्टिविटी = 1 है। इस नोड को बाधित करने वाली कोई भी चीज़ (प्रक्रिया क्रैश, नेटवर्क ग्लिच, OOM किल) हर निर्भर पथ को अलग कर देती है।
विभाजन के बाद: कट वर्टेक्स को दो हल्के नोड्स द्वारा प्रतिस्थापित किया गया
इंग्रेस + एग्रेस में विभाजित करने से जहाँ एक था, वहाँ दो ग्राफ़ नोड्स बन जाते हैं। अब प्रत्येक नोड केवल एक द्विभाजी (bipartite) आधा हिस्से पर स्थित है:
- इंग्रेस नोड: बाहरी-क्लाइंट्स-से-आंतरिक-सेवाओं वाले द्विभाजी आधा हिस्से के लिए कट वर्टेक्स
- एग्रेस नोड: आंतरिक-सेवाओं-से-पार्टनर्स वाले द्विभाजी आधा हिस्से के लिए कट वर्टेक्स
हेयरपिन लूप ज्यामितीय रूप से गायब हो जाता है: एकल-बॉक्स ग्राफ़ में, एक आंतरिक सेवा को सार्वजनिक पता के माध्यम से बाहरी-मुखी सेवा तक पहुंचने के लिए उसी वर्टेक्स से दो बार गुजरना पड़ता था (एग्रेस भूमिका के माध्यम से बाहर, फिर इंग्रेस भूमिका के माध्यम से अंदर)। विभाजित ग्राफ़ में, यात्रा दो अलग वर्टेक्स पर पहुंचती है।
प्रति पक्ष कनेक्टिविटी 1 पर ही रहती है, लेकिन दो कट वर्टेक्स को स्वतंत्र रूप से प्रतिस्थापित किया जा सकता है। दूसरे इंग्रेस प्रॉक्सी को जोड़ने से इंग्रेस-पक्ष की कनेक्टिविटी 2 हो जाती है, बिना एग्रेस पक्ष को बदले।
प्रत्येक पक्ष की प्रतिकृति (Replication)
उत्पादन फ्लीट्स (Production fleets) अक्सर 2+ इंग्रेस प्रॉक्सी (HA) और 2+ एग्रेस प्रॉक्सी (HA) चलाते हैं। प्रत्येक पक्ष स्वतंत्र रूप से कनेक्टिविटी 2 तक पहुँचता है। आवश्यकतानुसार प्रत्येक पक्ष पर क्षमता क्षैतिज रूप से (horizontally) बढ़ाई जा सकती है।
नेटवर्क पार्तिशन टॉलरेंस
संश्लेषण
अब आप नेटवर्क आर्किटेक्चर को द्विभागीय ग्राफ़ के रूप में पढ़ सकते हैं, कट वर्टेक्स की पहचान कर सकते हैं, और प्रत्येक आधा हिस्से के लिए कनेक्टिविटी को ट्रैक कर सकते हैं।
इसे नेटवर्क पार्तिशनों पर लागू करें।
एक नेटवर्क पार्तिशन एक ग्राफ़ कट है: पार्तिशन के पार के किनारे (edges) विफल हो जाते हैं; दोनों पक्ष कार्य करते रहते हैं, लेकिन एक-दूसरे तक पहुंच नहीं पाते।
एक भौगोलिक रूप से वितरित प्रणाली में दो डेटा सेंटर हैं जो एकल इंटर-डीसी लिंक से जुड़े हैं। इनग्रेस ट्रैफ़िक डीसी1 के माध्यम से प्रवेश करता है; एग्रेस डीसी1 के माध्यम से बाहरी साझेदारों तक जाता है; कुछ आंतरिक सेवाएं डीसी2 में स्थित हैं और स्टेटफुल ऑपरेशन्स के लिए डीसी1 में वापस कॉल करती हैं।
सहयोगी नोट्स
सहयोगी नोट्स
यह ज्यामिति-आधारित पाठ इंग्रेस और एग्रेस अलगाव मुख्य पाठ को द्विभागीय ग्राफ विश्लेषण के रूप में पुनर्निर्मित करता है।
अगला सहयोगी, geometry_of_failure_modes_and_blast_radius, बीचवॉस केंद्रता (बॉटलनेक नोड्स की पहचान करता है) और मिन-कट (ब्लास्ट रेडियस की सीमा निर्धारित करता है) व्युत्पन्न करता है।
बहुत बढ़िया।