एंटरप्राइज़ वातावरण में सुरक्षा कारणों से अक्सर ऐसे एयर-गैप्ड नेटवर्क में Docker चलाया जाता है जहाँ बाहरी इंटरनेट अवरुद्ध होता है। ऐसे वातावरण में इमेज को अपडेट करने या नई डिप्लॉयमेंट करने के लिए, बाहर से docker save के जरिए सहेजी गई इमेज फ़ाइल को मैन्युअली लाकर docker load से लोड करना पड़ता है.
लेकिन जब इमेज कई GB या उससे बड़ी हो, तो थोड़े-से बदलाव पर भी पूरी इमेज फिर से ले जानी पड़ती है, जिससे अक्षमता पैदा होती है।
Docker इमेज कई read-only layers के संयोजन से बनी होती हैं। एक जैसी layers कई इमेजों के बीच बिना दोबारा स्टोर किए साझा की जाती हैं। इस संरचना की वजह से केवल बदली हुई layers भेजना पर्याप्त होता है, और बाकी को cache के रूप में दोबारा उपयोग किया जा सकता है।
एयर-गैप्ड नेटवर्क में ऑटोमैटिक caching कठिन होती है, इसलिए केवल बदली हुई layers को अलग से पैक करके ट्रांसफ़र करने की रणनीति अपनाई जाती है। इसे ऑटोमेट करने के लिए Python-आधारित docker-diff टूल विकसित किया गया है, जो compare mode और merge mode के जरिए क्रमशः तुलना और मर्ज कर सकता है।
जहाँ इमेज बार-बार अपडेट होती हैं, वहाँ incremental updates के जरिए नेटवर्क संसाधनों और समय की बचत की जा सकती है, और डिप्लॉयमेंट की विश्वसनीयता व गति को बेहतर बनाया जा सकता है।
यदि संभव हो, तो incremental package के creation, transfer और merge प्रक्रिया तक को ऑटोमेट करने की सिफारिश की जाती है, ताकि गलतियाँ कम हों और स्थिरता बढ़े।
3 टिप्पणियां
क्या बंद नेटवर्क वाले वातावरण में private docker registry बनाना संभव नहीं है? इसे इतनी जटिल तरीके से क्यों बनाया जा रहा है?
> अगर infra की परिस्थितियाँ अनुकूल हों, तो internal container registry चलाना सबसे आदर्श हो सकता है
यह पंक्ति आखिर की ओर है... लगता है इसके पीछे कोई दुखभरी कहानी है 🫠
शायद आर्किटेक्चर या इंफ्रास्ट्रक्चर संबंधी कुछ सीमाएँ होंगी, है न? लगता है कि AI चलाने के लिए ज़रूरी न्यूनतम हार्डवेयर ही ग्राहक कंपनी को डिलीवर किया जाता होगा।