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

डेटाबेस ऑटोमेशन के साथ शुरुआत कैसे करें

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

डेटाबेस ऑटोमेशन डेटाबेस एडमिनिस्ट्रेटर और सर्वर एडमिनिस्ट्रेटर का एक सामान्य अभ्यास रहा है, जिन्हें अब देवओप्स के नाम से जाना जाता है। DevOps DBA और सर्वर व्यवस्थापक कार्यों के संयोजन को भी संदर्भित करता है। पुराने ढंग से, पारंपरिक और सामान्य स्वचालित कार्यों को SQL कथनों या .sql फ़ाइलों की एक श्रृंखला के रूप में लिखा जाता है, जो स्क्रिप्ट के माध्यम से सर्वर को तैनात और प्रावधान करते हैं, एन्क्रिप्शन/डिक्रिप्शन सेट करते हैं, या उस वातावरण के लिए सुरक्षा का उपयोग करते हैं जिसमें आपका स्वचालन माना जाता है चलाने के लिए। यहां, ऑटोमेशन लोगों को स्क्रिप्ट के साथ बदलने वाली कंपनी का उदाहरण नहीं है। यह चीजों को गति में लाने और कम त्रुटियों के साथ कार्यों को तेजी से पूरा करने के लिए एक सहायक के रूप में है। स्वचालन डीबीए द्वारा अपने कार्यों को पूरा करने के तरीके या पूरी कंपनी या संगठन को दिए जाने वाले मूल्य को प्रतिस्थापित नहीं कर सकता है।

कोड (IaC) के रूप में बुनियादी ढांचे के लिए परिष्कृत उपकरण जैसे कठपुतली, बावर्ची, Ansible, SaltStack, और Terraform DBA को उन कार्यों को पूरा करने में मदद करते हैं जिन्हें आसानी से दोहराया जाता है, जैसे कि बैकअप और पुनर्स्थापना, विफल होने, की तैनाती नए क्लस्टर, सुरक्षा सेटिंग्स का समायोजन, ओएस कर्नेल और डेटाबेस प्रदर्शन ट्यूनिंग, और बहुत कुछ। स्वचालन की मदद से, बहुत से डीबीए ने डेटा-डोमेन विशिष्ट कार्यों पर ध्यान केंद्रित करने से अपने कौशल में सुधार या स्थानांतरित कर दिया है ताकि इन आईएसी उपकरणों का उपयोग करने के लिए कोड कैसे किया जा सके जो पारंपरिक दृष्टिकोण का उपयोग करने से चीजों को आसान बनाते हैं। वर्तमान में ऐसे टूल भी हैं जो क्लाउड में आपके एसेट को प्रबंधित करना आसान बनाते हैं, जैसे कि आपकी कंपनी के उपयोगकर्ता खातों को प्रबंधित करना, लॉग करना, इंस्टेंस को परिनियोजित करना या आपके सर्वर को प्रबंधित करना। तीन बड़े क्लाउड प्रदाताओं से क्लाउड के लिए टूल में AWS CloudFormation, Azure Resource Manager और Google Cloud Deployment Manager शामिल हैं और DBA या DevOps को ऑटोमेशन की शक्ति का लाभ उठाने और चीजों को तेज़ बनाने की अनुमति देते हैं। यह न केवल आपके संगठन या कंपनी के अधिकारियों को प्रभावित करता है, बल्कि आपकी सेवा पर निर्भर ग्राहकों को भी प्रभावित करता है।

स्वचालित होने की क्या आवश्यकता है?

जैसा कि ऊपर बताया गया है, डेटाबेस ऑटोमेशन DBA, सर्वर एडमिनिस्ट्रेटर या यहां तक ​​कि DevOps के लिए नया नहीं है। स्वचालित करने के लिए संकोच करने या सवाल करने का कोई कारण नहीं है। जैसा कि पहले कहा गया है, स्वचालन के लिए आसानी से पहचाने जाने वाले सामान्य मामले ऐसे कार्य हैं जो प्रकृति में दोहराए जाते हैं।

नीचे, हम उन चीजों की गणना करते हैं जो डीबीए के दृष्टिकोण से स्वयंसिद्ध हैं।

  • आपके सर्वर का प्रावधान (उदाहरण के लिए, VM इंस्टेंसेस शुरू करना जैसे कि योनि का उपयोग करना, डॉकटर शुरू करना, या अपने कुबेरनेट्स को आरंभ करना) प्लेटफॉर्म) और एसएसएच एक्सेस या सेटअप वीपीएन एक्सेस सेटअप करें

  • नए डेटाबेस क्लस्टर का परिनियोजन

    • पहचानें कि किस प्रकार का डेटाबेस प्रदाता, सेटअप का प्रकार (प्राथमिक/स्टैंडबाय, मास्टर-मास्टर प्रतिकृति, सिंक्रोनस) प्रतिकृति)

  • मौजूदा डेटाबेस क्लस्टर आयात करें

  • मौजूदा डेटाबेस को अपने मौजूदा डेटाबेस क्लस्टर में तैनात/आयात करें

  • ऑटो-फेलओवर या स्विचओवर

  • स्वचालित नोड या क्लस्टर पुनर्प्राप्ति

  • प्रतिकृति/गुलाम पदोन्नति या एक मास्टर को पदावनत करना

  • लोड बैलेंसर्स की तैनाती (जैसे ProxySQL, HaProxy, pgpool, pgbouncer, MaxScale, Keepalived)

  • बैकअप और पुनर्स्थापना

  • अपना डेटाबेस निगरानी वातावरण सेट करें (उदाहरण के लिए, प्रोमेथियस जैसे एजेंट-आधारित निगरानी को परिनियोजित करें)

  • सुरक्षा समायोजन सक्षम करें

  • पर्यावरण के प्रकार के अनुसार स्वचालित अनुकूलन और ट्यूनिंग करें

  • अन्य तृतीय-पक्ष एकीकरणों के लिए अलर्ट सिस्टम सक्षम करें

  • अलर्ट या अलार्म और नोटिफिकेशन जेनरेट करें

  • ग्राफ़ जैसी रिपोर्ट जेनरेट करें

  • क्वेरी विश्लेषण के लिए प्रक्रिया क्वेरी लॉग (धीमे लॉग)

  • क्वेरी विश्लेषण जेनरेट करें

  • डेटाबेस अभिलेखीय या साफ करें

बेशक ऐसे कई मामले हैं जिन्हें आप स्वचालित कर सकते हैं, लेकिन यह सबसे सामान्य कार्यों को सूचीबद्ध करता है और उन्हें स्वचालित करना निर्विवाद है। ये ऐसे कार्य हैं जो प्रकृति में दोहराव वाले होते हैं और अधिकांश त्रुटि-प्रवण होते हैं, खासकर जब उन्हें समय की कमी के कारण जल्दी से करना पड़ता है।

ऐसी कौन सी चीजें हैं जिन्हें स्वचालित नहीं किया जाना चाहिए?

ये वे क्षेत्र हैं जहां आपके DBA या SysAdmins अधिकांश कार्य करते हैं। जब उन चीजों की बात आती है जिन्हें स्वचालित नहीं किया जा सकता है, तो स्वचालन डीबीए के कौशल सेट और बुद्धिमत्ता को प्रतिस्थापित नहीं कर सकता है।

यह समझा जाता है कि एक डीबीए को कुशल होना चाहिए, जिसकी गहन समझ के साथ:  वे जिस डेटाबेस का उपयोग कर रहे हैं और जो डेटाबेस तैनात किए जाएंगे; डेटा जो संसाधित और संग्रहीत किया जा रहा है; और जिस तरह से उन्हें संसाधित किया जा रहा है वह सुरक्षित है, या यदि यह कंपनी सुरक्षा मानकों का अनुपालन करता है। DBA भी समीक्षा करते हैं और ज्यादातर DevOps माने जाते हैं, साथ ही ऑटोमेशन आर्किटेक्ट भी। वे तय करते हैं कि क्या करना है और क्या नहीं करना है। सामान्य चीजें जिन्हें स्वचालित नहीं किया जाना चाहिए वे निम्नलिखित हैं:

 

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

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

  • डेटा रिकवरी। बेशक, जब आप डेटा भ्रष्टाचार का सामना करते हैं या क्लस्टर आपके स्वचालित नोड/सर्वर पुनर्प्राप्ति से पुनर्प्राप्त करने में विफल रहता है, तो आपको प्राथमिक कारण की जांच करनी पड़ सकती है। भविष्य में इससे बचने के लिए आपको इसे अपने आरसीए (मूल कारण विश्लेषण) के लिए दस्तावेज करना होगा। हालाँकि, ऐसे उदाहरण हैं जब विफलता आपके द्वारा उपयोग किए जा रहे डेटाबेस सॉफ़्टवेयर का एक बग है, या यह एक VM भ्रष्टाचार हो सकता है।

  • डेटा बहाव या डेटा असंगति। यह निश्चित रूप से स्वचालन के लिए एक आदर्श स्थिति नहीं है। आप नहीं चाहते कि आपका ऑटोमेटन आपके डेटा को एक ऐसे अभ्यास के लिए सामान्यीकृत या स्टीरियोटाइप करे जो इस अवधारणा को लागू करे:"यदि डेटा दूषित है, तो इसे स्वचालित रूप से ठीक करें"। यह निश्चित रूप से एक अच्छा अभ्यास नहीं है। ऐसे बहुत से मामले हैं जिन्हें निर्णय लेने से पहले पहले समझना और जांचना आवश्यक है। MySQL में, उदाहरण के लिए, एक Percona टूल है जिसे pt-table-checksum कहा जाता है, फिर pt-table-sync जिसके लिए दोनों डेटा विसंगतियों को ठीक करने पर एक दूसरे से संबंधित हैं। आप निश्चित रूप से इसे तब तक स्वचालित नहीं करना चाहेंगे जब तक कि आप अपने डेटा को अच्छी तरह से नहीं जानते हैं, या आपका डेटा व्यापक नहीं है, या डेटा को पुन:उत्पन्न किया जा सकता है।

  • कर्नेल ट्यूनिंग और डेटाबेस ट्यूनिंग। बेशक, इसे हमने जो ऊपर कहा है, उसके विपरीत देखा जा सकता है। हालाँकि, ऑटो-ट्यून करने योग्य चर विशिष्ट प्रकार के वातावरण के लिए जाने जाते हैं, जैसे कि मेमोरी, बफर पूल, ह्यूजपेज, या वर्चुअल मेमोरी पैरामीटर। हालांकि, परिवर्तनों को लागू करने या न करने का निर्णय लेने से पहले निश्चित रूप से बहुत सारे पैरामीटर हैं जिन्हें समझने, जांच, परीक्षण, बेंचमार्किंग की आवश्यकता होती है।

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

स्वचालन के लिए उपकरण

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

स्वचालन गति के बारे में है, अर्थात, यह पारंपरिक दृष्टिकोण का उपयोग करने, या अपनी पसंदीदा भाषा स्क्रिप्ट का उपयोग करने के विपरीत कितना तेज़ है। बेशक, अपनी खुद की स्क्रिप्ट का उपयोग करना सही हो सकता है, लेकिन यदि आपका संगठन या कंपनी तकनीकी प्रगति के लिए है, तो तीसरे पक्ष के उपकरण जैसे कि Ansible, Puppet, Chef, SaltStack, या Terraform का उपयोग करना अधिक आदर्श है। यह अधिक आदर्श क्यों है? ये तृतीय-पक्ष उपकरण प्रदर्शन करने के लिए लंबे और लंबे कार्यों को विफल करने के लिए डिज़ाइन किए गए हैं, और कोड की कुछ पंक्तियों के साथ किया जा सकता है।

उदाहरण के लिए, टेराफॉर्म अपने पोर्टेबिलिटी लाभों के लिए जाना जाता है। जस्ट इमेजिन, टेराफॉर्म के साथ, आपके पास Google क्लाउड, एडब्ल्यूएस, ओपनस्टैक और किसी भी अन्य क्लाउड के लिए बुनियादी ढांचे का वर्णन करने के लिए एक उपकरण और एक भाषा है। यदि आप किसी अन्य प्रदाता पर स्विच करते हैं, तो आपको अपनी स्क्रिप्ट को संशोधित करने या फिर से करने की आवश्यकता नहीं है। यह आपको पूर्ण-स्टैक परिनियोजन की अनुमति देता है, और इसमें आपके कुबेरनेट्स कंटेनरों का प्रबंधन शामिल है। कल्पना कीजिए कि, एक टूल से आप बहुत कुछ कर सकते हैं।

अपना डेटाबेस ऑटोमेशन शुरू करते समय, स्क्रैच से शुरू न करें क्योंकि ऑटोमेशन का लक्ष्य गति है! फिर से, गति को यहां नहीं मापा जाता है कि यह काम को कितनी तेजी से पूरा करता है, लेकिन पारंपरिक दृष्टिकोण या मैनुअल कार्यों की तुलना में यह कितना तेज है। बेशक, यह कितनी जल्दी काम खत्म करने में सक्षम है, यह सब निर्भर करता है, उदाहरण के लिए, आपकी स्क्रिप्ट का हिस्सा संसाधित डेटा और लंबे समय तक कार्य निष्पादन के कारण लंबे समय तक देरी का कारण बन सकता है।

हमेशा अपनी आवश्यकताओं के आधार पर चुनें

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

उपलब्ध एंटरप्राइज़ टूल का लाभ उठाएं

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

डेटाबेस ऑटोमेशन के लिए कई क्लस्टर नियंत्रण

ClusterControl बहुत सारे स्वचालित कार्य प्रदान करता है जो मैन्युअल तरीकों की आवश्यकता को समाप्त कर देता है। ClusterControl को संगठनों, कंपनियों, DBA, SysAdmins, DevOps और यहां तक ​​कि डेवलपर्स के लिए डेटाबेस संचालन को आसान बनाने के लिए डिज़ाइन किया गया है। इसका लक्ष्य लंबे समय से चल रहे और दोहराव वाले कार्यों को स्वचालित करना है। ClusterControl का सबसे बड़ा फायदा यह है कि यह एक परिपक्व डेटाबेस प्रबंधन उपकरण है और इसमें व्यापक विशेषताएं हैं जो आपके डेटाबेस सर्वर को प्रबंधित करने के लिए बहुत शक्तिशाली हैं। यह आपके डेटाबेस के प्रबंधन के लिए सबसे अद्यतित, उद्योग-मानक सर्वोत्तम प्रथाओं को भी लागू करता है। हम अपने ग्राहकों की मांगों को सुनते हैं, फिर हम उन्हें पूरा करने के लिए क्षमताओं को लागू करते हैं।

कुछ सबसे अधिक सुविधा संपन्न ClusterControl स्वचालन कार्यक्षमता जिनका आप लाभ उठा सकते हैं, वे हैं:

  • आपके डेटाबेस सर्वर का परिनियोजन। प्रदाता चुनें, सही संस्करण निर्दिष्ट करें, निर्धारित करें कि किस प्रकार का क्लस्टर, सर्वर का होस्टनाम/आईपी जैसे उपयोगकर्ता नाम, पासवर्ड, आदि निर्दिष्ट करें।

  • मौजूदा सर्वर को ClusterControl में आयात करना

  • क्लाउड में परिनियोजन

  • डेटाबेस स्वास्थ्य निगरानी और रिपोर्टिंग

  • अलर्ट और नोटिफिकेशन

  • बैकअप और पुनर्स्थापना

  • बैकअप सत्यापन

  • ऑटो-फेलओवर, स्विचओवर

  • उच्च उपलब्धता सेटअप

  • एक गुलाम को बढ़ावा दें या एक मास्टर को पदावनत करें

  • अपने क्लस्टर में नई/मौजूदा प्रतिकृति जोड़ें

  • दूसरे क्लस्टर को दूसरे क्लस्टर के गुलाम के रूप में विस्तारित करें (आपकी आपदा वसूली के लिए भौगोलिक सेटअप के लिए उपयुक्त)

  • नोड और क्लस्टर रिकवरी

  • LDAP इंटीग्रेशन

  • तृतीय-पक्ष अलर्ट सूचनाएं

  • लोड बैलेंसरों की किसी भी विस्तृत सूची का परिनियोजन  (pgbouncer, ProxySQL, MaxScale, HAProxy, Keepalived, garbd) )

  • प्रोमेथियस निर्यातकों का उपयोग करके एजेंट-आधारित निगरानी की तैनाती

  • क्वेरी विश्लेषण

  • सुरक्षा समायोजन

  • OS कर्नेल और डेटाबेस पैरामीटर के लिए ऑटो ट्यूनिंग

इन सभी के अलावा, ClusterControl में अंतर्निहित सलाहकार भी हैं जो DBA या DevOps को अपनी स्क्रिप्ट बनाने और ClusterControl प्रदर्शन सलाहकारों में एकीकृत करने में सक्षम बनाते हैं।

सारांश

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब संस्करण 3.0.0 क्लाइंट रोबोमोंगो मोंगोव्यू

  2. संगीतकार के साथ symfony2 में mongodb सिद्धांत स्थापित नहीं कर सकता

  3. नेवला स्कीमा के साथ पासवर्ड की पुष्टि / पासवर्ड की पुष्टि

  4. mongo में json फ़ाइल आयात करने का उचित तरीका

  5. MongoDB में नेस्टेड सरणियों में तत्व डालें