डेटाबेस क्लस्टरिंग में अक्सर सामूहिक उद्देश्य के साथ कई सर्वर और इंस्टेंस को कॉन्फ़िगर करना और बनाए रखना शामिल होता है। इससे हमारा मतलब है कि आपके पास अलग-अलग होस्ट पर अलग-अलग डेटाबेस सर्वर हो सकते हैं जो एक ही डेटा परोस रहे हैं।
उदाहरण के लिए, मान लें कि आपके पास सर्वर ए, बी, सी और डी हैं, आप प्रत्येक पर मोंगोडीबी स्थापित करने का निर्णय लेते हैं लेकिन बाद में महसूस करते हैं कि एक नया संस्करण है जिसका आपको उपयोग करना चाहिए था। जब आपके पास बड़ी संख्या में सर्वर होते हैं और आपको MongoDB संस्करण को अपडेट करने की आवश्यकता होती है, तो उन्हें मैन्युअल रूप से कॉन्फ़िगर करना (एक-एक करके) बहुत सारे झटके होते हैं। इन असफलताओं में शामिल हो सकते हैं; पुन:कॉन्फ़िगर करने में बहुत अधिक समय लेना (इसलिए आपकी साइट का डाउनटाइम लंबा होगा) या आपके DB को कुछ कॉन्फ़िगरेशन त्रुटियों के लिए प्रवण बनाना।
इसके अलावा, हमेशा दोहराए जाने वाले कार्य होते हैं जिन्हें आप स्वचालित रूप से निष्पादित करना चाहते हैं, एक ही चरण को बार-बार करने के बजाय, हर बार जब आप समान परिवर्तन करना चाहते हैं। जहां तक प्रौद्योगिकी उन्नति का संबंध है, कुछ बिंदु पर हमें नए मॉड्यूल सीखने की भी आवश्यकता है जो हमें क्लस्टर प्रदर्शन को बढ़ावा देने में मदद कर सकते हैं
सरल शब्दों में, हमें एक स्वचालन प्रणाली की आवश्यकता है जो सभी उल्लिखित उपक्रमों को आसान बना सके। इसे हासिल करने के लिए कठपुतली सबसे पसंदीदा सॉफ्टवेयर सिस्टमों में से एक है:
- MongoDB क्लस्टर को कॉन्फ़िगर और परिनियोजित करना आसान और तेज़ है।
- दोहराए जाने वाले कार्यों को आसानी से स्वचालित किया जा सकता है जैसे कि वे बाद में स्वचालित रूप से निष्पादित हो जाते हैं।
- पूरे क्लस्टर इंफ्रास्ट्रक्चर को एक मंच से सामूहिक रूप से प्रबंधित किया जा सकता है।
- क्लाउड, हाइब्रिड या भौतिक वातावरण में नए नोड्स के लिए आसान प्रावधान।
- नोड्स के एक समूह में परिवर्तन और घटनाओं को व्यवस्थित करें।
- मिनटों में संसाधनों की खोज करें जो विभिन्न कार्यों को आसानी से करने में आपकी सहायता कर सकते हैं।
- 1 से 200k नोड्स तक अच्छी तरह से स्केल करता है।
- कई प्लेटफार्मों द्वारा समर्थित
कठपुतली क्या है?
कठपुतली एक ऐसी भाषा है जिसका उपयोग मशीन को वांछित स्थिति में लाने के लिए किया जाता है या बल्कि एक इंजन है जिसका उपयोग कुछ परिभाषित निर्देशों की व्याख्या और एक सर्विंग सिस्टम पर लागू करने के लिए किया जाता है। Ansible की तरह, कठपुतली भी एक कॉन्फ़िगरेशन प्रबंधन उपकरण है जिसका उपयोग डेटाबेस क्लस्टर कार्यों को स्वचालित और निष्पादित करने के लिए किया जाता है। हालाँकि, यह अधिक उन्नत और अच्छी तरह से स्थापित है, यह देखते हुए कि यह सबसे पुराना है इसलिए बहुत सारी नई एकीकृत विशेषताएं हैं जो इसे दूसरों की तुलना में अधिक परिष्कृत बनाती हैं। कठपुतली को व्यक्तिगत रूप से पसंद करने के प्रमुख कारणों में से एक वह क्षमता है जो मुझे लोड बैलेंसर्स, नेटवर्क डिवाइस या फायरवॉल के साथ जुड़े बड़ी संख्या में नोड्स को कॉन्फ़िगर करने की क्षमता देती है। कठपुतली का उपयोग अक्सर जटिल वातावरण वाले बड़े उद्यमों में किया जाता है।
कठपुतली कैसे काम करती है
कठपुतली idempotency तकनीक का उपयोग करती है जो इसे निर्माण के समय से एक निश्चित मशीन का प्रबंधन करने में मदद करती है और कॉन्फ़िगरेशन परिवर्तनों के साथ भी इसके पूरे जीवन चक्र में। इसके साथ मुख्य लाभ यह है कि मशीन को खरोंच से कई बार बनाने के बजाय कई वर्षों में अपडेट किया जाता है। अद्यतन के मामले में, कठपुतली वर्तमान लक्ष्य मशीन की स्थिति की जाँच करती है और परिवर्तन केवल तभी लागू होंगे जब कॉन्फ़िगरेशन में कोई विशिष्ट परिवर्तन होगा।
निष्क्रियता
idempotency वर्कफ़्लो नीचे दिखाया गया है:
कठपुतली मास्टर लक्ष्य मशीन की वर्तमान स्थिति के बारे में विवरण एकत्र करता है और इसकी तुलना मशीन स्तर के कॉन्फ़िगरेशन विवरण से करता है और फिर विवरण को लौटाता है जो रूपांतरण परत को भेजे जाते हैं।
रूपांतरण परत नए परिभाषित कॉन्फ़िगरेशन विवरण के साथ पुनर्प्राप्त कॉन्फ़िगरेशन की तुलना करता है और फिर एक कैटलॉग बनाता है जो लक्ष्य कठपुतली एजेंटों को भेजा जाता है, इस मामले में, लक्ष्य नोड्स जिसके लिए परिवर्तन लागू किए जाने हैं।
कॉन्फ़िगरेशन परिवर्तन तब सिस्टम पर इसे वांछित स्थिति में बदलने के लिए लागू किया जाता है। परिवर्तनों को लागू करने के बाद, कठपुतली एजेंट कठपुतली मास्टर को एक रिपोर्ट वापस भेजता है जिसे सिस्टम की नई स्थिति को आपूर्ति किए गए कैटलॉग के रूप में परिभाषित करने के लिए प्रलेखित किया जाता है।
कठपुतली के बुनियादी घटक
-
कठपुतली संसाधन
ये किसी विशेष मशीन के प्रमुख मॉडलिंग घटक हैं जिनके विवरण मशीन को वांछित स्थिति में लाएंगे।
-
प्रदाता
प्रदाता विशेष संसाधन हैं जिनका उपयोग सिस्टम में पैकेज जोड़ने के लिए किया जाता है उदा। यम और उपयुक्त-प्राप्त करें। डिफ़ॉल्ट प्रदाता हैं लेकिन कुछ पैकेजों की आवश्यकता होने पर कोई और जोड़ सकता है।
<ली मान ="3">
प्रकट
यह संसाधनों का एक संग्रह है जो या तो एक फ़ंक्शन या एक वर्ग में परिभाषित किया जाता है जो एक लक्ष्य प्रणाली को कॉन्फ़िगर करने के लिए एक साथ युग्मित होता है।
संरचना होनी चाहिए
resource:{‘module’:
attribute => value
}
उदाहरण के लिए मोंगोडब स्थापित करने के लिए हमारे पास निम्नलिखित सामग्री के साथ Mongodb.pp नामक एक मेनिफेस्ट फ़ाइल हो सकती है:
package {‘mongodb’:
ensure => installed
}
<ली मान ="4"> मॉड्यूल
यह कठपुतली का मुख्य निर्माण खंड है जो मूल रूप से संसाधनों, टेम्पलेट्स और फाइलों का संग्रह है। उन्हें किसी भी ऑपरेटिंग सिस्टम में वितरित किया जा सकता है इसलिए एक ही कॉन्फ़िगरेशन के साथ कई बार उपयोग किया जा सकता है।
<ली मान ="5">टेम्पलेट्स
टेम्प्लेट का उपयोग अनुकूलित सामग्री और चर इनपुट को परिभाषित करने के लिए किया जाता है। वे रूबी सिंटैक्स का उपयोग करते हैं, अर्थात यदि आप सुनने के लिए पोर्ट को परिभाषित करना चाहते हैं:
Listen <% [email protected]_number %>
इस मामले में Port_number चर इस टेम्पलेट को संदर्भित करने वाले मेनिफेस्ट में परिभाषित किया गया है।
<ली मान ="6">स्थिर फ़ाइलें
ये सामान्य फाइलें हैं जिनकी आवश्यकता विशिष्ट कार्यों को करने के लिए हो सकती है। वे किसी भी मॉड्यूल की फाइल निर्देशिका में स्थित हैं।
कठपुतली स्थापना
सीखने के उद्देश्य से, हम कठपुतली को एक वर्चुअल मशीन में स्थापित और कॉन्फ़िगर करने जा रहे हैं जिसे हम अपनी स्थानीय मशीन में बनाएंगे। सबसे पहले आपको virtualbox और vagrant इंस्टॉल करना होगा। स्थापित करने के बाद, एक नया टर्मिनल खोलें और संभवतः अपने डेस्कटॉप पर एक कठपुतली निर्देशिका बनाएं और $ vagrant init कमांड चलाएँ। यह एक वर्चुअल मशीन बनाएगा और इसे आवारा लेबल करेगा। फिर हम इस मशीन में $ vagrant ssh कमांड से लॉग इन कर सकते हैं।
अगर आपको नीचे की तरह स्क्रीन मिलती है तो आपकी मशीन चालू है और चल रही है।
अन्यथा यदि आप सर्वर मशीन पर हैं तो आप इस चरण को अनदेखा कर सकते हैं और नीचे दिए गए कठपुतली पैकेज को जोड़ने से आगे बढ़ सकते हैं।
कठपुतली पैकेज को कमांड के साथ जोड़ें
$ wget https://apt.puppetlabs.com/puppet5-release-xenial.deb
और फिर पैकेज को अनपैक करें और इसके साथ इंस्टॉल करें
$ sudo dpkg -i puppet5-release-xenial.deb
हमें अपनी रिपॉजिटरी को अपडेट करने की आवश्यकता है ताकि हम चल सकें
$ sudo apt-get update
कठपुतली-एजेंट चलाकर स्थापित करें
$ sudo apt-get install puppet-agent
स्थापना पूर्ण होने के बाद हम संस्करण की जाँच करके पुष्टि कर सकते हैं। कठपुतली पथ को पर्यावरण में जोड़ने के लिए आपको अपनी वर्चुअल मशीन से लॉग आउट करने की आवश्यकता हो सकती है, फिर $ कठपुतली --version चलाएँ या यदि आपने लॉग आउट नहीं किया है तो $ /opt/puppetlabs/bin/puppet --version चलाएँ। यदि आपको 5.5.14 जैसा वर्ज़न नंबर मिलता है तो इंस्टॉलेशन सफल रहा।
हमने ऊपर बनाए गए Mongodb.pp का उपयोग करके MongoDB को स्थापित करने के बाद, हम डेटाबेस उत्पादों को सेटअप करने के लिए बस कुछ कार्य लिख सकते हैं और इस db में एक उपयोगकर्ता भी जोड़ सकते हैं।
MongoDB के भीतर डेटाबेस बनाने और प्रबंधित करने के लिए 'Mongodb_database' का उपयोग किया जाता है
mongodb_database{‘products’:
ensure => present,
tries => 10
}
'Mongodb_user का उपयोग MongoDB डेटाबेस में उपयोगकर्ताओं को बनाने और प्रबंधित करने के लिए किया जा सकता है।'
उपयोगकर्ता को 'उत्पाद' डेटाबेस में जोड़ने के लिए
mongodb_user {userprod:
username => ‘prodUser’,
ensure => present,
password_hash => mongodb_password(‘prodUser’, ‘passProdser’),
database => prodUser,
roles => [‘readWrite’, ‘dbAdmin’],
tries => 10
}
निष्कर्ष
इस ब्लॉग में हमने सीखा है कि कठपुतली क्या है, इससे जुड़े गुण और इसकी कार्यप्रणाली। कठपुतली अन्य प्रबंधन उपकरणों (जैसे शेफ और Ansible) से थोड़ा अधिक जटिल है, लेकिन इसमें बहुत सारे मॉड्यूल हैं जिनका उपयोग डेटाबेस प्रबंधन के आसपास के मुद्दों को हल करने के लिए किया जा सकता है। अगले भाग में, हम चर्चा करने जा रहे हैं कि दूरस्थ मशीनों को कैसे जोड़ा जाए ताकि परिभाषित मेनिफेस्ट फ़ाइलों का उपयोग करके उन्हें पुन:कॉन्फ़िगर किया जा सके।