configuration management devops practices
DevOps प्रथाओं में कॉन्फ़िगरेशन प्रबंधन क्या है?
की अवधारणा DevOps में निरंतर परीक्षण हमारे पिछले ट्यूटोरियल में विस्तार से बताया गया था।
DevOps में कॉन्फ़िगरेशन प्रबंधन का मुख्य आकर्षण है,
- एक कोड के रूप में बुनियादी ढाँचा
- एक कोड के रूप में कॉन्फ़िगरेशन
जरूर पढ़ें => विशेष DevOps ट्यूटोरियल श्रृंखला
oracle 11g प्रदर्शन ट्यूनिंग साक्षात्कार प्रश्न
एक कोड के रूप में as इन्फ्रास्ट्रक्चर के कई लाभ हैं और एक कोड के रूप में as विन्यास 'DevOps अभ्यास में।
-
- कॉन्फ़िगरेशन संस्करण नियंत्रित हैं
- स्वचालित और मानकीकृत
- निर्भरता को हटाता है
- त्रुटि मुक्त इन्फ्रा सेटअप
- संचालन और विकास टीम के बीच सहयोग को बढ़ावा देता है
- सही कॉन्फ़िगरेशन बहाव
- लचीले संसाधन के रूप में बुनियादी ढांचे का इलाज करना
- बुनियादी ढांचे की स्वचालित स्केलिंग
- सेटअप में स्थिरता बनाए रखना
वीडियो भाग 4 ब्लॉक 1: कॉन्फ़िगरेशन प्रबंधन- 23 मिनट 7 सेकंड
ट्रांस्क्रिप्ट:
इस भाग में, हम सीखेंगे DevOps में कॉन्फ़िगरेशन प्रबंधन, रिलीज़ प्रबंधन और अनुप्रयोग प्रदर्शन निगरानी।
यहां, ब्लॉक 1 में, हम कॉन्फ़िगरेशन प्रबंधन पर ध्यान केंद्रित करेंगे और समझेंगे कि कॉन्फ़िगरेशन प्रबंधन क्या है और यह DevOps और पारंपरिक तरीकों में कैसे भिन्न है।
शुरू करने के लिए, आइए जानते हैं कि कॉन्फ़िगरेशन प्रबंधन क्या है?
कॉन्फ़िगरेशन प्रबंधन जैसा कि नाम से ही पता चलता है, कुछ भी नहीं है, लेकिन उन सभी कॉन्फ़िगरेशनों का प्रबंधन करना है जो सॉफ़्टवेयर एप्लिकेशन होस्ट करता है।
जैसा कि हम जानते हैं, यूनिट परीक्षण, एकीकरण परीक्षण, सिस्टम परीक्षण, स्वीकृति परीक्षण और अंतिम-उपयोगकर्ता परीक्षण के साथ शुरू होने वाले DevOps में हमारे पास SDLC भर में अलग-अलग वातावरण हैं।
और मैंने अपने पहले के ट्यूटोरियल्स में भी समझाया था कि इन परीक्षणों के लिए स्थापित पर्यावरण उत्तरोत्तर अधिक जटिल हो जाएगा क्योंकि यह पूर्व-उत्पादन और उत्पादन पर्यावरण की ओर बढ़ता है।
तो, मूल रूप से, कॉन्फ़िगरेशन प्रबंधन इनमें से प्रत्येक वातावरण के सभी कॉन्फ़िगरेशन को प्रबंधित करने के लिए स्वचालित प्रक्रिया है।
फिर पारंपरिक कॉन्फ़िगरेशन प्रबंधन और DevOps कॉन्फ़िगरेशन प्रबंधन के बीच अंतर क्या है?
हमारे पारंपरिक कॉन्फ़िगरेशन प्रबंधन के तरीकों में, टीम औपचारिक प्रलेखन के माध्यम से विभिन्न वातावरणों के इन विन्यासों का प्रबंधन करती थी, जिसमें प्रत्येक विन्यास दस्तावेजों और रिकॉर्ड टीम में दर्ज किया जाता था या प्रबंधक इन दस्तावेजों के संस्करण नियंत्रण को संभालने के लिए उपयोग किया जाता था।
और जब यह परिवर्तन होता है, तो वह पर्यावरण की स्थापना और मैन्युअल रूप से विन्यास के प्रबंधन की जिम्मेदारी भी लेगा
अब DevOps में, आम तौर पर, इन सभी विन्यास प्रबंधन प्रक्रियाओं को बहुत अच्छी तरह से स्वचालित किया जाता है और कॉन्फ़िगरेशन को कोड या स्क्रिप्ट के रूप में समझाया जाता है और संस्करण नियंत्रण उपकरण के माध्यम से नियंत्रित किया जाता है।
इस संदर्भ में, हम यह कह सकते हैं कि ऑपरेशन टीम एकल संस्करण नियंत्रण उपकरण के माध्यम से वातावरण के प्रबंधन में विकास के साथ एकीकृत है।
तो, DevOps में विन्यास प्रबंधन का मुख्य आकर्षण है,
-
-
- एक कोड के रूप में बुनियादी ढाँचा
- एक कोड के रूप में कॉन्फ़िगरेशन
-
वास्तव में code इन्फ्रास्ट्रक्चर क्या है, एक कोड के रूप में? यह औपचारिक दस्तावेज में रिकॉर्डिंग के बजाय एक कोड या स्क्रिप्ट के रूप में संपूर्ण पर्यावरण परिभाषा को परिभाषित कर रहा है।
फिर पर्यावरण की परिभाषा में क्या शामिल है? पर्यावरण परिभाषा में आम तौर पर शामिल हैं, सर्वर की स्थापना, नेटवर्क को कॉन्फ़िगर करना, और अन्य कंप्यूटिंग संसाधनों की स्थापना, जो आईटी बुनियादी ढांचे का एक हिस्सा हैं। इसलिए, इन सभी विवरणों को एक फ़ाइल के रूप में या कोड के रूप में लिखा जाएगा और संस्करण नियंत्रण उपकरण में जांचा जाएगा।
यह स्क्रिप्ट या कोड, जिसे संस्करण नियंत्रण में जांचा जाता है, पर्यावरण को परिभाषित करने या यहां तक कि उन वातावरणों को अपडेट करने का एकल स्रोत बन जाएगा।
बस एक सरल देने के लिए उदाहरण , अगर हमें विशिष्ट वातावरण में एक सर्वर जोड़ना है, तो हम जो कुछ भी करेंगे वह इन सूचनाओं को पर्यावरण लिपियों में अपडेट करना है और डिलीवरी पाइपलाइन को चलाना है, बजाय मैन्युअल रूप से जाने और जोड़े गए सर्वर के साथ एक नया वातावरण बनाना या मांगना यह करने के लिए सिस्टम एडमिन लोगों की मदद करता है।
तो, यहां सुंदरता यह है कि विकास या परीक्षण गतिविधि के लिए अपने सर्वर को स्थापित करने के लिए डेवलपर या परीक्षक को सिस्टम व्यवस्थापक विशेषज्ञ होने की आवश्यकता नहीं है।
तो, DevOps में स्थापित बुनियादी ढांचा पूरी तरह से स्वचालित हो जाएगा, और मूल रूप से स्क्रिप्ट का पालन करता है जो कि सर्वर को स्थापित करने से शुरू होने वाले संस्करण नियंत्रण में जाँच की जाती है, उन्हें कॉन्फ़िगर करना, ओएस स्थापित करना, जब तक कि इन उदाहरणों के संचार चैनल तैनात नहीं किए जाते हैं सॉफ्टवेयर।
एक कोड के रूप में कॉन्फ़िगरेशन क्या है?
एक कोड के रूप में कॉन्फ़िगरेशन कुछ भी नहीं है, लेकिन सर्वर या किसी अन्य संसाधन के सभी कॉन्फ़िगरेशन को कोड या स्क्रिप्ट के रूप में परिभाषित करना और उन्हें संस्करण नियंत्रण में जांचना है।
ये कॉन्फ़िगरेशन स्क्रिप्ट जिन्हें संस्करण नियंत्रण में जांचा जाता है, एक स्वचालित फैशन में बुनियादी ढांचे और इसके कॉन्फ़िगरेशन को सेट करने के लिए परिनियोजन पाइपलाइन के एक भाग के रूप में चलाए जाते हैं।
खैर, विन्यास को परिभाषित करने में ऐसे पैरामीटर शामिल हैं जो सॉफ़्टवेयर को सफलतापूर्वक चलाने के लिए अनुशंसित सेटिंग्स को परिभाषित करते हैं। या सॉफ़्टवेयर एप्लिकेशन सेट करने के लिए शुरू में चलाए जाने वाले आदेशों का एक सेट। या यहां तक कि यह सेट किए जाने वाले सॉफ़्टवेयर के प्रत्येक घटक, या विशिष्ट उपयोगकर्ता भूमिकाओं, उपयोगकर्ता विशेषाधिकारों आदि का विन्यास हो सकता है।
सरल उदाहरण सुविधा टॉगल सेट करने के लिए होगा, जहां कॉन्फ़िगरेशन पैरामीटर के एक भाग के रूप में डिफ़ॉल्ट मान सेट किए जाते हैं।
फ़ायरवॉल में एक और पोर्ट जोड़ना एक और होगा उदाहरण , जिसे स्क्रिप्ट में अपडेट किया जा सकता है और बाद में ये स्क्रिप्ट डिलीवरी पाइपलाइन के एक भाग के रूप में चलाए जाते हैं।
बाजार में बुनियादी ढांचे के स्वचालन के लिए कई उपकरण उपलब्ध हैं। उनमें से कुछ बावर्ची, कठपुतली, टेराफॉर्म, आदि हैं, बावर्ची और कठपुतली रूबी आधारित विन्यास प्रबंधन उपकरण हैं, जबकि टेराफॉर्म एक प्रावधान उपकरण है।
इसके अलावा, इन दिनों चूंकि लगभग सभी एप्लिकेशन क्लाउड पर होस्ट किए जाएंगे, AWS, वे खुद RESTAPI प्रदान करते हैं, जो इस उद्देश्य के लिए लीवरेज किए जा सकते हैं।
मेरे पास एक कोड के रूप में बुनियादी ढांचे और कॉन्फ़िगरेशन को परिभाषित करने के बजाय, DevOps में कॉन्फ़िगरेशन प्रबंधन के लाभों की एक विशाल सूची है।
एक-एक करके उनके बारे में जाने दो।
सभी कॉन्फ़िगरेशन और इन्फ्रास्ट्रक्चर विवरण संस्करण नियंत्रित हैं जो DevOps कार्यान्वयन में एक बड़ा लाभ है।
# 1) यह टीम को एक स्वचालित फैशन में सर्वर और कॉन्फ़िगरेशन में परिवर्तन का प्रबंधन करने में मदद करता है और अगर कुछ भी विफल रहता है तो जल्दी से डिबग करने में मदद करता है, ग्राहकों को कोई रुकावट पैदा किए बिना, पिछले संस्करण में जल्दी से रोलबैक करने की अनुमति देता है।
#दो) चूंकि ये स्क्रिप्ट केंद्रीय सर्वर पर स्थित हैं और टीम में हर कोई जानता है कि इनमें से प्रत्येक स्क्रिप्ट में क्या है और इनमें से प्रत्येक संस्करण में क्या बदलाव किए गए हैं। यह भी टीम को पुराने संस्करण में वापस जाने में सक्षम बनाता है, अगर नवीनतम संस्करणों में कोई समस्या है।
सोचिए, अगर कोई सर्वर क्रैश होता है, तो उसे मैन्युअल रूप से पुनर्स्थापित करने में कितना समय लगेगा। और अब एक स्क्रिप्ट और संस्करण को नियंत्रित करने के रूप में बुनियादी ढांचे को परिभाषित करके, हम पहले के संस्करण में जाकर तुरंत बहाल कर सकते हैं।
# 3) एक कोड के रूप में कॉन्फ़िगरेशन को प्रबंधित करना किसी को गलती से सिस्टम में बदलाव करने से रोकता है और उत्पादन में बाद में होने वाले किसी भी नुकसान को रोकता है।
चूंकि कॉन्फ़िगरेशन प्रबंधन पूरी तरह से स्वचालित है, मैन्युअल हस्तक्षेप या तो सेट करने या अपडेट पूरी तरह से समाप्त हो गया है।
लागत, गुणवत्ता और समय पर प्रभाव की कल्पना करें जब पहले लोग इन कॉन्फ़िगरेशनों को मैन्युअल रूप से पूरा करने के लिए मानव संसाधनों पर निर्भर करते थे और जब कुछ कॉन्फ़िगरेशन छूट जाते हैं या आवश्यकतानुसार सेट नहीं होते हैं।
इसलिए, कॉन्फ़िगरेशन प्रबंधन के स्वचालन से न केवल समय की बचत में लाभ हुआ है, बल्कि ऐसी मानवीय त्रुटियों को दूर करने और गुणवत्ता में सुधार भी हुआ है। इसके अलावा, कोडिंग मानक ने टीम में प्रत्येक गाइड की कल्पना करने के बजाय कोडिंग और ऑटोमेटिंग में निर्दिष्ट मानक का पालन करने में मदद की है जो कॉन्फ़िगरेशन गाइड लिखता है।
जैसा कि पहले चर्चा की गई थी, एक कोड के रूप में पहुंचाने वाले कॉन्फ़िगरेशन ने किसी एकल व्यक्ति या कॉन्फ़िगरेशन प्रबंधक या कॉन्फ़िगरेशन टीम नाम पर निर्भरता को हटा दिया है। डेवलपमेंट टीम को किसी भी इन्फ्रा या कॉन्फिग प्रॉब्लम को आने और ठीक करने के लिए कॉन्फिग टीम का इंतजार नहीं करना होगा।
या यहां तक कि इन्फ्रा और कॉन्फ़िगरेशन स्थापित करने के लिए, जो पूरी तरह से स्वचालित और संस्करण नियंत्रित हैं। इसलिए, टीम में कोई भी हो यह एक डेवलपर या टेस्टर हो सकता है जो एक सर्वर को स्पिन कर सकता है और उनके विकास और परीक्षण के उद्देश्यों के लिए कॉन्फ़िगरेशन कर सकता है। इसलिए सर्वर और कॉन्फ़िगरेशन सेट करना व्यक्ति स्वतंत्र हो गया है।
यह यह भी सुनिश्चित करता है कि एक ही सर्वर का उपयोग विकास और क्यूए दोनों टीमों द्वारा उनकी गतिविधियों के लिए नहीं किया जाता है, जो आमतौर पर पहले हुआ करता था।
इंफ्रास्ट्रक्चर और कॉन्फ़िगरेशन को स्वचालित और संस्करण को नियंत्रित करने के साथ-साथ एक समान कोड के रूप में परिभाषित किया गया है जो सभी वातावरणों को मानकीकृत करता है और सेट अप करता है। इसलिए, यह न केवल डेवलपर्स के लिए डिबगिंग कार्य को आसान बनाता है, बल्कि मानवीय त्रुटियों को भी समाप्त करता है, जिसके परिणामस्वरूप त्रुटि मुक्त इंफ्रा सेटअप होता है, अन्यथा जो बहुत बड़ी क्षति का कारण होगा, अगर जल्दी पता नहीं लगाया गया।
यहाँ, हम स्पष्ट रूप से देव और ऑप्स के बीच स्पष्ट सहयोग देख सकते हैं, जहाँ दोनों इन्फ्रा सेट अप को अंजाम देने के लिए एक ही स्रोत पर निर्भर करते हैं और दोनों टीमें सक्रिय रूप से पूरे कॉन्फ़िगरेशन प्रबंधन को स्वचालित करने और स्थापित करने में शामिल हैं।
एक समान लक्ष्य प्राप्त करने के लिए एक साथ काम करने से दोनों टीमों, विकास और संचालन के बीच सहयोग को बढ़ावा मिलता है।
सही कॉन्फ़िगरेशन बहाव
कॉन्फ़िगरेशन बहाव क्या है?
सर्वर के बीच छोटे अंतर और विसंगतियां, जो कभी-कभी मैनुअल अपडेट के कारण होती हैं, जो कि समय के साथ जमा होती हैं, कॉन्फ़िगरेशन ड्रिफ्ट कहलाती हैं।
यह एक अच्छी स्थिति नहीं है, क्योंकि सर्वरों में यह असंगतता कुछ प्रोग्राम फाइलों जैसे मैनिफ़ेस्ट, प्लेबुक को सभी सर्वरों पर भरोसेमंद रूप से न चलाने के लिए छोड़ देती है और इसलिए स्वचालन विफलता की ओर ले जाती है। इसलिए, टीम को प्रभावी ढंग से कॉन्फ़िगरेशन के स्वचालन का उपयोग करने के लिए बनाने से बचने की आवश्यकता है।
एक कोड और संस्करण के रूप में इनफ़्रा और कॉन्फिगरेशन को नियंत्रित करने से उन्हें नियंत्रित करने में टीम को विभिन्न सर्वरों के बीच या सभी सर्वरों पर लगातार कॉन्फ़िगरेशन को बनाए रखते हुए विभिन्न वातावरणों और देव और उत्पादन सेटअपों के बीच किसी भी तरह के कॉन्फ़िगरेशन ड्रिफ्ट से बचने या ठीक करने में मदद मिली है।
इस प्रकार, एक टीम को उत्पादन में स्थापित विकास पर समान कॉन्फ़िगरेशन सेटअप का सबसे अच्छा आश्वासन दिया जा सकता है। इससे उन्हें देव पर्यावरण पर उत्पादन के मुद्दों को अनुकरण करने में भी मदद मिलती है।
इसलिए, यह किसी भी प्रकार के अप्रत्याशित परिवर्तनों को रोकने में मदद करता है जो कि टीम के किसी भी सदस्य को इन्फ्रा पर करने की कोशिश कर सकते हैं, जो सेट अप को तोड़ सकता है और टीम को सेट अप में तब तक कोई बदलाव करने के लिए लागू नहीं करता है जब तक कि वे लॉग इन न हों भंडार का एक कोड।
एक कोड के रूप में बुनियादी ढांचे और इसके विन्यास को वितरित करने से टीम को ग्राहक के गतिशील व्यावसायिक जरूरतों को पूरा करने के लिए एक लचीले संसाधन के रूप में प्रबंधित करने में सक्षम बनाया गया है।
इसका एक प्रकार का प्लग और खेल है। एक टीम विशेष रूप से विशेष सर्वर या नेटवर्क में आ सकती है और उनमें परिवर्तन कर सकती है। यह सिर्फ प्रोविजनिंग सर्वर को अपडेट करने या किसी विशेष नेटवर्क में स्टोरेज को जोड़ने या संशोधित करने, या यहां तक कि ओएस को अपडेट करने के लिए हो सकता है, और सब कुछ एक लचीले संसाधन के रूप में स्वतंत्र रूप से अपडेट किया जा सकता है।
पहले, एक कॉन्फ़िगरेशन पैरामीटर को बदलने के लिए, यह वास्तव में बहुत समय लेता था, खासकर जब इसे सभी सर्वरों में अपडेट करने की आवश्यकता होती थी, लेकिन अब यह केवल एक बार जाना है। स्क्रिप्ट को अपडेट करें और संस्करण नियंत्रण उपकरण पर अपलोड करें और यह सब किया जाता है।
मौजूदा बुनियादी ढांचे को पूरी तरह से स्क्रैप करने और एक दूसरे को पूरी तरह से लाने के लिए एक लचीलापन है। इसलिए, बुनियादी ढांचे और विन्यास का प्रबंधन अब काफी आसान हो गया है। खैर, क्लाउड-आधारित समाधानों ने आवश्यक के रूप में अतिरिक्त कंप्यूटिंग या भंडारण संसाधनों को जोड़कर और जब वे आवश्यक नहीं होते हैं तो स्केलिंग करके बुनियादी ढांचे को स्वचालित रूप से स्केल करने में सक्षम किया है।
इसने मांग के आधार पर संसाधन उपयोग के अनुकूलन को सक्षम किया है। अगर हम मशीन के आकार को बढ़ाकर बुनियादी ढाँचे को बड़ा करना चाहते हैं, तो हम इसे तुरंत कर सकते हैं। इसी तरह, अगर हम स्केल करना चाहते हैं या शायद एक और सेटअप जोड़ सकते हैं, या अधिक फ्रंट एंड जोड़ सकते हैं, तो हम इसे बस कुछ ही सेकंड में कोड में अपडेट करके और स्वचालित पाइपलाइन चलाकर कर सकते हैं।
अंतिम, लेकिन कम से कम नहीं, बुनियादी ढांचे, एक नियंत्रित वातावरण के तहत एक कोड के रूप में वितरित करने से विभिन्न सेटअपों में पर्यावरण की स्थिरता को बनाए रखने में मदद मिलती है। यह समस्या को डीबग करने में भी मदद करता है। इस बिंदु को मैंने पहले भी कवर किया है जबकि कॉन्फ़िगरेशन बहाव के बारे में बात कर रहा हूं।
यह और यह DevOps में कॉन्फ़िगरेशन प्रबंधन पर हमारी बात को पूरा करता है, क्योंकि एक कोड के रूप में बुनियादी ढांचे और कॉन्फ़िगरेशन क्या हैं और इसके लाभ क्या हैं।
हमारे आगामी ट्यूटोरियल में, हम चर्चा करेंगे DevOps में रिलीज़ प्रबंधन पहलू।
PREV ट्यूटोरियल | अगले ट्यूटोरियल
अनुशंसित पाठ
- DevOps में रिलीज़ प्रबंधन
- DevOps टेस्टिंग ट्यूटोरियल: QA टेस्टिंग को कैसे प्रभावित करेंगे DevOps?
- DevOps में निरंतर परीक्षण
- उदाहरणों के साथ कॉन्फ़िगरेशन टेस्टिंग ट्यूटोरियल
- DevOps में निरंतर तैनाती
- सर्वश्रेष्ठ खुला स्रोत DevOps उपकरण (स्थापना और कॉन्फ़िगरेशन के साथ)
- DevOps परीक्षण के लिए शीर्ष 10 निरंतर परीक्षण उपकरण (2021 सूची)
- टेस्ट लॉज टेस्ट मैनेजमेंट टूल रिव्यू