- क्लाउड रन का उपयोग करके स्टेटिक फ़ाइल सर्व करना - 1
- यह ब्लॉग पोस्ट Google क्लाउड रन का उपयोग करके स्थिर फ़ाइलें प्रदान करने के तरीके के बारे में है। यह रीडायरेक्ट और प्रदर्शन सुधार पर केंद्रित है।
यह AI द्वारा अनुवादित पोस्ट है।
durumis AI द्वारा सारांशित पोस्ट
- Google Cloud Storage (GCS) और Cloud Run को एकीकृत करके, हमने एक CDN सिस्टम बनाया है जो छवियों और वेब संसाधनों को कुशलतापूर्वक प्रबंधित करता है और वेब ब्राउज़र वातावरण के लिए अनुकूलित फ़ाइलें प्रदान करता है।
- अपलोड की गई छवियों को webp, avif आदि जैसे विभिन्न स्वरूपों में बदलकर और संग्रहीत करके, और टेक्स्ट फ़ाइलों को gzip, br आदि से संपीड़ित करके, हम उपयोगकर्ताओं को अनुकूलित सामग्री प्रदान करते हैं।
- दुनिया भर के 8 क्षेत्रों में Cloud Storage और Cloud Run को तैनात करके, हम उपयोगकर्ता के स्थान के आधार पर संसाधनों को सबसे करीबी क्षेत्र से वितरित करते हैं, जिससे लेटेंसी कम होती है और उपयोगकर्ता अनुभव बेहतर होता है
पिछला लेखमें, दुर्मिस द्वारा उपयोग किए जा रहे क्लाउड रन का उपयोग करके स्थिर फ़ाइलों को परोसने के बारे में बताया गया था।
लेकिन, robots.txt या favicon.ico जैसी फ़ाइलों के विपरीत, ब्लॉग पर अपलोड की गई छवि फ़ाइलें या वेबपेज के संसाधन केवल स्थिर फ़ाइलों के रूप में संसाधित नहीं किए जा सकते हैं।
इसलिए, इन फ़ाइलों के लिए Google Cloud Storage (इसके बाद GCS) और क्लाउड रन को एकीकृत करने की आवश्यकता है।
मूल अवधारणा सरल है। वास्तविक समय में अपलोड की गई छवि फ़ाइलें या साइट अपडेट होने पर अपलोड किए गए नए संसाधन GCS पर अपलोड किए जाते हैं, और जब बाहरी अनुरोध आता है, तो क्लाउड रन जांचता है कि क्या GCS में फ़ाइल मौजूद है, और यदि है, तो फ़ाइल को भेजता है।
हालांकि, वास्तविक कार्यप्रणाली इससे कहीं अधिक जटिल है।
छवि को GCS पर अपलोड करते समय, दुर्मिस मूल रूप से छवि फ़ाइल को तीन रूपों में बदलता है।
जब JPEG या PNG अपलोड किया जाता है, तो छवि फ़ाइल को मूल रूप से WEBP और AVIF में परिवर्तित करके एक साथ संग्रहीत किया जाता है।
सभी छवि फ़ाइलों के लिए URL में एक्सटेंशन के बिना अनुरोध किया जाता है, और जब अनुरोध किया जाता है, तो क्लाउड रन वेब ब्राउज़र के हेडर की जांच करता है और AVIF, WEBP के क्रम में, वेब ब्राउज़र द्वारा प्राप्त की जा सकने वाली छवि फ़ाइल की जांच करता है। यदि दोनों फ़ाइलें प्राप्त नहीं की जा सकती हैं, तो यह JPEG या PNG भेजता है। इसके अतिरिक्त, केवल प्रारूप परिवर्तन के अलावा, यह वेबपेज की आवश्यकताओं के अनुसार आकार बदलकर संग्रहीत/प्रसारित भी करता है।
आरेख
टेक्स्ट फ़ाइलों के लिए भी यही बात लागू होती है।
वेबसाइट को कई संसाधनों की आवश्यकता होती है, जिनमें छवियां भी शामिल हैं, लेकिन JS और CSS जैसी टेक्स्ट फ़ाइलें भी होती हैं।
JS और CSS फ़ाइलें छवियों के समान ही अपलोड होने पर GZIP और BR द्वारा संपीड़ित की जाती हैं और संग्रहीत की जाती हैं, और अनुरोध पर, वेब ब्राउज़र द्वारा समर्थित फ़ाइल को सीधे प्रेषित किया जाता है।
CDN की भूमिका केवल सामग्री को कैश करने तक सीमित नहीं है। Google Cloud Platform (GCP) के मामले में, आप Google Cloud Load Balancer (GCLB) से सीधे Cloud CDN फ़ंक्शन को जोड़ सकते हैं, जो और भी शक्तिशाली कार्यक्षमता प्रदान करता है।
Cloud CDN बैकएंड सेवा से डेटा प्राप्त करता है, उसे संग्रहीत करता है और फिर क्लाइंट को भेजता है। इस प्रक्रिया में, Cloud CDN क्लाइंट के अनुरोध हेडर के आधार पर अनुकूलित फ़ाइल भेज सकता है। इसके माध्यम से, एक ही URL के लिए विभिन्न प्रकार की सामग्री प्रदान करना संभव है।
उदाहरण के लिए, '/image/tempImage' जैसे समान URL के लिए भी
- छवि फ़ाइलों के मामले में
- ब्राउज़र के 'Accept' हेडर के आधार पर, विभिन्न प्रकार की छवियां भेजी जाती हैं।
- क्रोम ब्राउज़र आमतौर पर 'image/avif,image/webp,image/apng' के क्रम में प्राथमिकता प्रदर्शित करता है।
- CDN इस क्रम के अनुसार संभव प्रारूप की छवियां प्रदान करता है, और यदि समर्थित नहीं है, तो JPEG या PNG प्रारूप में बदल देता है।
- इसी तरह, टेक्स्ट फ़ाइलों के लिए भी
- संकुचन विधि की प्राथमिकता पर विचार किया जाता है।
- क्रोम ब्राउज़र 'gzip, deflate, br, zstd' जैसे संपीड़न विधियों का समर्थन करता है।
- उदाहरण के लिए, दुर्मिस सेवा वर्तमान में GZIP और BR का समर्थन करती है, इसलिए BR संपीड़ित फ़ाइल को प्राथमिकता दी जाती है।
CDN की इन उन्नत सुविधाओं के माध्यम से, उपयोगकर्ता के वातावरण के लिए अनुकूलित सामग्री प्रदान करना संभव है, जिससे वेबसाइट के प्रदर्शन और उपयोगकर्ता अनुभव में उल्लेखनीय सुधार होता है।
भले ही यह Cloud CDN हो, मूल रूप से, CDN को भी क्लाउड रन से फ़ाइल अनुरोध करने की आवश्यकता होती है। इसलिए, दुर्मिस दुनिया भर में 8 क्षेत्रों में क्लाउड स्टोरेज और क्लाउड रन को पहले से तैनात करता है और संसाधनों को पहले से तैनात करता है और उन संसाधनों को भेजता है। इसलिए, थोड़ी लागत में वृद्धि और कार्यभार के साथ, उपयोगकर्ता बहुत बेहतर लेटेंसी का अनुभव कर सकते हैं।
Cloud CDN का उपयोग करते समय भी, मूल रूप से, आपको मूल सर्वर (इस मामले में, Cloud Run) से फ़ाइल प्राप्त करने की आवश्यकता होती है। दुर्मिस इस संरचना को अनुकूलित करके वैश्विक उपयोगकर्ताओं को बेहतर सेवा प्रदान करता है।
दुर्मिस की वैश्विक अनुकूलन रणनीति:
- दुनिया भर में 8 क्षेत्रों में क्लाउड स्टोरेज और क्लाउड रन को पहले से तैनात करें
- प्रत्येक क्षेत्र में आवश्यक संसाधनों को पहले से वितरित करें
- उपयोगकर्ता अनुरोध के समय, संसाधनों को निकटतम क्षेत्र से भेजें
यह विधि थोड़ी लागत में वृद्धि और अतिरिक्त कार्य की आवश्यकता डालती है, लेकिन उपयोगकर्ताओं को निम्नलिखित लाभ प्रदान करती है:
- काफी बेहतर लेटेंसी
- तेज़ सामग्री लोडिंग समय
- कुल मिलाकर उपयोगकर्ता अनुभव में सुधार
इस संरचना को दृश्यमान रूप से इस प्रकार दर्शाया जा सकता है:
इस संरचना के माध्यम से, दुर्मिस वैश्विक उपयोगकर्ताओं को लगातार तेज़ सेवा प्रदान कर सकता है। उपयोगकर्ता के स्थान की परवाह किए बिना, सामग्री निकटतम क्षेत्र से प्रदान की जाती है, इसलिए दुनिया में कहीं से भी कम लेटेंसी के साथ सेवा का उपयोग किया जा सकता है।
इस दृष्टिकोण में प्रारंभिक सेटअप और रखरखाव के लिए अधिक प्रयास की आवश्यकता होती है, लेकिन अंतिम उपयोगकर्ता अनुभव में काफी सुधार होता है। विशेष रूप से, वैश्विक सेवाएं प्रदान करने वाले व्यवसायों के लिए, यह संरचना प्रतिस्पर्धी सेवाएं प्रदान करने में बहुत मददगार हो सकती है।
आज के CDN चर्चा में, हमने केवल बुनियादी अवधारणाओं पर चर्चा की।
वास्तव में, हम सेटिंग विवरणों पर भी चर्चा कर सकते थे, लेकिन क्लाउड विक्रेता (GCP, Azure, AWS) के आधार पर वे भिन्न होते हैं, और यह थोड़ा कम मनोरंजक है, इसलिए मैंने अवधारणा स्पष्टीकरण पर ध्यान केंद्रित किया।
अगर भविष्य में अवसर मिलेगा, तो मैं अधिक विस्तृत विवरणों पर भी चर्चा करूंगा।
तो, अगली चर्चा इस बारे में होगी कि कई (हमारे पास 8 हैं!) क्षेत्रों में क्लाउड स्टोरेज को कैसे सिंक्रनाइज़ किया जाता है।
धन्यवाद।