DNS और यह कैसे काम करता है शायद आईटी के किसी भी पहलू के रूप में अधिक गलतफहमी, किंवदंती, अंधविश्वास और पौराणिक कथाओं के साथ है।
यहां तक कि हम में से जो लोग जानते हैं कि हम अनिवार्य रूप से झूठ बोल रहे हैं (या कम से कम बेहद ओवरसाइप्लाइज़िंग) जब हम परिवर्तनों के "प्रसार" के बारे में बात करते हैं तब भी कुछ का वर्णन करने के लिए इस शब्द का उपयोग करते हैं - एक साथ - बेहद सरल और सीधा ... अभी तक समझाना मुश्किल है ... और प्रति सेगमेंट से कोई लेना-देना नहीं है , लेकिन कैशिंग और नेगेटिव कैशिंग के साथ करने के लिए सब कुछ, दोनों एक जरूरी घटक हैं कि सिस्टम कैसे काम करता है (और, यकीनन, यह कैसे सीधे पतन से बचा जाता है अपने स्वयं के वजन) - अनिवार्य रूप से अंदर-बाहर, वास्तविक "प्रसार" के विपरीत, खींच - धक्का नहीं।
छोटी टीटीएल के बारे में सभी चिंता और हाथ से लिखे जाने के लिए, वे इस बात से अधिक बार काम करते हैं कि यह आपके हित में हो सकता है कि बस उन्हें आज़माएं। $ {Day_job} पर, जब हमारी साइटें "पुराने" प्लेटफ़ॉर्म से "नए" प्लेटफ़ॉर्म पर माइग्रेट होती हैं, तो अक्सर इसका मतलब है कि वे इस तरह से माइग्रेट कर रहे हैं कि इन्फ्रास्ट्रक्चर में कुछ भी साझा नहीं किया गया है। इस तरह के माइग्रेशन में मेरा पहला कदम कट से पहले टीटीएल को 60 के दशक में काफी आगे तक गिरा रहा है ताकि पुराने टीटीएल को बाहर चलाने के लिए खुद के कई गुणक हो, मुझे एक उचित आश्वासन दे रहा है कि छोटी टीटीएल के साथ इन संक्रमणकालीन आरआर को बाहर प्रचारित किया जाएगा। । " जब मैं कट के लिए तैयार होता हूं, तो मैं पुराने बैलेंसर को हेयरपिन ट्रैफ़िक में नए सिस्टम पर पुनः कॉन्फ़िगर करता हूं - पूरे इंटरनेट पर - जैसे कि बैलेंसर अब कई आंतरिक सिस्टम को संतुलित नहीं कर रहा है, बल्कि "
फिर मैं डीएनएस को काटता हूं, और नए बैलेंसर और पुराने को देखता हूं।
मैं हमेशा सुखद आश्चर्यचकित हूं कि संक्रमण कितनी तेजी से होता है। होल्डआउट्स लगभग हमेशा खोज मकड़ियों और तीसरे पक्ष के "स्वास्थ्य की जाँच" साइटों पर होते हैं जो अनावश्यक रूप से पुराने रिकॉर्डों को देखते हैं।
लेकिन एक ऐसा परिदृश्य है जो अनुमानित रूप से टूट जाता है: जब उपयोगकर्ता की ब्राउज़र विंडो खुली रहती है, तो वे पहले से खोजे गए पते पर लेट जाते हैं, और अक्सर यह तब तक बनी रहती है जब तक कि उनकी सभी ब्राउज़र विंडो बंद नहीं हो जाती।
लेकिन उपर्युक्त कथा में, आप समस्या का हल ढूंढते हैं: एक "लोड बैलेंसर" - विशेष रूप से और अधिक सटीक रूप से, एक रिवर्स प्रॉक्सी - वह प्रणाली हो सकती है जो आपके उजागर DNS रिकॉर्ड को इंगित करती है।
रिवर्स प्रॉक्सी तब सही लक्ष्य आईपी पते के लिए अनुरोध को आगे बढ़ाता है, जिसे वह शॉर्ट टीटीएल के साथ एक दूसरे "डमी" होस्टनाम का उपयोग करके हल करता है, जो वास्तविक बैक-एंड सर्वर को इंगित करता है। क्योंकि प्रॉक्सी हमेशा DNS टीटीएल का सम्मान करता है। डमी डीएनएस प्रविष्टि, आप एक तेजी से और पूर्ण स्विचओवर का आश्वासन दिया है।
डाउन-साइड यह है कि आप अनावश्यक अतिरिक्त बुनियादी ढांचे के माध्यम से यातायात को पार कर सकते हैं, या कई नेटवर्क सीमाओं के पार परिवहन के लिए अधिक भुगतान कर सकते हैं।
ऐसी सेवाएं हैं जो वैश्विक स्तर पर इस तरह की क्षमता प्रदान करती हैं, और जिसके साथ मैं परिचित हूं वह CloudFront है। (सबसे अधिक संभावना है, Cloudflare बिल्कुल उसी उद्देश्य से काम करेगा, जैसा कि मैंने जो परीक्षण किया है, उसका छोटा-सा संकेत यह बताता है कि यह भी सही ढंग से व्यवहार करता है, और मुझे यकीन है कि अन्य लोग भी हैं।)
हालांकि मुख्य रूप से CDN के रूप में विपणन किया जाता है, CloudFront इसके मूल में है जो वैकल्पिक रूप से प्रतिक्रियाओं को कैच करने की क्षमता के साथ रिवर्स प्रॉक्सीज़ का एक वैश्विक नेटवर्क है । यदि www.example.com
CloudFront और CloudFront के बिंदुओं को इन अनुरोधों को अग्रेषित करने के लिए कॉन्फ़िगर किया गया है backend.example.com
, और backend.example.com
एक छोटी TTL का उपयोग करने के लिए DNS रिकॉर्ड , तो CloudFront सही काम करेगा, क्योंकि यह उस छोटी TTL का सम्मान करता है। जब बैक-एंड रिकॉर्ड बदल जाता है, तो TTL के कम होने तक ट्रैफ़िक सभी माइग्रेट हो जाएगा।
CloudFront की ओर इशारा करते हुए सामने की ओर रिकॉर्ड पर TTL, और क्या ब्राउज़र और कैचिंग रिज़ॉल्वर इसे सम्मानित कर रहे हैं, यह महत्वहीन है, क्योंकि बैक-एंड गंतव्य में परिवर्तन को www.example.com
रिकॉर्ड में परिवर्तन की आवश्यकता नहीं है ... इसलिए धारणा है कि "इंटरनेट" के लिए, सही लक्ष्य के संबंध www.example.com
में संगत है, चाहे बैक-एंड सिस्टम कहां हो।
यह, मेरे लिए, मूल सर्वर के IP में परिवर्तनों का "अनुसरण" करने के लिए किसी भी आवश्यकता के ब्राउज़र को राहत देकर समस्या को पूरी तरह से हल करता है।
tl; डॉ: वास्तविक वेब सर्वर के लिए प्रॉक्सी के रूप में कार्य करने वाली प्रणाली के लिए अनुरोधों को रूट करता है, ताकि केवल प्रॉक्सी कॉन्फ़िगरेशन को मूल सर्वर आईपी में परिवर्तन को समायोजित करने की आवश्यकता हो - न कि ब्राउज़र-फेसिंग डीएनएस।
ध्यान दें कि क्लाउडफ्रंट कुछ DNS जादू द्वारा विलंबता को भी कम करता है, जो इसे सामने की तरफ लगाता है, जिसके परिणामस्वरूप www.example.com
ब्राउज़र के स्थान के आधार पर सबसे इष्टतम क्लाउडफ्रंट किनारे के स्थान को हल किया जाता है www.example.com
, ताकि ट्रैफ़िक की संभावना कम से कम हो। ब्राउज़र से लेकर किनारे तक ... लेकिन यह हिस्सा पारदर्शी और स्वचालित है और प्रश्न के दायरे से बाहर है।
और, ज़ाहिर है, कंटेंट कैशिंग भी मूल सर्वर या परिवहन पर लोड को कम करके मूल्य का हो सकता है - मैंने क्लाउडफ्रंट पर वेब साइटों को कॉन्फ़िगर किया है जहां मूल सर्वर एक एडीएसएल सर्किट पर था, और ADSL अपस्ट्रीम बैंडविड्थ के लिए स्वाभाविक रूप से विवश है। मूल सर्वर जहां सामग्री लाने के लिए CloudFront जोड़ता है, को AWS पारिस्थितिकी तंत्र के अंदर एक सर्वर होने की आवश्यकता नहीं है।
¹ मैं एक एकल इकाई के रूप में बैलेंसर की बात करता हूं जब वास्तव में इसमें कई नोड होते हैं। जब बैलेंसर एक ELB होता है, तो balancer के पीछे एक मशीन एक डमी ऐप सर्वर के रूप में कार्य करती है और नए प्लेटफ़ॉर्म के balancer के लिए वास्तविक हेयरपिनिंग करती है, क्योंकि ELB अपने आप ऐसा नहीं कर सकता है।
Anc पुराने के बारे में नए बैलेन्सर का एकमात्र ज्ञान यह है कि उसे पुराने बैलेन्सर के एक्स-फॉरवर्ड-फॉर पर भरोसा करने की आवश्यकता है और यह कि पुराने बैलेन्सर के स्रोत पते पर किसी भी आईपी-आधारित दर को सीमित नहीं करना चाहिए।
³ जब प्रॉक्सी एक या एक से अधिक सर्वरों को नियंत्रित करता है, तो आपके पास DNS का उपयोग करके बैक-साइड पर स्किपिंग का विकल्प होता है, और बस प्रॉक्सी कॉन्फिगर में IP एड्रेस का उपयोग किया जाता है, लेकिन बाद में चर्चा किए गए होस्ट / वितरित परिदृश्य को DNS की दूसरी परत की आवश्यकता होती है ।