फेसबुक या विकीपीडिया के आईपी पते पर सुनने वाले हार्डवेयर का टुकड़ा क्या है?


32

मैं यह समझने की कोशिश कर रहा हूं कि मेरी बौद्धिक जिज्ञासा के लिए फेसबुक या विकिपीडिया जैसी व्यापक साइटें कैसे काम करती हैं। मैंने स्केलेबल साइटों के निर्माण के लिए विभिन्न तकनीकों के बारे में पढ़ा, लेकिन मैं अभी भी एक विशेष विवरण के बारे में हैरान हूं।

जो हिस्सा मुझे भ्रमित करता है, वह यह है कि आखिरकार, DNS पूरे डोमेन को एक एकल आईपी पते, या मुट्ठी भर आईपी पते के राउंड-रॉबिन डीएनएस के मामले में मैप करेगा।

उदाहरण के लिए, wikipedia.org के पास केवल एक प्रकार- A DNS रिकॉर्ड है। तो, विकिपीडिया पर आने वाले दुनिया भर के लोगों को DNS में निर्दिष्ट एक आईपी पते पर एक अनुरोध भेजना होगा।

एक विशाल साइट के लिए आईपी पते पर सुनने वाला हार्डवेयर का टुकड़ा क्या है, और यह संभवतः दुनिया भर के उपयोगकर्ताओं के अनुरोधों से आने वाले सभी भार को कैसे संभाल सकता है?

संपादित 1: सभी प्रतिक्रियाओं के लिए धन्यवाद! एनास्टैस्ट एक व्यवहार्य उत्तर की तरह लगता है ... क्या किसी को यह जांचने का कोई तरीका पता है कि क्या एक विशेष आईपी पते को किसी भी तरह से रूट किया गया है, ताकि मैं यह सत्यापित कर सकूं कि यह वास्तव में बड़ी साइटों द्वारा इस्तेमाल की गई चाल है?

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

ध्यान देने वाली एक दिलचस्प बात यह है कि फेसबुक स्टाइल शीट और जावास्क्रिप्ट लाइब्रेरियों जैसे स्थिर कंटेंट को होस्ट करने के लिए profile.ak.fbcdn.net का उपयोग करता है। जब भी मैं इस नाम को पिंग करता हूं, मुझे एक अलग आईपी पते से प्रतिक्रिया मिलती है। हालाँकि, मैं यह नहीं बता सकता कि यह एक्शन में कोई भी है या पूरी तरह से अलग तकनीक है।

अपने मूल प्रश्न पर वापस: जहां तक ​​मैं बता सकता हूं, यहां तक ​​कि एक बड़ी साइट पर लोड-बैलेंसिंग हार्डवेयर का एक महंगा टुकड़ा होगा जो अपने मुट्ठी भर सार्वजनिक आईपी पते पर सुन रहा होगा।


महान प्रश्न, बहुत बुरे अधिकांश लोग इसे नहीं समझते हैं। मुझे आशा है कि किसी के पास कुछ विवरणों के साथ एक उत्तर होगा। शायद कुछ 50 मिलियन डॉलर सिस्को क्वांटम कंप्यूटिंग लोड लोड बैलेंसर।
ओलिवर

जवाबों:


9

यह आवश्यक रूप से हार्डवेयर का एक टुकड़ा नहीं है, लेकिन एक पूर्ण प्रणाली जिसे स्केल करने के लिए डिज़ाइन किया गया है। यह न केवल हार्डवेयर को शामिल करता है बल्कि अधिक महत्वपूर्ण रूप से एप्लिकेशन डिज़ाइन, डेटाबेस डिज़ाइन (संबंधपरक या अन्यथा), नेटवर्किंग, भंडारण और कैसे वे सभी एक साथ फिट होते हैं।

उदाहरणों के रूप में विकिमीडिया वास्तुकला , फेसबुक और ट्विटर पर उच्च स्केलेबिलिटी - स्टार्ट हियर और हाई स्केलेबिलिटी - कुछ बड़े साइटों के पैमाने कैसे हैं, यह जानने की आपकी उत्सुकता के लिए एक अच्छा प्रारंभिक बिंदु ।

DNS और सिंगल आईपी एड्रेस और राउंड-रॉबिन के बारे में आपके सवाल के बारे में इस प्रकार की साइट्स अक्सर सिंगल आईपी एड्रेस को पेश करने के तरीके के रूप में लोड बैलेंसिंग का उपयोग करेंगी । यह या तो विशेष हार्डवेयर लोड बैलेन्स द्वारा या सामान्य प्रयोजन सर्वर पर चल रहे सॉफ़्टवेयर के माध्यम से किया जा सकता है। लोड बैलेंसर द्वारा प्रबंधित आईपी के लिए आने वाले अनुरोधों को अंत उपयोगकर्ता के लिए पारदर्शी रूप से सर्वर की एक श्रृंखला में वितरित किया जाता है।

इस विषय पर एक अच्छी व्याख्या के लिए, जिसमें हार्डवेयर और सॉफ्टवेयर लोड बैलेन्सर / प्रॉक्सिस की तुलना और वे डीएनएस राउंड रॉबिन की तुलना कैसे करते हैं, लोड बैलेंसिंग वेब एप्लिकेशन की एक रीडिंग है


धन्यवाद, सिम। मैंने अपना प्रश्न पूछने से पहले इनमें से अधिकांश लेखों को पढ़ा, लेकिन मुझे इसका ठोस जवाब नहीं मिला। तो, वहाँ वास्तव में एक एकल हार्डवेयर लोड बैलेंसर (या लोड-बैलेंसिंग सॉफ़्टवेयर चलाने वाली एक एकल मशीन) है जो हर बार किसी विकिपीडिया पृष्ठ को देखने के लिए मारा जाता है? या, अड़चन से बचने के लिए कहीं और एक चाल है?
इगोर ओस्ट्रोव्स्की

मुझे यकीन नहीं है कि विकिपीडिया अब क्या कर रहा है, लेकिन 2008 का यह लेख स्क्वीड रिवर्स प्रॉक्सी सर्वर ब्लॉग्स
सिम

2
ऐसे भी कोई भी पते हैं जहां आप एक आईपी-पता पिंग करते हैं, लेकिन उन्हें "वास्तविक" समापन बिंदुओं की एक सीमा तक (यादृच्छिक रूप से \ _ जानबूझकर) वितरित किया जाता है। मुझे यकीन नहीं है कि अगर Wikipedia \ Google इसका उपयोग करता है, लेकिन मुझे पूरा यकीन है कि कुछ मूल DNS सर्वर करते हैं। विकिपीडिया के मेरे पिंग आपके (और मैं आयरलैंड में) मेल खाते हैं, इसलिए मुझे संदेह है कि वे इसका उपयोग कर रहे होंगे।
हेल्विक

1
डीएनएस क्वेरी में एनास्टैस्ट का उपयोग आपके निकटतम आईपी पते को प्राप्त करने के लिए किया जाता है - फिर एक लोड बैलेंसर उस आईपी पते पर सुनता है और बैकिंग सर्वर को अनुरोध वितरित करता है।
एंडी शेलम

2
विकिपीडिया अपने लोड बैलेंसिंग के लिए pdns के जियो बैक बैकेंड का उपयोग करने के लिए भी होता है। यहाँ और अधिक जानकारी: wikitech.wikimedia.org/view/PowerDNS और यहाँ: wikitech.wikimedia.org/view/DNS
गलती करने वाला

3

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

कई CDN (CacheFly, MaxCDN, और शायद कई अन्य) वास्तव में TCP कनेक्शन (HTTP) के लिए, और न कि केवल DNS का उपयोग करते हैं। जब आप CacheFly पर एक होस्टनाम को हल करते हैं, तो आपको दुनिया भर में एक ही IP पता मिलता है, यह बस "निकटतम" CacheFly क्लस्टर में रूट किया जाता है। यहां "निकटतम" बीजीपी पथ लंबाई और मैट्रिक्स के संदर्भ में होगा, जो आमतौर पर सरल भौगोलिक दूरी की तुलना में नेटवर्क विलंबता को मापने का एक बेहतर तरीका है।

विशेष रूप से विकिपीडिया के मामले में: http://www.datacenterknowledge.com/archives/2008/06/24/a-look-inside-wikipedias-infrastructure/


3

यह सत्यापित करने का सबसे आसान तरीका है कि अगर एक आईपी एड्रेस एनास्टैस्ट का उपयोग कर रहा है, तो अलग-अलग स्थान से ट्रेसरआउट करना है। आप निम्नलिखित की कोशिश कर सकते हैं: traceroute.org पर जाएं, एक स्थान चुनें और आईपी पते 8.8.8.8 (Google सार्वजनिक डीएनएस जो किसी भी उपयोग का उपयोग करें) के लिए एक ट्रेसरआउट करने की कोशिश करें। आपको ऑस्ट्रेलिया में सर्वर से उस ट्रेसरआउट को 8.8.8.8 तक ऑस्ट्रेलिया में देखने में सक्षम होना चाहिए।

पिंग के बजाय, होस्टनाम लुकअप करने का प्रयास करें: जैसे: http://network-tools.com/default.asp?prog=dnsrec&host=profile.ak.fbcdn.net

आपको उस नाम के पीछे IP पते की सूची दिखाई देगी। जब आप सर्वर को पिंग करते हैं तो ये आईपी पते एक राउंड-रॉबिन फैशन में उपयोग किए जाएंगे।



2

इगोर, आपका सवाल बहुत अच्छा है, और बहुत सारे निर्दोष सवालों की तरह, विवरणों के विभिन्न स्तरों पर कई, कई जवाब हैं।

हार्डवेयर का टुकड़ा एक वेब सर्वर है। जाहिर है ;-)

हार्डवेयर का टुकड़ा वास्तव में लोड बैलेंसरों का एक समूह है, जिनमें से सभी को साझा भंडारण से खींचने के लिए कॉन्फ़िगर किया गया है ताकि वे सभी समान सामग्री के साथ समान रूप से कॉन्फ़िगर किए जा सकें।

हार्डवेयर का टुकड़ा वास्तव में लोड बैलेंसरों के कई समूहों में से एक है, भौगोलिक रूप से छितराया हुआ है, और आपको डीएनएस सर्वर द्वारा किए गए एक निर्णय के सबसे करीब से निर्देशित किया गया था।


1

Google ने पिछले साल अपने होमग्रोन हार्डवेयर आर्किटेक्चर पर थोड़ा सा जारी किया और यह एक अच्छे रीड के लिए बनाता है ।


यह एक दिलचस्प रीड है, लेकिन यह मेरे विशेष प्रश्न का उत्तर नहीं देता है। मैं विशेष रूप से उत्सुक हूं कि हार्डवेयर के कौन से टुकड़े हैं जो Google के चार सार्वजनिक आईपी पते पर सुनते हैं, और हजारों सर्वरों के बीच लोड वितरित करते हैं?
इगोर ओस्ट्रोव्स्की

1

एक एकल आईपी पते के लिए एक एकल सर्वर जरूरी नहीं है: http://en.wikipedia.org/wiki/Anycast


1
यदि आप कुछ केंद्रीय सिंक्रनाइज़ेशन (जैसे फेसबुक) करते हैं, तो रखरखाव के लिए एनास्टैस्ट एक कठिन सेटअप है। यह उदाहरण के लिए DNS सर्वरों के लिए वास्तव में अच्छी तरह से काम करता है, जहां उदाहरणों को स्थैतिक सामग्री के साथ बहुत अधिक संचार या वेब सर्वर की आवश्यकता नहीं होती है।

1
आप सही कह रहे हैं कि एक एकल आईपी का मतलब एक सर्वर नहीं है, लेकिन DNS क्वेरी में किसी भी प्रकार का उपयोग तब किया जाता है जब आप परेशान न हों कि जब तक आप एक को प्राप्त करते हैं, और इसलिए यह केवल यूडीपी प्रोटोकॉल के साथ उपयोगी है जो DNS का उपयोग करता है। टीसीपी (HTTP में प्रयुक्त) के साथ आपको यह सुनिश्चित करने की आवश्यकता है कि जो सर्वर प्रतिक्रिया करता है वह वह है जिसे आपने विशेष रूप से पूछा है।
एंडी शेलम


1

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

इस डाटासेंटर में "क्लस्टर्स" में कई अलग-अलग मशीनों (डीबी सर्वर, वेब सर्वर, लोड बैलेंसर, आदि) शामिल हैं। इस बात पर निर्भर करता है कि आप अपनी वेबसाइट पर क्या प्रदान कर रहे हैं, आपके पास स्थैतिक सामग्री आदि के लिए कुछ सर्वर हैं।


1

स्केलेबिलिटी हासिल करने के लिए फेसबुक या विकिपीडिया जैसी विशाल साइटें कई विभिन्न तकनीकों पर निर्भर करती हैं।

उन प्रौद्योगिकियों में से एक डीएनएस है। राउंड रॉबिन के साथ बैलेंस लोड करने के लिए डीएनएस को कॉन्फ़िगर किया गया है। Dns कॉन्फ़िगरेशन यह पता लगाने के लिए पर्याप्त स्मार्ट है कि आपका अनुरोध कहां से आ रहा है और उस साइट का पता वापस करने के लिए जो आपके सबसे करीब है। इसलिए यदि आप खुदाई करते हैं तो आपको कई रिकॉर्ड दिखाई देंगे, लेकिन यदि आप पिंग करते हैं तो आपको हमेशा एक ही पता मिलेगा।

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

बड़ी साइटों के लिए नियोजित लोड बैलेंसर उपकरणों के बड़े महंगे टुकड़े नहीं हैं, वे एलवीएस पर चलने वाले कमोडिटी सर्वर हैं। http://www.linuxvirtualserver.org/


0

Google जैसी विशाल साइटें निश्चित रूप से अपना स्वयं का हार्डवेयर डिज़ाइन करती हैं। बड़ी साइटें बहु-लेयर स्विच का उपयोग कई वास्तविक सर्वरों के लिए बैलेंस कनेक्शन लोड करने के लिए करेंगी। http://en.wikipedia.org/wiki/Multilayer_switch

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.