डॉकर कंपोज़ बनाम डॉकर झुंड

Docker Compose Vs Docker Swarm



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

यदि आपको एक नई कार्यक्षमता या एक सुविधा, जैसे, एक एनालिटिक्स इंजन को लागू करने की आवश्यकता है, तो आप बस उसके लिए एक नया माइक्रोसर्विस लिख सकते हैं और यह आपके वेब ऐप के विभिन्न माइक्रोसर्विसेज द्वारा उजागर किए गए REST API के माध्यम से डेटा का उपभोग करेगा। और जैसे-जैसे आपकी कार्यक्षमता समय के साथ बढ़ती जाएगी, इसके साथ-साथ माइक्रोसर्विसेज की यह सूची भी बढ़ती जाएगी।







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



डॉकर-कंपोज़ सबसे सरल उपकरणों में से एक है जो आपको माइक्रोसर्विसेज के अमूर्त विचार को डॉकर कंटेनर के कार्यात्मक सेट में बदलने में मदद करता है।



वितरित प्रणाली

अब जब हमने वेब ऐप को कई कंटेनरों में विभाजित कर दिया है, तो उन सभी को एक ही सर्वर पर रखने का कोई मतलब नहीं है (एक वर्चुअल मशीन पर अभी भी बदतर!), जहां डॉकर झुंड और कुबेरनेट्स जैसी सेवाएं चलन में आती हैं।





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

NS डॉकर स्टैक उपकमांड डॉकर-कंपोज़ कमांड की तरह बहुत अधिक व्यवहार करता है और इससे किसी भी तकनीक का उपयोग करने वाले किसी व्यक्ति को गलत धारणा हो सकती है।



भ्रम का स्रोत

उपयोग और कार्यप्रवाह के संदर्भ में, दोनों प्रौद्योगिकियां एक दूसरे के समान काम करती हैं, और इससे भ्रम पैदा होता है। जिस तरह से आप डॉकर झुंड या डॉकर-कंपोज़ का उपयोग करके अपने ऐप को तैनात करते हैं, वह बहुत समान है। आप अपने एप्लिकेशन को YAML फ़ाइल में परिभाषित करते हैं, इस फ़ाइल में छवि का नाम, प्रत्येक छवि के लिए कॉन्फ़िगरेशन और वह पैमाना (प्रतिकृतियों की संख्या) होगी, जिसे परिनियोजन में पूरा करने के लिए प्रत्येक माइक्रोसर्विस की आवश्यकता होगी।

अंतर ज्यादातर बैकएंड में होता है, जहां डॉकटर-कंपोज़ एक एकल डॉकर होस्ट पर कंटेनर को तैनात करता है, डॉकर झुंड इसे कई नोड्स में तैनात करता है। संक्षेप में, यह अभी भी अधिकांश चीजें कर सकता है जो docker-compose कर सकता है लेकिन यह इसे कई Docker होस्ट में मापता है।

समानताएँ

Docker Swarm और Docker-Compose दोनों में निम्नलिखित समानताएँ हैं:

  1. वे दोनों आपके एप्लिकेशन स्टैक की YAML स्वरूपित परिभाषाएँ लेते हैं।
  2. वे दोनों बहु-कंटेनर अनुप्रयोगों (माइक्रोसर्विसेज) से निपटने के लिए हैं
  3. उन दोनों में एक स्केल पैरामीटर है जो आपको एक ही छवि के कई कंटेनरों को चलाने की अनुमति देता है जिससे आपके माइक्रोसर्विस को क्षैतिज रूप से स्केल करने की अनुमति मिलती है।
  4. वे दोनों एक ही कंपनी, यानी डॉकर, इंक।

मतभेद

डॉकर झुंड और डॉकर-लिखें के बीच कुछ अंतर:

  1. डॉकर झुंड का उपयोग आपके वेब ऐप को एक या अधिक सर्वरों में स्केल करने के लिए किया जाता है। जहां डॉकर-कंपोज़ आपके वेब ऐप को एक ही डॉकर होस्ट पर चलाएगा।
  2. अपने वेब ऐप को स्केल करना डॉकर झुंड गंभीर उच्च उपलब्धता और दोष सहनशीलता प्रदान करता है। एकल होस्ट पर डॉकर-कंपोज़ का उपयोग करके अपने वेब ऐप को स्केल करना केवल परीक्षण और विकास के लिए उपयोगी है।
  3. डॉकर झुंड और संबंधित उप-आदेश जैसे डॉकर झुंड और डॉकर स्टैक को डॉकर सीएलआई में ही बनाया गया है। वे सभी डॉकर बाइनरी का हिस्सा हैं जिसे आप अपने टर्मिनल के माध्यम से कॉल करते हैं। Docker-Compose अपने आप में स्टैंडअलोन बाइनरी है।

डॉकर-कंपोज़ के लिए उपयोग का मामला

जैसा कि ऊपर वर्णित है, वे दोनों पूरी तरह से अलग उपकरण हैं और प्रत्येक एक पूरी तरह से अलग समस्या हल करता है, इसलिए ऐसा नहीं है कि एक दूसरे के लिए एक विकल्प है। हालांकि, नए लोगों को यह समझने के लिए कि मैं किस बारे में बात कर रहा हूं, यहां डॉकर कंपोज़ के लिए उपयोग का मामला है।

मान लीजिए कि आप एक ही सर्वर पर वर्डप्रेस ब्लॉग को सेल्फ-होस्ट करना चाहते हैं। इसे सेट करना या इसे बनाए रखना कुछ ऐसा नहीं है जिसे आप मैन्युअल रूप से करना चाहते हैं, इसलिए आप इसके बजाय क्या करेंगे अपने VPS पर Docker और Docker-compose स्थापित करें, अपने वर्डप्रेस स्टैक के सभी विभिन्न पहलुओं को परिभाषित करने वाली एक साधारण YAML फ़ाइल बनाएं, जैसे नीचे, :

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

संस्करण:'3'

सेवाएं:
डीबी:
छवि: माइस्क्ल:5.7
मात्रा:
- डीबी_डेटा:/कहां/उदारीकरण/माई एसक्यूएल
पुनरारंभ करें: हमेशा
वातावरण:
MYSQL_ROOT_PASSWORD: कुछ वर्डप्रेस
MYSQL_DATABASE: वर्डप्रेस
MYSQL_USER: वर्डप्रेस
MYSQL_PASSWORD: वर्डप्रेस

वर्डप्रेस:
निर्भर करता है:
- डीबी
छवि: वर्डप्रेस: ​​नवीनतम
बंदरगाह:
-'8000: 80'
पुनरारंभ करें: हमेशा
वातावरण:
WORDPRESS_DB_HOST: डीबी:3306
WORDPRESS_DB_USER: वर्डप्रेस
WORDPRESS_DB_PASSWORD: वर्डप्रेस पासवर्ड
WORDPRESS_DB_NAME: वर्डप्रेस
मात्रा:
डीबी_डेटा:{}

एक बार जब फ़ाइल बन जाती है और डॉकर और डॉकर-कंपोज़ दोनों स्थापित हो जाते हैं, तो आपको बस इतना करना है:

$docker-compose up-डी

और आपकी साइट ऊपर और चल रही होगी। यदि कोई अपडेट है, तो चलाएँ:

$docker-compose down

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

डॉकर झुंड का उपयोग कब करें

जबकि डॉकर-कंपोज़ एक स्वचालन उपकरण है, डॉकर झुंड अधिक मांग वाले अनुप्रयोगों के लिए है। सैकड़ों या हजारों उपयोगकर्ताओं या कार्यभार वाले वेब ऐप्स जिन्हें समानांतर रूप से बढ़ाने की आवश्यकता है। बड़े उपयोगकर्ता आधार और कठोर SLA आवश्यकताओं वाली कंपनियां Docker Swarm जैसी वितरित प्रणाली का उपयोग करना चाहेंगी। यदि आपका ऐप कई सर्वरों और कई डेटा केंद्रों पर चल रहा है तो प्रभावित डीसी या नेटवर्क लिंक के कारण डाउनटाइम की संभावना काफी कम हो जाती है।

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

निष्कर्ष

मुझे आशा है कि डॉकर और इसकी उपग्रह परियोजनाओं पर यह जुआ जानकारीपूर्ण था और आप डॉकर पारिस्थितिकी तंत्र के लिए अधिक तैयार हैं।