छह महीने में या उससे भी तेजी से देवओप्स इंजीनियर कैसे बनें। भाग 4. सॉफ्टवेयर पैकेजिंग

छह महीने में या उससे भी तेजी से देवओप्स इंजीनियर कैसे बनें। भाग 1. परिचय
छह महीने या उससे भी अधिक तेजी से एक DevOps इंजीनियर बनने के लिए। भाग 2. विन्यास
छह महीने या उससे भी अधिक तेजी से एक DevOps इंजीनियर कैसे बनें। भाग 3. संस्करण



इस बात पर विचार करें कि आसान तैनाती और बाद के निष्पादन के लिए अपने कोड को कैसे पैकेज करें। मैं आपको याद दिला दूं कि अब हम यहां हैं:



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

वर्चुअलाइजेशन ट्यूटोरियल


शारीरिक सर्वर याद रखें? वही सर्वर जिसके लिए आप खरीद आदेश की मंजूरी, भेजने की प्रक्रिया की मंजूरी, डेटा सेंटर, नेटवर्क कनेक्शन, ओएस इंस्टॉलेशन और पैच द्वारा अनुमोदन की प्रतीक्षा कर रहे हैं? ये सर्वर हैं जो हमारे जीवन में आए।

कल्पना करें कि घर खोजने का एकमात्र तरीका एक नया घर बनाना है। आखिर आपको कहीं रहने की जरूरत है क्या? इसलिए जब तक इसका निर्माण न हो जाए, तब तक प्रतीक्षा करें, चाहे इसमें कितना ही समय क्यों न लगे! यह अच्छा लग रहा है, क्योंकि हर किसी को अपना घर मिलता है, लेकिन बोझ, क्योंकि इसके निर्माण में बहुत समय लगता है। इस सादृश्य के बाद, एक भौतिक सर्वर एक घर जैसा है।

समय के साथ, यह प्रक्रिया कष्टप्रद हो गई, और वास्तव में स्मार्ट लोग वर्चुअलाइजेशन के विचार के साथ आए। उन्होंने एक भौतिक मशीन पर काल्पनिक मशीनों का एक गुच्छा चलाने का फैसला किया और उनमें से प्रत्येक को वास्तविक मशीन होने का नाटक किया। सरल!

इसलिए, यदि आपको वास्तव में घर की आवश्यकता है, तो आप अपना खुद का निर्माण कर सकते हैं और छह सप्ताह तक इंतजार कर सकते हैं। या आप एक अपार्टमेंट बिल्डिंग में जा सकते हैं और अन्य निवासियों के साथ संसाधनों को साझा कर सकते हैं। शायद इतना अच्छा नहीं, लेकिन बहुत अच्छा! और सबसे महत्वपूर्ण बात, आपको कुछ भी इंतजार करने की आवश्यकता नहीं है!

यह कुछ समय के लिए चला गया, और VMWare जैसी कंपनियों ने इस पर गंभीर पूंजी अर्जित की। तब अन्य स्मार्ट लोगों ने फैसला किया कि एक भौतिक मशीन में आभासी मशीनों के एक समूह को धकेलना पर्याप्त नहीं है: आपको कम संसाधनों में अधिक प्रक्रियाओं की अधिक कॉम्पैक्ट पैकेजिंग की आवश्यकता होती है।

तो, एक घर या यहां तक ​​कि एक अपार्टमेंट भी महंगा है, इसलिए शायद बस अस्थायी रूप से एक कमरा किराए पर लेने की कोशिश करें? इसके अलावा, मैं किसी भी समय इसे दर्ज कर सकता हूं और छोड़ सकता हूं! यह वही है जो डॉकर अनिवार्य रूप से दिसंबर 2018 का प्रतिनिधित्व करता है।



जन्म देने वाला


डॉकर एक नई तकनीक है जो बहुत पुराने विचार पर आधारित है। FreeBSD ऑपरेटिंग सिस्टम में जेल वर्चुअलाइजेशन इंजन की अवधारणा समाहित थी, जो 2000 की है! वास्तव में, सभी नए पुराने भूल गए हैं।

और फिर, और अब विचार ऑपरेटिंग सिस्टम स्तर वर्चुअलाइजेशन, या "सिस्टम-स्तरीय वर्चुअलाइजेशन" के आधार पर एक ही ऑपरेटिंग सिस्टम के भीतर अलग-अलग प्रक्रियाओं को अलग करना था। ध्यान दें कि यह पूर्ण वर्चुअलाइजेशन या "पूर्ण वर्चुअलाइजेशन" के समान नहीं है, जो एक ही भौतिक मेजबान पर कंधे से कंधा मिलाकर वर्चुअल मशीन चलाता है।

व्यवहार में, इसका मतलब है कि डॉकर की बढ़ती लोकप्रियता सूक्ष्मजीवों की वृद्धि को दर्शाती है, सॉफ्टवेयर विकास के लिए एक दृष्टिकोण जिसमें सॉफ्टवेयर कई अलग-अलग घटकों में टूट गया है। और इन सभी घटकों को अपने घर की आवश्यकता होती है। व्यक्तिगत रूप से उन्हें स्टैंड-अलोन जावा अनुप्रयोगों या बाइनरी एक्ज़ीक्यूटेबल्स के रूप में नियुक्त करना एक बहुत बड़ा दर्द है: जिस तरह से आप एक जावा एप्लिकेशन को नियंत्रित करते हैं वह उस तरह से अलग है जैसे आप C ++ एप्लिकेशन को नियंत्रित करते हैं, और यह बदले में, एक गोलांग एप्लिकेशन को प्रबंधित करने से अलग है। ।

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

डॉकटर लाभ


1. प्रक्रिया अलगाव


डॉकर प्रत्येक सेवा को एक पूरी तरह से पृथक प्रक्रिया की अनुमति देता है। सेवा A अपने छोटे कंटेनर में रहता है, अपनी सभी निर्भरताओं के साथ, सेवा B अपने सभी निर्भरता के साथ अपने निजी कंटेनर में भी रहता है, और ये दोनों सेवाएं संघर्ष नहीं करती हैं।

इसके अलावा, यदि एक कंटेनर विफल रहता है, तो केवल इस कंटेनर को नुकसान होगा।

शेष कंटेनर काम करना जारी रखेंगे। ऐसा तंत्र सुरक्षा के लिए लाभदायक है। यदि कंटेनर से छेड़छाड़ की जाती है, तो बेस ओएस को क्रैक करने के लिए यह बहुत मुश्किल (लेकिन असंभव नहीं है!) इससे बाहर निकलना।

अंत में, यदि कंटेनर अनुचित तरीके से व्यवहार करता है (बहुत अधिक प्रोसेसर या मेमोरी संसाधनों का उपभोग करता है), तो आप सिस्टम के बाकी हिस्सों को प्रभावित किए बिना केवल उस कंटेनर के लिए "विस्फोट त्रिज्या" को कम कर सकते हैं।

2. परिनियोजन


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

दूसरी ओर, यदि यह एक जावा एप्लिकेशन है, तो इसमें ग्रैड बिल्ट असेंबली होगी, जिसकी सभी निर्भरताएँ उपयुक्त स्थानों पर विस्तारित और बिखरी हुई हैं।

देखिए क्या है मामला? विभिन्न अनुप्रयोगों, विभिन्न भाषाओं और अलग-अलग रनटाइम के साथ असेंबली एक समस्या उत्पन्न करती है जब यह इन अनुप्रयोगों को ठेस के लिए तैनात करने की बात आती है। इसके अलावा, यदि समस्या उत्पन्न होती है, तो समस्या समाप्त हो जाती है। क्या होगा अगर सेवा A पायथन v1 पुस्तकालय पर निर्भर करता है और सेवा B पायथन v2 पुस्तकालय पर निर्भर करता है? यहाँ एक विरोधाभास है, क्योंकि v1 और v2 एक ही मशीन पर सह-अस्तित्व नहीं रख सकते।

और फिर डॉकर खेल में आता है। यह आपको न केवल प्रक्रिया को पूरी तरह से अलग करने की अनुमति देता है, बल्कि निर्भरता भी। एक ही ओएस पर कई कंटेनरों को कंधे से कंधा मिलाकर काम करना संभव है, जिनमें से प्रत्येक में अपने स्वयं के पुस्तकालय और पैकेज हैं जो दूसरों के साथ संगत नहीं हैं।

3. कार्यक्रम निष्पादन प्रबंधन


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

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

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



नोट: पटाखा मंच एक सर्वर रहित विकास मॉडल का उपयोग करके निर्मित पृथक वातावरण और सेवाओं को बनाने और प्रबंधित करने के लिए उपकरण प्रदान करता है। प्रोजेक्ट कोड को रस्ट में लिखा गया है और अपाचे 2.0 लाइसेंस के तहत वितरित किया गया है।

पटाखे हल्के आभासी मशीनों प्रदान करते हैं जिन्हें माइक्रोवीएम कहा जाता है। उन्हें पूरी तरह से अलग करने के लिए, हार्डवेयर वर्चुअलाइजेशन तकनीकों का उपयोग किया जाता है, लेकिन साथ ही, साधारण कंटेनरों के स्तर पर प्रदर्शन और लचीलापन प्रदान किया जाता है। प्लेटफ़ॉर्म वर्चुअल मशीन मॉनिटर (VMM) पर आधारित है, जो लिनक्स कर्नेल में निर्मित KVM हाइपरविजर का उपयोग करता है। VMM , Rust में लिखे गए क्रॉसवम प्रोजेक्ट के आधार पर आधारित है , जिसे Google ChromeOS पर लिनक्स लॉन्च करने के लिए विकसित कर रहा है। 2018 के अंत में, क्रॉसवम और फायरक्रैकर कोडबेस को विभाजित किया गया था, लेकिन अमेज़ॅन की योजना है कि उधार लेने वाले घटकों के सुधार को अपस्ट्रीम में भेजा जाए।

हालांकि, डॉकटर कितना भी अच्छा क्यों न हो, उसमें भी कमियां हैं।

लाम्बा का परिचय


सबसे पहले, डॉकर चलाना अभी भी उन सर्वरों पर काम करना जारी रखता है जिन्हें तैयार करने, पैच करने आदि की आवश्यकता होती है। दूसरे, डॉकर 100% सुरक्षित नहीं है। कम से कम यह वर्चुअल मशीन जितना सुरक्षित नहीं है। एक कारण है कि होस्ट किए गए कंटेनरों के साथ काम करने वाली बड़ी कंपनियां आभासी मशीनों के अंदर ऐसा करती हैं, न कि नंगे धातु पर। उन्हें फास्ट कंटेनर लॉन्च समय और वर्चुअल मशीन सुरक्षा की आवश्यकता है!



तीसरा, कोई भी वास्तव में डॉकर को नियंत्रित नहीं करता है। इसके बजाय, इसे लगभग हमेशा एक जटिल कंटेनर ऑर्केस्ट्रेशन संरचना के हिस्से के रूप में तैनात किया जाता है जैसे कि कुबेरनेट्स, ईसीएस, डोकर-झुंड या घुमंतू। ये बल्कि जटिल मंच हैं जिनके लिए विशेष कर्मियों को काम करने की आवश्यकता होती है (मैं बाद में इन समाधानों पर अधिक विस्तार से चर्चा करूंगा)।

हालांकि, अगर मैं सिर्फ एक डेवलपर हूं, तो मैं सिर्फ कोड लिखना चाहता हूं और किसी को मेरे लिए इसे चलाने के लिए कहना चाहता हूं। डॉकर, कुबेरनेट्स और अन्य जैज़ - क्या मुझे वास्तव में यह सब सीखना है? मैं यह कहूंगा: यह सब परिस्थितियों पर निर्भर करता है। उन लोगों के लिए जो सिर्फ अपना कोड चलाना चाहते हैं, AWS लैंबडा क्लाउड स्टोरेज और इसी तरह का सामान एक बढ़िया विकल्प है।

AWS लैम्ब्डा आपको प्रावधान और सर्वर प्रबंधन के बिना कोड चलाने की सुविधा देता है। आप केवल उस कंप्यूटिंग समय के लिए भुगतान करते हैं जिसका आप उपभोग करते हैं, और जब आपका कोड काम नहीं करता है, तो कोई शुल्क नहीं है।
अगर आपने सर्वरलेस स्टोरेज के बारे में सुना है, तो यह वह है। कोई और अधिक लॉन्च सर्वर या प्रबंधन कंटेनर! बस अपना कोड लिखें, इसे ज़िप फ़ाइल में पैक करें, अमेज़ॅन पर अपलोड करें, और उन्हें अपने सिरदर्द से निपटने दें! इसके अलावा, चूंकि "लैम्ब्डा" अल्पकालिक हैं, इसलिए उन्हें दरार करने के लिए कुछ भी नहीं है - "लैम्ब्डा" उनके डिजाइन में काफी सुरक्षित हैं। वास्तव में महान?

लेकिन नकारात्मक बिंदु भी हैं। सबसे पहले, लैम्ब्डा केवल अधिकतम 15 मिनट (नवंबर 2018 तक) के लिए काम कर सकते हैं। इसका अर्थ है कि लंबे समय से चल रही प्रक्रियाएं, जैसे काफ्का या नंबर क्रैकिंग एप्लिकेशन, लैम्ब्डा में काम नहीं कर सकती हैं।

दूसरे, "लंबोदा" कार्य के रूप में सेवा (सेवा के रूप में कार्य) हैं। इसका मतलब यह है कि आपके आवेदन को पूरी तरह से माइक्रोसोर्विसेज में विघटित किया जाना चाहिए और अन्य जटिल PaS सेवाओं जैसे AWS स्टेप फ़ंक्शंस के साथ सिंक्रनाइज़ किया जाना चाहिए । हालांकि, प्रत्येक उद्यम माइक्रोसवर्क आर्किटेक्चर के इस स्तर पर नहीं है।

तीसरा, लंबोदर समस्या निवारण बहुत कठिन है। वे क्लाउड रनटाइम हैं, और अमेज़ॅन इकोसिस्टम में सभी बग फिक्स होते हैं। यह अक्सर काफी जटिल और अचूक होता है। संक्षेप में, यहाँ कोई मुफ्त भोजन नहीं है।

मैं ध्यान देता हूं कि 2018 के अंत में सर्वर रहित क्लाउड कंटेनर समाधान भी हैं जैसे कि AWS Fargateइसके मैकेनिक लाम्बा के समान हैं। यदि आप इन सेवाओं को सीखना शुरू कर रहे हैं, तो मैं फारगेट की कोशिश करने की अत्यधिक सलाह देता हूं, जो कंटेनर को "सही" काम करने के लिए एक अविश्वसनीय आसान तरीका है। इसके अलावा, 13 जनवरी 2019 को AWS क्लाउड सेवाओं ने Fargate की कीमत में उल्लेखनीय कमी की घोषणा की, जिससे यह सर्वर रहित कंटेनरों को लॉन्च करने के लिए एक बहुत ही आकर्षक विकल्प बन गया।



सारांश


डॉकर और लैंबडा दो सबसे लोकप्रिय आधुनिक क्लाउड-आधारित दृष्टिकोण हैं जो पैकेजिंग, रनिंग और प्रबंधन अनुप्रयोगों के लिए हैं। वे अक्सर मुफ्त होते हैं, दोनों विभिन्न उपयोग के मामलों और अनुप्रयोगों के लिए उपयुक्त हैं।

जैसा कि यह हो सकता है, आधुनिक DevOps इंजीनियर दोनों में अच्छी तरह से वाकिफ होना चाहिए। इसलिए, डॉकर और लैंबडा का प्रशिक्षण अच्छा लघु और मध्यम अवधि के लक्ष्य हैं।
मैं ध्यान देता हूं कि अब तक हमने उन विषयों से निपटा है जो कि DevOps जूनियर और इंटरमीडिएट स्तर के इंजीनियरों को जानना चाहिए। निम्नलिखित अनुभागों में, हम उन तरीकों पर चर्चा करना शुरू करेंगे जो मध्य-स्तर और वरिष्ठ DevOps इंजीनियरों के लिए अधिक उपयुक्त हैं। हमेशा की तरह, ज्ञान प्राप्त करने के लिए कोई आसान तरीके नहीं हैं!

बहुत जल्द जारी रखने के लिए ...

विज्ञापन का एक सा :)


हमारे साथ रहने के लिए धन्यवाद। क्या आप हमारे लेख पसंद करते हैं? अधिक दिलचस्प सामग्री देखना चाहते हैं? एक ऑर्डर देकर या $ 4.99 से डेवलपर्स के लिए अपने दोस्तों के क्लाउड-आधारित VPS की अनुशंसा करके हमें समर्थन दें, आपके द्वारा आविष्कार किया गया एंट्री-लेवल सर्वर का एक अनूठा एनालॉग: VPS (KVM) E5-2697 3 (6 करोड़) 10GB DDR4 480GB SSD 1Gbps के बारे में पूरी सच्चाई $ 19 या सर्वर को कैसे विभाजित करें? (विकल्प RAID1 और RAID10 के साथ उपलब्ध हैं, 24 कोर तक और 40GB DDR4 तक)।

डेल R730xd एम्स्टर्डम में इक्विनिक्स टीयर IV डेटा सेंटर में 2 गुना सस्ता? केवल हमारे पास 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV नीदरलैंड के 199 डॉलर में से है!डेल R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $ 99 से! इन्फ्रास्ट्रक्चर Bldg का निर्माण कैसे करें के बारे में पढ़ेंएक पैसा के लिए 9,000 यूरो की लागत डेल R730xd E5-2650 v4 सर्वर का उपयोग कर वर्ग सी?

All Articles