कंटेनर, Docker और Kubernetes: पहले क्या सीखें?

कंटेनर, Docker और Kubernetes के अंतर को समझें। जानें कि कंटेनर की बुनियादी बातें पहले क्यों आती हैं, पैकेजिंग टूल्स कैसे मदद करते हैं और क्लस्टर ऑर्केस्ट्रेशन कब उपयोगी होता है।

इन भाषाओं में पढ़ें: English · తెలుగు · हिन्दी

Sign in to save

अलग प्रोसेस निष्पादन, मानकीकृत कंटेनर पैकेजिंग और समन्वित मल्टी-नोड क्लस्टर ऑर्केस्ट्रेशन को दर्शाने वाला तीन-चरणीय इन्फ्रास्ट्रक्चर प्रगति दृश्य।

कंटेनर, Docker और Kubernetes का ज़िक्र अक्सर साथ में होता है। इसीलिए ये एक साथ सीखने वाली एक बड़ी चीज़ जैसे लग सकते हैं। ऐसा नहीं है। ये आपस में जुड़े हैं, लेकिन अलग-अलग समस्याएं हल करते हैं। इन्हें सीखने का सबसे आसान तरीक़ा है सही क्रम में सीखना।

कंटेनर से शुरू करें

क्लाउड कंप्यूटिंग की बुनियादी बातें समझने के साथ-साथ, एक कंटेनर किसी एप्लिकेशन को उसकी ज़रूरत की चीज़ों के साथ पैकेज करता है — जिसमें एप्लिकेशन कोड, लाइब्रेरी, डिपेंडेंसी और रनटाइम सेटिंग्स शामिल हो सकती हैं। सबसे बड़ा फ़ायदा है स्थिरता — एप्लिकेशन डेवलपर के लैपटॉप, टेस्ट एनवायरनमेंट या सर्वर पर लगभग एक जैसे चल सकता है। «It works on my machine, लेकिन कहीं और नहीं चलता» वाली आम समस्या कम करने में कंटेनर मदद करते हैं। Docker या Kubernetes सीखने से पहले, पहले यह विचार समझें। कंटेनर क्यों हैं, यह समझते ही बाक़ी सब कुछ काफ़ी आसान हो जाता है।

फिर Docker सीखें

कंटेनर बनाने और चलाने के लिए इस्तेमाल होने वाले सबसे आम टूल्स में से एक है Docker। यह डेवलपर्स को एप्लिकेशन को कंटेनर इमेज में पैकेज करने, और उस इमेज को कंटेनर के तौर पर चलाने में मदद करता है। ज़्यादातर डेवलपर्स के लिए व्यावहारिक सीखना Docker से ही शुरू होता है। आपको समझना चाहिए कि इमेज कैसे बनाएं, कंटेनर कैसे चलाएं, कॉन्फ़िगरेशन कैसे दें, पोर्ट कैसे एक्सपोज़ करें, लॉग कैसे देखें, और ज़रूरत पड़ने पर कंटेनरों को कैसे कनेक्ट करें। हर Docker कमांड जानने की ज़रूरत नहीं। बस इतना पता होना चाहिए कि आप जिन एप्लिकेशन पर काम करते हैं, उन्हें पैकेज और चला सकें।

Kubernetes अलग समस्या हल करता है

Docker कंटेनरों के साथ काम करने में मदद करता है। Kubernetes कई सिस्टम्स पर चल रहे कई कंटेनरों को मैनेज करने में मदद करता है। सोचिए कि आपका एक एप्लिकेशन एक कंटेनर में चल रहा है — Docker काफ़ी हो सकता है। अब सोचिए कि वही एप्लिकेशन कई सर्वरों पर, कई कॉपी में, बहुत सारे यूज़र्स से आने वाले ट्रैफ़िक के साथ, और किसी फ़ेल होने पर रिकवर होने वाली सर्विसेज़ के साथ चल रहा है। यहीं Kubernetes काम आता है। यह एप्लिकेशन की कई कॉपी चलाने, फ़ेल हुए वर्कलोड को दोबारा शुरू करने, ट्रैफ़िक बाँटने, एप्लिकेशन अपडेट करने, कॉन्फ़िगरेशन मैनेज करने, और मशीनों के समूह पर वर्कलोड चलाने जैसी चीज़ों में मदद कर सकता है। इसीलिए कंटेनर समझने के बाद ही Kubernetes आमतौर पर ज़्यादा समझ में आता है।

Kubernetes से शुरुआत न करें

नौकरी के विज्ञापनों में दिखने की वजह से Kubernetes सीखना शुरू कर देना एक आम ग़लती है। समस्या यह है: Kubernetes कई नए विचार एक साथ लेकर आता है। अगर कंटेनर पहले से परिचित न हों, तो आपको दो चीज़ें एक साथ सीखनी पड़ती हैं: कंटेनर कैसे काम करते हैं, और Kubernetes उन्हें कैसे मैनेज करता है। इससे यह विषय ज़रूरत से ज़्यादा मुश्किल बन जाता है। बेहतर क्रम है: कंटेनर → Docker → Kubernetes। हर क़दम अगले के लिए बुनियाद देता है।

तुलना: कंटेनर बुनियादी बातें, व्यावहारिक टूल्स और मल्टी-सर्वर ऑर्केस्ट्रेशन
क्षेत्र / टूल मुख्य ध्यान यह आमतौर पर क्या संभालता है? यह कब उपयोगी होता है? सीखने का तरीक़ा
कंटेनर बुनियादी बातें प्रोसेस आइसोलेशन और फ़ाइलसिस्टम सीमाएं साझा ऑपरेटिंग सिस्टम कर्नेल पर चलने वाले अलग एप्लिकेशन प्रोसेस पूरी वर्चुअल मशीन के भारी बोझ के बिना ऐप को सुसंगत तरीक़े से चलाने के लिए बुनियादी अवधारणा; पहले इसे समझें
Docker और कंटेनर टूल्स पैकेजिंग, इमेज फ़ॉर्मैट और डेवलपर वर्कफ़्लो कंटेनर इमेज, लोकल बिल्ड, वॉल्यूम और पोर्ट मैपिंग चलने योग्य कंटेनर इमेज बनाने, टेस्ट करने और शेयर करने के लिए व्यावहारिक अभ्यास के लिए सबसे अच्छा शुरुआती बिंदु
Kubernetes और ऑर्केस्ट्रेशन कई मशीनों में फैले कंटेनरों का समन्वय शेड्यूलिंग, स्वचालित रिकवरी, सर्विस डिस्कवरी और क्लस्टर स्केलिंग जब बड़े पैमाने के सिस्टम, हाई अवेलेबिलिटी और मल्टी-सर्वर इंफ्रास्ट्रक्चर की ज़रूरत हो तभी सीखें जब आपके एप्लिकेशन को क्लस्टर समन्वय की वास्तव में ज़रूरत हो

डेवलपर को कितना सीखना चाहिए?

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

व्यावहारिक नियम

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

कुछ छोटा चला कर सीखें

इन टेक्नोलॉजी को समझने का सबसे अच्छा तरीक़ा हफ़्तों तक परिभाषाएं पढ़ना नहीं है। एक छोटा एप्लिकेशन लें, उसे सामान्य तरीक़े से चलाएं, फिर उसे कंटेनर में डालें, Docker से चलाएं, और जब यह सहज लगने लगे, तो उसी एप्लिकेशन को एक आसान Kubernetes एनवायरनमेंट पर डिप्लॉय करें। यह क्रम आपको दिखाता है कि हर टेक्नोलॉजी क्या जोड़ती है। पहले समस्या समझ आती है, फिर समझ आता है कि अगला टूल क्यों है।

बुनियाद के बिना टूल न सीखें

एप्लिकेशन, ऑपरेटिंग सिस्टम, नेटवर्किंग, पोर्ट, स्टोरेज और एनवायरनमेंट वेरिएबल समझने की ज़रूरत कंटेनर ख़त्म नहीं करते। कंटेनर समझने की ज़रूरत Kubernetes ख़त्म नहीं करता। अगर ये बुनियादें कमज़ोर हों, तो टूल असल से कहीं ज़्यादा जटिल लग सकते हैं। इसीलिए सीखने का क्रम मायने रखता है।

आखिरी बात

कंटेनर, Docker और Kubernetes एक ही गहराई तक सीखने की ज़रूरत नहीं। कंटेनर से शुरू करें। व्यावहारिक तौर पर कंटेनर कैसे काम करते हैं, यह समझने के लिए Docker इस्तेमाल करें। बड़े एनवायरनमेंट में कंटेनर मैनेज करने की ज़रूरत पड़े, तब Kubernetes की तरफ़ जाएं।

पहले समस्या सीखें, फिर उसे हल करने वाला टूल।

सुधार बताएं

सुधार सीधे एडिटर तक पहुँचते हैं; ये अपने आप कभी प्रकाशित नहीं होते। किसी अकाउंट की ज़रूरत नहीं।