← सभी प्रश्न
वर्चुअलाइजेशन और कंटेनरीकरण के बीच मुख्य अंतर क्या हैं, और प्रत्येक तकनीक का उपयोग किस लिए किया जाता है?
मध्यममध्यमDevOps

वर्चुअलाइजेशन और कंटेनरीकरण के बीच मुख्य अंतर क्या हैं, और प्रत्येक तकनीक का उपयोग किस लिए किया जाता है?

संक्षिप्त उत्तर
वर्चुअलाइजेशन भौतिक हार्डवेयर को अमूर्त करता है: एक हाइपरवाइजर वर्चुअल मशीन चलाता है, प्रत्येक का अपना पूर्ण अतिथि OS है। कंटेनरीकरण ओएस परत को अमूर्त करता है: कंटेनर होस्ट कर्नेल को साझा करें और ऐप्स को प्रक्रियाओं के रूप में अलग करें, जिससे वे हल्के और तेज़ हो जाएं लेकिन कमजोर अलगाव के साथ.

वर्चुअलाइजेशन (वीएम)। एक वर्चुअल मशीन भौतिक हार्डवेयर का एक अमूर्त रूप है - एक सर्वर को कई में बदलना। एक हाइपरवाइजर होस्ट और वीएम के बीच बैठता है, सीपीयू, मेमोरी और स्टोरेज को पूल करता है। प्रत्येक वीएम में अतिथि ओएस की पूरी प्रतिलिपि, साथ ही एप्लिकेशन और सभी लाइब्रेरी शामिल हैं। हाइपरविजर (वीएमएम) अलगाव को लागू करता है, और इसकी सीमा सीपीयू वर्चुअलाइजेशन एक्सटेंशन (इंटेल वीटी-एक्स / एएमडी-वी) द्वारा हार्डवेयर-सहायता प्राप्त है।

हाइपरवाइज़र दो प्रकार में आते हैं:

  • टाइप 1 (बेयर-मेटल): सीधे हार्डवेयर पर चलता है; स्वच्छ उदाहरण VMware ESXi/vSphere, Microsoft हाइपर-V और Xen हैं। केवीएम एक हाइब्रिड केस है: एक लिनक्स कर्नेल मॉड्यूल जो कर्नेल को टाइप 1 हाइपरवाइजर में बदल देता है जबकि होस्ट अभी भी सामान्य प्रक्रियाएं चलाता है।
  • टाइप 2 (होस्टेड): एक पारंपरिक ओएस (वर्चुअलबॉक्स, वीएमवेयर वर्कस्टेशन) पर एक एप्लिकेशन के रूप में चलता है; निजी मशीनों के लिए उपयुक्त.

कंटेनरीकरण। एक कंटेनर पैकेज कोड और उसकी सभी निर्भरताएं (रनटाइम, लाइब्रेरी, सेटिंग्स) और हार्डवेयर के बजाय ऑपरेटिंग सिस्टम को वर्चुअलाइज करता है। कंटेनर होस्ट ओएस कर्नेल साझा करते हैं और उपयोगकर्ता स्थान में पृथक प्रक्रियाओं के रूप में चलते हैं। लिनक्स पर यह नेमस्पेस (आइसोलेशन) और सीग्रुप्स (रिसोर्स अकाउंटिंग और लिमिट्स) का उपयोग करता है, जो क्षमताओं, एसईसीकॉम्प, मैक (SELinux/AppArmor), यूजर नेमस्पेस और रूटलेस मोड द्वारा और अधिक कठोर हो जाता है। कर्नेल साझाकरण का तात्पर्य ओएस-परिवार अनुकूलता से है: लिनक्स कंटेनरों को लिनक्स कर्नेल की आवश्यकता होती है, इसलिए विंडोज़/मैकओएस पर डॉकर डेस्कटॉप चुपचाप एक हल्का लिनक्स वीएम चलाता है। डॉकर ने कंटेनरों को लोकप्रिय बनाया, लेकिन प्रारूप OCI द्वारा मानकीकृत है; अन्य रनटाइम भी मौजूद हैं - कंटेनरड, सीआरआई-ओ, पॉडमैन।

मुख्य अंतर:

  • आकार: कंटेनर छवियां आम तौर पर कुछ एमबी से सैकड़ों एमबी तक होती हैं; वीएम जीबी हैं (परिमाण के उदाहरणात्मक क्रम, निश्चित संख्या नहीं)।
  • स्टार्टअप: कंटेनर सेकंड/मिलीसेकंड में शुरू होते हैं; वीएम को एक पूर्ण ओएस बूट करना होगा।
  • ओवरहेड: कंटेनरों को प्रति ऐप अलग ओएस की आवश्यकता नहीं है - उच्च घनत्व, कम लाइसेंसिंग लागत।
  • आइसोलेशन/सुरक्षा: वीएम मजबूत, हार्डवेयर-आधारित आइसोलेशन प्रदान करते हैं; कंटेनर कमज़ोर, सॉफ़्टवेयर-आधारित अलगाव (साझा कर्नेल से कंटेनर-भागने का जोखिम) प्रदान करते हैं। बीच का रास्ता सैंडबॉक्स्ड रनटाइम (gVisor, काटा कंटेनर, फायरक्रैकर) है जो VM-स्तर अलगाव तक पहुंचता है।

प्रत्येक का उपयोग किस लिए किया जाता है:

  • वीएम: एक सर्वर पर अलग-अलग ओएस चलाना, संसाधन-गहन या मोनोलिथिक वर्कलोड, और मजबूत अलगाव (बहु-किरायेदारी, विरासत ऐप्स)।
  • कंटेनर: क्लाउड-नेटिव विकास, माइक्रोसर्विसेज, सीआई/सीडी, पोर्टेबिलिटी, और तेज़ क्षैतिज स्केलिंग (कुबेरनेट्स द्वारा ऑर्केस्ट्रेटेड)।

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

Dockerआभासीकरणकंटेनर

अभी डाउनलोड करें और अपने कामों के लिए मुफ़्त में आज़माएँ!

Windows के लिए डाउनलोड करें
10 15 मुफ़्त क्रेडिट • क्रेडिट कार्ड की आवश्यकता नहींसंस्करण: लोड हो रहा है…

बिना इंस्टॉल किए - डाउनलोड करो और चलाओ। बिना रजिस्ट्रेशन - Google से लॉग इन।