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

कंटेनर, Docker और Kubernetes के बीच का फ़र्क़ समझें, किस क्रम में सीखना चाहिए, और डेवलपर को असल में कितनी गहराई चाहिए — यह जानें।

Read in: English · తెలుగు · हिन्दी

कंटेनर, 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 शुरुआत में सिर्फ़ जानना काफ़ी हो सकता है — यह क्यों है, क्लस्टर क्या है, पॉड क्या है, एप्लिकेशन कैसे डिप्लॉय होते हैं, सर्विसेज़ कैसे एक्सपोज़ होती हैं — यह समझना चाहिए। अगर आपकी टीम नियमित रूप से Kubernetes इस्तेमाल करती है, तो आपको जानने से इस्तेमाल करने तक जाना पड़ सकता है। गहरी जानकारी तभी चाहिए जब आपकी भूमिका DevOps, प्लेटफ़ॉर्म इंजीनियरिंग या इन्फ्रास्ट्रक्चर की तरफ़ जाए।

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

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

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

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

आखिरी बात

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

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

सुधार बताएं

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