CDN फ़ॉलबैक के लिए स्थानीय JS और CSS संसाधन उपलब्ध कराना


13

मान लीजिये

  • CDN एक अच्छी बात है क्योंकि वे क्लाइंट के करीब संसाधनों की सेवा कर सकते हैं, क्लाइंट उन्हें कैश कर सकता है, और आप अपने सर्वर पर लोड को कम कर सकते हैं।
  • हाल के ब्राउज़रों में, थर्ड-पार्टी सर्वर से संसाधन लोड करने से सबस्रोइट इंटीग्रिटी (SRI) के लिए सुरक्षा में कमी नहीं होती है ।
  • सीडीएन कुछ देशों में नीचे या अवरुद्ध हो सकते हैं, और ऑफ़लाइन 1 विकसित करते समय उपलब्ध नहीं हैं ।

मुझे लगता है कि यह सीडीएन का उपयोग करने के लिए मजबूर कर रहा है, लेकिन उनके लिए भी अनुपलब्ध रहने के लिए तैयार रहना चाहिए। यह ब्लॉग पोस्ट, कमियां प्रदान करने के लिए विभिन्न दृष्टिकोणों का एक अच्छा परिचय देता है। यदि आप मूल उदाहरण को देखते हैं, तो आप देख सकते हैं कि इसमें पहले से ही jQuery और बूटस्ट्रैप के लिए कमियां प्रदान करने के लिए पहले से ही बहुत सारे बॉयलरप्लेट कोड हैं, जबकि पसंदीदा समाधान Fallback.js का उपयोग करने का सुझाव देता है , जो कि पिछले वर्ष के लिए काफी हद तक अप्राप्य लगता है। । इसी तरह, इस विषय के लिए सबसे प्रासंगिक एसओ प्रश्न केवल jQuery के लिए एक कमबैक प्रदान करने के बारे में है।

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

  • CDN लिंक को अपडेट करें
  • Npm / bower config में मैनुअल डाउनलोड या बदलते संस्करण द्वारा स्थानीय फॉलबैक कॉपी को अपडेट करें
  • लिंक को फ़ॉलबैक में अपडेट करें
  • SRI हैश को अपडेट करें

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

क्या इसे प्राप्त करने के लिए पहले से ही एक स्थापित वर्कफ़्लो है?

या CDN, और विशेष रूप से SRI, अभी भी हाल ही में हैं?

या ज्यादातर लोग सीडीएन संसाधनों के लिए कमियां प्रदान करने की परवाह नहीं करते हैं?


1. यद्यपि आप एक देव निर्माण कर सकते हैं जो CDNs पर निर्भर नहीं करता है, लेकिन मैं यह भी मानता हूं कि एक प्रकार की गिरावट, क्योंकि इसे भी बनाए रखने की आवश्यकता है।


मैंने स्वयं CDN से फ़िडिंग नहीं की है, लेकिन ऐसा लगता है कि सभी को स्वचालित करने के लिए संभव होना चाहिए, लेकिन एक मानक परिनियोजन प्रक्रिया के भाग के रूप में उन चरणों में से एक।
Ixrec

है Fallback.jsunmaintained क्योंकि यह पहले से ही पूरी तरह से काम करता है? अगर यह पहले से ही काम करता है तो सॉफ्टवेयर को हर 5 मिनट में बदलना नहीं है।
रॉबर्ट हार्वे

1
नहीं, मैं यह तर्क दूंगा कि यह पूरी तरह से काम नहीं करता है, अन्यथा मैं यह नहीं देखता कि लेखक ने नए संस्करण पर काम करना क्यों शुरू किया है। मैं यह भी दावा करूंगा कि एक पुस्तकालय जो एक वेबसाइट के लिए सही ढंग से काम करने के लिए बहुत आवश्यक है निरंतर परीक्षण और सुधार किया जाना है। जो कुछ मैं समझता हूं, विभिन्न ब्राउज़रों पर अधिक परीक्षण और CI जोड़ना वास्तव में संस्करण 2 के मुख्य लक्ष्यों में से एक है। इसमें वर्तमान में SRI के लिए समर्थन का भी अभाव है।
वलारडोहेरिस

जवाबों:


1

मुझे लगता है कि आप शायद इस बात को गलत समझते हैं कि सीडीएन का उपयोग करने के लिए इस तरह की बड़ी साइटों की आवश्यकता हो सकती है।

यह सिर्फ jQuery या कुछ छवियों की मेजबानी की बात नहीं है। साइट के अधिकांश हिस्से को सीडीएन पर होस्ट किया जाएगा, जिसमें केवल डायनामिक रूप से जेनरेट की गई चीजें जैसे पेमेंट पेज या शॉपिंग बास्केट को 'प्राथमिक वेबफार्म्स' पर होस्ट किया जाएगा।

यहां तक ​​कि ये अधिक से अधिक जेएस और कुकीज़ के साथ स्थानीय रूप से संसाधित किए जा रहे हैं ताकि सर्वर साइड प्रसंस्करण को रोकने के बिना उपयोगकर्ता के विशिष्ट सामान को प्रदर्शित किया जा सके।

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


आपके पास एक सीडीएन बैकअप हो सकता है जो स्वचालित रूप से ऊपर जाता है। और सीडीएन के साथ यातायात के बारे में नहीं बल्कि अधिक आरामदायक और लागत में कमी के बारे में भी। मुझे लगता है कि सीडीएन भी कम यातायात वेबसाइट पर समझ में आता है, ऐसा क्यों नहीं होना चाहिए?
Sjoerd222888

1

जिस साइट पर हम अपने सीडीएन पर काम करते हैं वह साइट के लिए अधिक महत्वपूर्ण हो गई है। शुरुआत में हमने बस इसका इस्तेमाल Images / CSS / JS को कैश करने के लिए किया था। इस स्तर पर हमारे पास एक कॉन्फ़िगर संपत्ति थी, जो इन संसाधनों के होस्ट नाम को www.mysite.com/ से www.cdn.com/ तक पहुंचाती थी, इसलिए यदि CDN नीचे चला गया, तो हम बस इस मेजबान मान को बदल सकते हैं या इसे पूरी तरह से बंद कर सकते हैं और छोड़ सकते हैं हमारे वेबसर्वर की ओर इशारा करता है।

हालाँकि अब हम मूल रूप से AJAX के माध्यम से लोड की जा रही व्यक्तिगत सामग्री के साथ मूल रूप से संपूर्ण पृष्ठों को कैच करने के लिए आगे बढ़ गए हैं। हमारी साइट के लिए हमारा CDN आवश्यक हो गया है और हम इसके बिना उतना ही भाग सकते हैं जितना कि हम अपने स्वयं के HTTP सर्वरों से कर सकते हैं। हम अपने सीडीएन के हिस्से में अच्छे पैसे का भुगतान करते हैं, क्योंकि अपटाइम के एसएलए और एसएलए वादे इसलिए समय और प्रयास को कमियों में डाल देना समय की बर्बादी लगता है। हमारे पास एक डीआर प्लान है, बस हमारे प्रदाता के साथ एक प्रमुख मुद्दा है, लेकिन यह एक सरल स्वचालित प्रक्रिया नहीं है और जब हम अपने फ़ॉलबैक सीडीएन की ओर पलायन करते हैं, तो आउटेज की अवधि दिखाई देगी।

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


0

मैं CDNs का उपयोग करने के लिए 3 बहुत महत्वपूर्ण कारण देखता हूं:

  1. दूर के क्षेत्रों में उपयोगकर्ताओं के लिए नेटवर्क विलंबता कम करें। जब आपके पास वैश्विक दर्शकों के लिए एक वेब साइट होती है, तो उत्तरी अमेरिका में आपकी मेजबानी दक्षिण एशिया के उपयोगकर्ताओं के लिए विशेष रूप से चीन में तेजी से प्रतीत नहीं होगी। उपयोगकर्ता अनुभव में अंतर इतना बड़ा हो सकता है कि यह उपयोगकर्ताओं को आपकी साइट का उपयोग करने से हतोत्साहित करेगा। इस मामले में आपके व्यवसाय के लिए बहु-क्षेत्रीय सीडीएन आवश्यक होगा।

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

  3. CDN डायनेमिक कंटेंट परोसने वाले एप्लिकेशन सर्वर की तुलना में बनाए रखना और सस्ता करना आसान है। जब आपको ऊपर बताई गई समस्याओं से निपटना है, तो यह पैसे बचाने का स्वाभाविक तरीका है।

इसका मतलब यह है कि, CDN का लक्ष्य उपयोगकर्ताओं को समाप्त करने के लिए आपकी सामग्री की उपलब्धता बढ़ाना है। यदि CDN विफल हो जाता है या किसी कारण से धीमा हो जाता है, तो क्लाइंट-साइड फ़ॉलबैक पृष्ठ लोड को महत्वपूर्ण रूप से बढ़ा देगा, क्योंकि यह पहले उस संसाधन को प्राप्त करने का प्रयास करेगा जो सुलभ नहीं है। बेहतर समाधान के लिए सर्वर-साइड डिज़ाइन है जो "{CDN} /js/jquery-version-min.js" जैसे लिंक में आधार URL का प्रतिस्थापन करेगा। यह CDN के बजाय एप्लिकेशन सर्वर पर ट्रैफ़िक को फिर से रूट करने की अनुमति देगा यदि CDN स्वास्थ्य जांच विफल हो जाती है - क्लाइंट अनावश्यक अनुरोध नहीं करेंगे और सीधे ऐप सर्वर पर जाएंगे, जो क्लाइंट-साइड समाधान के साथ आपका कमबैक होगा। इससे स्थानीय और मंचन की समस्याओं का भी समाधान होगा,

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