जब मैंने उनसे सॉफ़्टवेयर विकास उद्योग में क्रांति लाने वाली सबसे बड़ी चीज़ के बारे में पूछा, तो मेरे प्रबंधक ने स्पष्ट रूप से कहा, " कंटेनरीकरण "। उन्होंने तर्क दिया कि कंटेनरीकरण के बिना, आज के सॉफ़्टवेयर की तीव्र स्केलिंग और वैश्विक तैनाती कहीं अधिक विकट चुनौती होती। यह ध्यान रखना उल्लेखनीय है कि आज उपयोग में आने वाले लगभग सभी सॉफ्टवेयर विभिन्न क्षमताओं में कंटेनरीकरण का लाभ उठाते हैं, जो आधुनिक सॉफ्टवेयर पारिस्थितिकी तंत्र को सशक्त बनाने में इसकी अपरिहार्य भूमिका को रेखांकित करता है!
आपमें से जो लोग नहीं जानते, उनके लिए यहां AWS की वेबसाइट ~ से एक परिभाषा दी गई है
*“Containerisation is a software deployment process that bundles an application's code with all the files and libraries it needs to run on any infrastructure. Traditionally, to run any application on your computer, you had to install the version that matched your machine's operating system.”*
छवियाँ कंटेनरों के लिए बिल्डिंग ब्लॉक्स के रूप में काम करती हैं, जैसे कि उनके निर्माण का मार्गदर्शन करने वाले ब्लूप्रिंट। इसलिए, हल्के और सुव्यवस्थित कंटेनर छवियों को बनाए रखने से तैनाती प्रक्रिया तेज हो जाती है और इन छवियों के वितरण की सुविधा मिलती है। अपनी डॉकर छवियों को अनुकूलित करके, आप न केवल समग्र विकास चक्र में तेजी ला सकते हैं, बल्कि आप अधिक मजबूत और कुशल सॉफ़्टवेयर वातावरण सुनिश्चित करते हुए सुरक्षा उपायों को भी मजबूत कर सकते हैं।
इस लेख में, हम कुशल डॉकर छवियां बनाने के लिए विभिन्न तरीकों का पता लगाएंगे, जो अंततः आपके एप्लिकेशन की दक्षता को बढ़ाएंगे।
कंटेनर को वर्चुअल मशीन (वीएम) की तरह समझना और एक ही कंटेनर के अंदर एक से अधिक एप्लिकेशन की पैकेजिंग करना एक सामान्य गलती है। आपके कंटेनर का आकार बढ़ाने के साथ-साथ, इस अभ्यास के अन्य नुकसान भी हैं।
एक कंटेनर का जीवनकाल उसके द्वारा चलाए जा रहे एप्लिकेशन से निकटता से संबंधित होने की उम्मीद की जाती है। ऐप शुरू होने पर कंटेनर शुरू होना चाहिए और ऐप खत्म होने पर बंद हो जाना चाहिए। डॉकर और कुबेरनेट्स जैसे कंटेनर ऑर्केस्ट्रेशन समाधान कंटेनरों की इस विशेषता पर महत्वपूर्ण रूप से निर्भर करते हैं। यदि एक कंटेनर कई ऐप्स चला रहा है, तो ऑर्केस्ट्रेशन टूल आपके एप्लिकेशन को पहचानने और पुनः आरंभ करने में असमर्थ होंगे!
छवियाँ परतों से बनी होती हैं, और आपके डॉकरफ़ाइल में प्रत्येक निर्देश एक नई परत जोड़ता है। कंटेनरीकरण प्रौद्योगिकियां, जैसे डॉकर, निर्माण समय में कटौती करने के लिए जहां भी संभव हो पूर्व निर्माणों से परतों का पुन: उपयोग करने का प्रयास करेंगी। किसी परत के लिए कैश का उपयोग केवल तभी किया जा सकता है जब पिछले निर्माण के बाद से कोई भी अंतर्निहित परत नहीं बदली हो।
छवि निर्माण की गति को बढ़ाने के लिए, आपके डॉकरफ़ाइल में नीचे उन निर्देशों को रखना फायदेमंद है जो बार-बार बदल सकते हैं। यह दृष्टिकोण डॉकर को अपने कैशिंग सिस्टम का अधिक प्रभावी ढंग से लाभ उठाने में सक्षम बनाता है। उदाहरण के लिए, चूंकि स्रोत कोड में बार-बार बदलाव होते रहते हैं, इसलिए प्रक्रिया के अंत में इसे छवि में कॉपी करने की सलाह दी जाती है।
हालाँकि यह आपकी छवियों को हल्का नहीं बनाता है, यह निर्माण प्रक्रिया को तेज़ बनाता है!
अक्सर, कंटेनर छवियों में अनावश्यक उपकरण शामिल होते हैं, जिससे छवि फूल जाती है और संभावित सुरक्षा कमजोरियाँ होती हैं। उदाहरण के लिए, netcat
जैसे टूल का उपयोग हैकर्स द्वारा आपके कंटेनर के भीतर दुर्भावनापूर्ण गतिविधियों को अंजाम देने के लिए किया जा सकता है यदि वे अनधिकृत पहुंच प्राप्त करते हैं।
आपके कंटेनर छवि के साथ भेजे जाने वाले टूल और लाइब्रेरीज़ के सेट को सख्ती से बनाए रखने से सुरक्षा खतरों को कम करने में काफी मदद मिल सकती है और इसके परिणामस्वरूप पतली छवियां भी प्राप्त होंगी। छोटी छवियां तेजी से डाउनलोड होती हैं, जिसका अर्थ है कि कंटेनर तेजी से शुरू होता है।
जिस छवि को हम FROM निर्देश में संदर्भित करते हैं उसे आधार छवि कहा जाता है। आधार छवि निर्मित अंतिम छवि के आकार को काफी हद तक निर्धारित करती है। हमें अपनी छवि के अंतिम आकार को कम करने के लिए यथासंभव सबसे छोटी आधार छवि का उपयोग करने का प्रयास करना चाहिए।
जहां भी संभव हो अल्पाइन छवियों का उपयोग करने का प्रयास करें क्योंकि वे आकार में छोटे होते हैं और अक्सर विकास गतिविधि का समर्थन करने के लिए पर्याप्त उपकरण होते हैं।
यहां तक कि जब एक छोटी छवि में आपके लिए आवश्यक सभी उपकरण शामिल नहीं होते हैं, तब भी इसका उपयोग करना एक बेहतर विकल्प हो सकता है। हल्के आधार छवि के शीर्ष पर आपको जिन पैकेजों की आवश्यकता होती है उन्हें स्थापित करने से भारी छवि का उपयोग करने की तुलना में बचत हो सकती है।
सोर्स कोड कॉपी करते समय, कई अवांछित फ़ाइलें और फ़ोल्डर भी कॉपी हो सकते हैं। इससे आपकी छवि का आकार बढ़ जाता है और अंततः सूजन हो जाती है। कॉपी की गई फ़ाइलों की मात्रा को कम करने का प्रयास करें और उन्हें न्यूनतम रखने का प्रयास करें।
हमारे उद्योग में कंटेनर छवियों को अनुकूलित करने और सर्वोत्तम प्रथाओं को स्थापित करने के महत्व को अक्सर नजरअंदाज कर दिया जाता है। हालाँकि, इन प्रथाओं का पालन करने से होने वाले पर्याप्त लाभों को कम करके आंका नहीं जा सकता है। डेवलपर्स के रूप में, पतली और तेज़ कंटेनर छवियों के निर्माण को लगातार प्राथमिकता देना आवश्यक है।
इसके साथ ही हम इस लेख के अंत तक पहुँचते हैं। आशा है आपको इसे पढ़कर आनंद आया होगा!