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

ओपन सोर्स डेटाबेस को प्रबंधित करने का नया तरीका

बहुत पहले नहीं, डेटाबेस उद्योग में मुट्ठी भर विक्रेता शामिल थे। डेटाबेस मुख्य रूप से रिलेशनल थे, और सिंगल मशीनों पर चलते थे। सक्रिय-स्टैंडबाय 'क्लस्टर' के माध्यम से उच्च उपलब्धता को लागू किया गया था। वर्टिकल 'स्केल-अप' मॉडल के साथ, यह ज्यादातर साझा भंडारण (सैन या डीआरबीडी) या राज्य को स्टैंडबाय नोड में सिंक्रनाइज़ करने के लिए लॉग की अतुल्यकालिक प्रतिकृति के बारे में था। 2001 में, जब मैंने NDB क्लस्टर (जो बाद में MySQL क्लस्टर बन गया) के साथ काम करना शुरू किया, तो पूरे डेटाबेस को मेन-मेमोरी में रखने की अवधारणा अजीब थी - 'क्या होगा यदि आप सर्वर को बंद कर देते हैं?'। कई सर्वरों में एक डेटाबेस वितरित करना चिंताजनक था - 'आपके पास यहां और वहां डेटा के टुकड़े हैं'। और मिशन क्रिटिकल वर्कलोड के लिए एक ओपन सोर्स डेटाबेस का पूरा विचार हँसने योग्य था।

तेजी से आगे 15 साल और अब हमारे पास बाजार पर दर्जनों डेटाबेस विक्रेता हैं - ज्यादातर खुले स्रोत, विभिन्न मॉडल (कुंजी मूल्य, दस्तावेज़, ग्राफ, ...) और डिफ़ॉल्ट रूप से वितरित किए जाते हैं। उच्च प्रदर्शन और कम विलंबता प्राप्त करने के लिए मेमोरी-निवासी डेटा बहुत अधिक आदर्श है। शीर्ष 5 सबसे लोकप्रिय डेटाबेस में से तीन (डीबी-इंजन रैंकिंग के अनुसार) ओपन सोर्स (MySQL, PostgreSQL और MongoDB) हैं। आजकल, आप विभिन्न डेटासेंटरों में वितरित डेटाबेस सर्वरों के बेड़े का प्रबंधन करने की अधिक संभावना रखते हैं। हो सकता है कि आपके कुछ डेटाबेस किसी तृतीय पक्ष क्लाउड विक्रेता द्वारा प्रबंधित किए गए हों।

तो, 2018 में डेटाबेस को प्रबंधित करना कैसा रहा?

स्वचालन

इतने सारे कार्यों को प्रबंधित करने और एक दिन में केवल इतने घंटों के साथ, कोई व्यक्ति चीजों को मैन्युअल रूप से करने के लिए पागल हो जाएगा।

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

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

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

पालतू जानवर बनाम मवेशी

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

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

यह मवेशियों की एक नई नस्ल भी है - खुला स्रोत मवेशी! डीबी-इंजन के अनुसार, शीर्ष पांच डेटाबेस में से तीन, सभी खुले स्रोत हैं - वे धीरे-धीरे लेकिन निश्चित रूप से दो मालिकाना विक्रेताओं के मार्केट शेयर में खा रहे हैं। ओपन सोर्स न केवल ऑपरेटिंग सिस्टम के लिए बल्कि डेटाबेस के लिए भी नया डेटासेंटर मानक है।

https://db-engines.com/en/ranking

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

क्या हमें DBA की आवश्यकता है?

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

हालांकि पिछले एक दशक में, एक नया डेटाबेस उद्योग उभरा है - दर्जनों और दर्जनों ओपन सोर्स डेटाबेस के साथ-साथ क्लाउड डेटाबेस सेवाओं के साथ। जैसा कि हमने पहले देखा, किसी एप्लिकेशन के लिए दो अलग-अलग डेटास्टोर्स का उपयोग करना असामान्य नहीं है। लेकिन कंपनियों के पास इन डेटास्टोर्स के लिए शायद ही कभी कोई डीबीए होता है जिसका वे उपयोग करते हैं। 5+ वर्षों के उत्पादन अनुभव के साथ आपको MongoDB या Cassandra या <अपना नया पसंदीदा डेटाबेस डालें> DBA कहां मिलेगा? कोई यह तर्क दे सकता है कि नई पीढ़ी के NoSQL डेटाबेस अपने बंद स्रोत पूर्ववर्तियों की तुलना में बहुत सरल हैं, और इसलिए सीखने की अवस्था समान नहीं होगी।

उन्हें प्रबंधित करना SysAdmin या DevOps या साइट विश्वसनीयता इंजीनियरिंग (SRE) टीम की टूडू सूची में जोड़ा गया एक और कार्य होगा। और आज हम देखते हैं कि कई कंपनियों के पास पूर्णकालिक डीबीए नहीं है। इसके बजाय जिम्मेदारी टीमों में वितरित की जाती है, स्वचालन उपकरण का उपयोग दिन-प्रतिदिन के कार्यों की देखभाल के लिए तेजी से किया जा रहा है। क्लाउड में चले गए डेटाबेस के लिए, डेटा को कैसे संग्रहीत किया जा रहा है, इसके परिचालन पहलुओं को पूरी तरह से क्लाउड प्रदाता को आउटसोर्स किया जाता है। इसलिए डेटा को स्टोर करने के तरीके पर काम करने के बजाय, ऑप्स टीम अब डेटा के उपयोग पर ध्यान केंद्रित कर सकती है।

डेटाबेस जीवनचक्र

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

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

डीबीए भूमिका

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

सहयोग की उच्च लागत और तेजी से नवाचार/बाजार के लिए कम समय एक साथ अच्छी तरह से नहीं जाता है। जैसा कि हमने पहले देखा, माइक्रोसर्विसेज इस बात का एक उदाहरण है कि कैसे बुनियादी ढांचे और एप्लिकेशन सेवाओं को अब जितना संभव हो उतना अलग करने के लिए तैयार किया गया है। डेटाबेस तेजी से स्वचालित हो रहे हैं, और डेटाबेस का नियंत्रण डेवलपर्स या प्रोजेक्ट टीमों में स्थानांतरित हो रहा है। यहां तक ​​कि स्कीमा परिवर्तन जैसी चीजें भी उतनी भारी नहीं हैं जितनी पहले हुआ करती थीं। वे एक अखंड अनुप्रयोग के लिए एक केंद्रीय डेटाबेस के संदर्भ में बहुत कठिन थे। विभिन्न घटकों के बीच डेटा साझा किए जाने के साथ, स्कीमा परिवर्तनों को समन्वित और सावधानीपूर्वक नियोजित करने की आवश्यकता होगी - आमतौर पर महीनों पहले। परिवर्तनों को समझने और निष्पादित करने में DBA की महत्वपूर्ण भूमिका थी। आज की गतिशीलता अलग है, जहां परिवर्तन की दर बहुत तेज है। विकास टीमों के लिए साप्ताहिक या दैनिक आधार पर उत्पादन में कोड परिवर्तन पर जोर देना असामान्य नहीं है - या दिन में कई बार भी! एप्लिकेशन परिवर्तनों को बनाए रखने के लिए डेटाबेस को निरंतर अपडेट की आवश्यकता होती है, और ये डेवलपर्स द्वारा किए जाते हैं। कुछ नए डेटाबेस जैसे MongoDB यहां तक ​​​​कि एक स्कीमालेस मॉडल होने से इसे बहुत सरल बनाते हैं। इसका प्रभावी अर्थ यह है कि डेटाबेस स्कीमा एप्लिकेशन कोड में जा रहा है।

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

सारांश

हम डेटाबेस उद्योग के इतिहास में एक आकर्षक मोड़ पर बैठे हैं, जो पिछले 2 दशकों में बड़े पैमाने पर परिवर्तन से गुजरा है। नीचे दी गई तालिका इसे संक्षेप में प्रस्तुत करने का प्रयास करती है।

  पुराना तरीका नया तरीका
कैसे? स्क्रिप्ट और टूल/उपयोगिताओं की सहायता से मैनुअल सॉफ़्टवेयर (कठपुतली, शेफ़, ClusterControl) या DBaaS प्लेटफ़ॉर्म के माध्यम से स्वचालन।
क्या? कुछ महत्वपूर्ण DB उदाहरण, मवेशियों के बजाय पालतू जानवर वर्चुअलाइज्ड इंस्टेंस का बेड़ा, पॉलीग्लॉट हठ वातावरण
कौन विशिष्ट DBA “एवरीबडी” - DBA, SysAdmins, DevOps, Dev.
DBA भूमिका ऊर्ध्वाधर भूमिका - अभिभावक/द्वारपाल के रूप में DBA, डेटा के लॉजिस्टिक्स के आसपास के पारंपरिक प्रशासनिक कार्यों पर ध्यान केंद्रित करते हैं। क्षैतिज भूमिका - डेटा पर ध्यान देने के साथ सलाहकार के रूप में DBA। डेटा विश्लेषण/खपत/ट्यूनिंग की वास्तुकला, सुरक्षा और रणनीति जैसे गैर-परिचालन कार्यों की ओर शिफ्ट।
जीवनचक्र दीर्घकालीन जीवनकाल, पहले से नियोजित परिवर्तनों के साथ लघु से मध्यावधि जीवनकाल, परिवर्तन की बहुत तेज़ दर के साथ
योग्यता DB, OS, संग्रहण DB, OS, स्टोरेज, डिस्ट्रीब्यूटेड सिस्टम, नेटवर्किंग और सुरक्षा, ऑटोमेशन स्क्रिप्टिंग

मुझे ओपन सोर्स डेटाबेस प्रबंधन पर आपके विचार सुनने में दिलचस्पी होगी और क्या आपने वही रुझान देखे हैं? इन पिछले वर्षों में ओएसडीबी के साथ आपके संघर्ष या सफलताएं कैसी दिखती हैं? और आप अगले साल क्या होने की उम्मीद कर रहे हैं?

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

लेकिन इस बीच, मुझे अपने विचार बताएं, और 2019 में मिलेंगे!

सोराड (शटरस्टॉक) और द सिम्पसंस द्वारा तस्वीरें; अन्य तस्वीरें उनके संबंधित स्वामियों द्वारा हैं।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी $strcasecmp

  2. स्प्रिंग डेटा में एक वर्ग के लिए MongoDb संग्रह नाम को कैसे कॉन्फ़िगर करें

  3. मोंगोडब में मेल खाने वाली या शर्तों का प्रतिशत

  4. पाइमोंगो का उपयोग करके मोंगोडब में एक क्वेरी तिथि कैसे बनाएं?

  5. MVC.net में MongoDB से ObjectId कैसे पास करें?