MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

शेफ का उपयोग करते हुए MongoDB डेटाबेस ऑटोमेशन मूल बातें

प्रबंधित वातावरण समय के साथ बढ़ता है, अक्सर डेटा भागीदारी में वृद्धि के परिणामस्वरूप या शायद साझा कार्यभार के माध्यम से प्रदर्शन बढ़ाने की आवश्यकता के कारण। इस वजह से सदस्यों को जोड़ने की जरूरत है। उदाहरण के लिए, MongoDB के साथ कोई प्रतिकृति और शार्डिंग करने का निर्णय ले सकता है जिसके परिणामस्वरूप क्लस्टर में अधिक सदस्यों को जोड़ने की आवश्यकता होगी। समय के साथ इन वातावरणों को कॉन्फ़िगर करना और परिनियोजित करना व्यस्त, समय लेने वाला, मानवीय त्रुटियों के लिए प्रवण और इतने सारे संबंधित झटके हो जाते हैं जो अंततः परिचालन खर्च पैदा करते हैं। MongoDB में 50 सदस्यों के साथ एक प्रतिकृति सेट का एक उदाहरण लें और आप प्रत्येक सदस्य में एक निश्चित संग्रह को शार्प करना चाहते हैं, प्रत्येक के लिए इसे मैन्युअल रूप से करने में समय लगता है, इस प्रकार हमें एक केंद्रीकृत प्रणाली की आवश्यकता होती है जिससे आप सभी सदस्यों को आसानी से कॉन्फ़िगर कर सकें . एक केंद्रीकृत प्रणाली के साथ आप कुछ कोड लिखते हैं जो बारी-बारी से जुड़े सदस्यों को कॉन्फ़िगर करते हैं। इसलिए कोड मानव पठनीय, संस्करण योग्य और परिनियोजन से पहले संभावित त्रुटियों को दूर करने के लिए परीक्षण योग्य है।

शेफ सॉफ्टवेयर क्या है?

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

शेफ के घटक

शेफ सर्वर

यह केंद्रीय नियंत्रण प्रणाली है जिसमें कॉन्फ़िगरेशन डेटा होता है। डेटा को एक 'रेसिपी' में लिखा जाता है और अगर इनमें से कई रेसिपी शामिल हैं तो वे एक कुकबुक बनाती हैं। केंद्रीय प्रणाली में शेफ-क्लाइंट में उल्लिखित प्रत्येक नोड का वर्णन करने वाला मेटाडेटा भी होता है।

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

शेफ क्लाइंट नोड

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

नोड

कॉन्फ़िगर करने के लिए यह भौतिक, आभासी या क्लाउड मशीन है और प्रत्येक में क्लाइंट नोड स्थापित होना चाहिए।

कार्यस्थल

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

रसोई का परीक्षण करें

यह वह जगह है जहां कोड की पुष्टि की जाती है।

शेफ नाइफ

नोड्स को इंटरैक्ट करता है।

रसोई की किताबें

रूबी भाषा में लिखे गए व्यंजनों को शामिल करता है और उन कार्यों को परिभाषित करने के लिए उपयोग किया जाता है जिन्हें किया जाना है। व्यंजन परिभाषित कार्यों पर संसाधनों और कार्यान्वयन के क्रम को निर्दिष्ट करते हैं।

  • विशेषताओं का उपयोग डिफ़ॉल्ट सेटिंग्स को ओवरराइड करने के लिए किया जाता है।
  • फ़ाइलें विशिष्ट पथ से शेफ-क्लाइंट में फ़ाइलों को स्थानांतरित करने के लिए उपयोग की जाती हैं।
  • मेटाडेटा संसाधन क्लाइंट-नोड में वर्णित नोड जानकारी को परिभाषित करता है।

शेफ कैसे काम करता है

शेफ के संचालन के दो तरीके हैं, क्लाइंट/सर्वर या एक स्टैंडअलोन मोड में जिसे 'शेफ-सोलो' के नाम से जाना जाता है।

शेफ-सर्वर शेफ-क्लाइंट से एक निश्चित नोड के संबंध में विभिन्न विशेषताओं को प्राप्त करता है। फिर इन विशेषताओं को सर्वर द्वारा Elasticsearch का उपयोग करके अनुक्रमित किया जाता है जो तब एक एप्लिकेशन प्रोग्राम इंटरफ़ेस (API) प्रदान करता है जहाँ से क्लाइंट-नोड्स इन डेटा को क्वेरी कर सकते हैं। लौटाए गए परिणामों का उपयोग क्लाइंट-नोड्स द्वारा संबंधित मशीनों को कॉन्फ़िगर करने और उन्हें वांछित स्थिति में बदलने के लिए किया जाता है।

सर्वर उन सभी कार्यों को हब करता है जहां परिवर्तन संग्रहीत किए जाने हैं

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

शेफ के साथ शुरुआत करना

आप इस साइट से शेफ-वर्कस्टेशन डाउनलोड कर सकते हैं और इसे इंस्टॉल कर सकते हैं। कुकबुक नाम का फोल्डर बनाएं और इस फोल्डर के अंदर कमांड चलाएँ:

$ chef generate cookbook first_cookbook

यह कुछ उप-फ़ोल्डरों और फ़ाइलों के साथ first_cookbook नाम की एक निर्देशिका उत्पन्न करेगा।

कुकबुक/फर्स्ट_कुकबुक/रेसिपी/ पर नेविगेट करें और डिफॉल्ट.आरबी रेसिपी को सामग्री के साथ अपडेट करें

file "test.txt" do

  content 'This is my first recipe file'

end

फिर हम कमांड का उपयोग करके इस फ़ाइल को निष्पादित करते हैं

$ chef-client --local-mode --override-runlist first_cookbook.

या, रेसिपी फ़ोल्डर के अंदर, आप फ़ाइल को कमांड के साथ चला सकते हैं

$ chef-apply default.rb

यदि आप अपने रेसिपी फ़ोल्डर में नेविगेट करते हैं, तो आप निश्चित रूप से सामग्री के साथ test.txt फ़ाइल देखेंगे यह मेरी पहली रेसिपी फ़ाइल है। इट्स दैट ईजी। अगले भाग में हम MongoDB के संबंध में कुछ विशिष्ट कार्य करने के लिए व्यंजन विधि बनाएंगे

शेफ के साथ MongoDB को स्थापित और कॉन्फ़िगर करना

आप एक स्थापित नुस्खा MongoDBInstall.rb बनाकर MongoDB स्थापित कर सकते हैं और इसे सामग्री से भर सकते हैं

package "mongodb" do

 action :install

 version '4.0.3'

end

इस मामले में हमारे पैकेज का नाम mongodb है और हम संस्करण 4.0.3 स्थापित करने जा रहे हैं

हमारे पास एक बुनियादी नुस्खा है लेकिन कई मामलों में हमें MongoDB में अपना कॉन्फ़िगरेशन करने के लिए एक उन्नत कुकबुक की आवश्यकता होगी। कार्य को आसान बनाने के लिए, SC-MongoDB जैसी विकसित कुकबुक हैं जो आमतौर पर कॉन्फ़िगरेशन को सटीक बनाती हैं।

SC-MongoDB कुकबुक

रसोई की किताब  mongodb_instance प्रदान करती है जो MongoDB पैराम्स, प्रतिकृति सेट और एक शार्प क्लस्टर को कॉन्फ़िगर करने के लिए एक को बेहतर बनाती है।

कुकबुक इंस्टाल करने के लिए बस कमांड चलाएँ

$ knife supermarket download sc-mongodb

फिर आप कुछ डिफ़ॉल्ट MongoDB विशेषताओं को पुन:कॉन्फ़िगर करने के लिए इस साइट में परिभाषित विशेषताओं का उपयोग कर सकते हैं।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला Model.find एक समारोह नहीं है?

  2. मोंगोडब दस्तावेज़ को लॉक करना संभव नहीं है। अगर मुझे चाहिए तो क्या होगा?

  3. हमें क्यों चाहिए, नेवले का उपयोग करने के क्या फायदे हैं

  4. MongoDB:पथ में बहुत अधिक स्थितीय (यानी '$') तत्व पाए जाते हैं

  5. मोंगो में अपडेट ऑपरेशन के प्रदर्शन को कैसे बढ़ाया जाए?