ट्रैफ़िक के आने से पहले बोटलनेक नोड की पहचान
बीटवीननेस सेंट्रैलिटी
ग्राफ़ के हर नोड जोड़ी के लिए, उनके बीच एक सबसे छोटा पथ होता है। नोड N की बीटवीननेस सेंट्रैलिटी = उन सभी सबसे छोटे पथों का अनुपात जो N से गुजरते हैं।
उच्च बीटवीननेस वाला नोड कई अन्य जोड़ियों के बीच के पथ पर होता है। यदि यह धीमा हो जाता है, तो कई फ्लो धीमे हो जाते हैं। यदि यह विफल हो जाता है, तो कई फ्लो टूट जाते हैं।
आर्किटेक्चरल पठन: उच्च-बीटवीननेस वाले नोड वे हैं जिन पर हर आर्किटेक्चर समीक्षा को विशेष ध्यान देना चाहिए। वे बोटलनेक, SPOFs, और क्षमता-क्रिटिकल घटक तीनों एक साथ हैं। वे आमतौर पर होते हैं:
- DNS प्रदाता (हर क्लाइंट और हर सेवा के बीच)
- इंग्रेस प्रॉक्सी (हर क्लाइंट और हर बैकएंड के बीच)
- डेटाबेस प्राइमरी (हर बैकएंड और हर रीड के बीच)
- प्रमाणीकरण सेवा (हर उपयोगकर्ता और हर अधिकृत क्रिया के बीच)
मापन के बिना पहचान: केवल ग्राफ टोपोलॉजी ही उच्च-बीटवेंनेस (betweenness) वाले नोड्स की पहचान कर सकती है। आपको ट्रैफिक डेटा की आवश्यकता नहीं है; आपको केवल आर्किटेक्चर डायग्राम की आवश्यकता है। वह नोड जो संरचनात्मक रूप से कई अन्य जोड़ों के बीच स्थित है, वह अत्यंत महत्वपूर्ण है।
संचालन परिणाम: उच्च-बीटवेंनेस वाले नोड्स को (1) क्षमता हेडरूम, (2) पुनरावृत्ति, (3) न्यूनता (observability), और (4) आपदा प्रतिक्रिया प्लेबुक्स में असमान रूप से निवेश का हकदार माना जाता है।
सबसे छोटा कट (Cut) सबसे छोटे हिस्से को अलग करता है
सरल शब्दों में मिन-कट प्रमेय
ग्राफ में दो नोड्स के बीच मिन-कट (min-cut) = उन्हें अलग करने के लिए आपको हटाने वाले किनारों (या नोड्स) की न्यूनतम संख्या।
कार्यात्मक व्याख्या: मिन-कट (min-cut) सबसे खराब स्थिति में ब्लास्ट रेडियस (blast radius) की सीमा तय करता है। यदि 'क्लाइंट्स' और 'डेटाबेस' के बीच मिन-कट 1 किनारा है (एकल प्रॉक्सी), तो उस किनारे की हानि से सभी क्लाइंट्स डेटाबेस से अलग हो जाते हैं। यदि मिन-कट 5 है, तो पूरी तरह अलग करने के लिए आपको एक साथ 5 घटकों को खोना होगा; यह बुरा भाग्य है, लेकिन इसकी सीमा बनी रहती है।
ब्लास्ट रेडियस के लिए डिज़ाइन: हर महत्वपूर्ण सीमा पर मिन-कट को बढ़ाएं। कई प्रॉक्सी; कई कैश नोड्स; डीसी (DCs) के बीच कई नेटवर्क पथ। हर जोड़ मिन-कट को 1 से बढ़ाता है।
ग्राफ शब्दों में बल्कहेड पैटर्न: संसाधनों को अलग-अलग सब-ग्राफ्स में विभाजित करें जो एक-दूसरे के साथ कोई मिन-कट साझा नहीं करते। एक सब-ग्राफ के भीतर विफलता दूसरों में फैल नहीं सकती क्योंकि किनारे मौजूद नहीं हैं।
व्यास (Diameter) विफलता प्रसार दूरी तय करता है
ग्राफ व्यास (Graph diameter) = किसी भी दो नोड्स के बीच सबसे लंबा सबसे छोटा पथ।
विफलता प्रसार: जब कोई नोड विफल होता है और रीट्राई (retries) वापस बहते हैं, तो वे व्यास दूरी तक के अपस्ट्रीम नोड्स को छूते हैं। एक व्यास-3 प्रणाली (क्लाइंट -> प्रॉक्सी -> बैकएंड -> डीबी) का अर्थ है कि डीबी विफलता रीट्राई स्टॉर्म में 3 अपस्ट्रीम स्तरों को प्रभावित करती है।
प्रभाव: छोटा व्यास = तेज़ विफलता नियंत्रण, लेकिन इसका अर्थ है नोड केंद्रितता भी अधिक। हर डिज़ाइन में अपनी-अपनी ट्रेडऑफ (tradeoff) होती है।
एक वास्तविक आर्किटेक्चर के लिए Min-Cut की गणना करें
एक आर्किटेक्चर: 1 DNS, 1 CDN, 3 रिवर्स प्रॉक्सी, 12 बैकएंड रिप्लिका, 1 DB प्राइमरी।
ग्राफ़ मेट्रिक्स के माध्यम से विफलता-मोड ऑडिट
संश्लेषण
अब आप उच्च-बीटवेंनेस (high-betweenness) नोड्स की पहचान कर सकते हैं, हर सीमा पर मिनिमम-कट (min-cut) की गणना कर सकते हैं, और व्यास (diameter) के माध्यम से विफलता-प्रसार दूरी का अनुमान लगा सकते हैं।
सभी तीन का प्रयोग करें।
एक प्रणाली: 50 ग्राहक एंडपॉइंट्स -> 1 DNS -> 2 CDN POPs -> 4 रिवर्स प्रॉक्सी -> 16 बैकएंड रिप्लिका -> { DB क्लस्टर (1 प्राइमरी + 2 स्टैंडबाई), Redis क्लस्टर (5 नोड्स), 3 बाहरी API }।
सहयोगी नोट्स
सहयोगी नोट्स
यह ज्यामिति-आधारित पाठ Failure Modes & Blast Radius मुख्य पाठ को ग्राफ़ मेट्रिक्स (betweenness, min-cut, diameter) के माध्यम से पुनर्निर्मित करता है।
अंतिम सहयोगी, geometry_of_observability_and_capacity, CDN PoP catchments के लिए Voronoi cells, latency triangle की speed-of-light floor, और proxy tier पर पुनः देखी गई queueing curve का विषय है।
बहुत बढ़िया।