DevOps और सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन के बीच अंतर


16

विकास संचालन और सॉफ्टवेयर कॉन्फ़िगरेशन प्रबंधन के बीच अंतर क्या है?

मेरे लिए यह तब तक समान लगता है जब तक DevOps और सॉफ्टवेयर कॉन्फ़िगरेशन प्रबंधन दोनों पर ध्यान केंद्रित किया जाता है:

  1. विकास बुनियादी ढांचे की स्थापना - संस्करण नियंत्रण, निर्माण प्रबंधन, तैनाती प्रबंधन, निर्भरता प्रबंधन, निरंतर एकीकरण और वितरण , आदि के प्रभारी होने के नाते ।
  2. डेवलपर्स पर्यावरण के आयोजन के लिए सर्वोत्तम प्रथाओं का उपयोग करना ।
  3. विकास प्रक्रियाओं की गुणवत्ता आश्वासन - विकास की प्रभावशीलता के मैट्रिक्स को इकट्ठा करना, विकास प्रक्रिया की बाधाओं को दूर करने पर काम करना (इकाई-परीक्षण चलाना, इकाई-परीक्षण कवरेज का मूल्यांकन करना, निरीक्षण चलाना आदि)
  4. इन्फ्रास्ट्रक्चर प्रबंधन - लक्ष्य प्लेटफार्मों और इसकी बारीकियों।
  5. रिलीज प्रबंधन - यह सुनिश्चित करते हुए कि ग्राहक / ग्राहक को समय पर रिहाई दी गई है।

शायद मुझे कुछ याद आ रहा है? यह लिंक दिखाता है कि 'सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन' शब्द का उपयोग प्रबल है। लेकिन फिर भी, किस शब्द संयोजन का उपयोग आप सूचीबद्ध गतिविधियों का वर्णन करने के लिए करेंगे: विकास संचालन या सॉफ्टवेयर कॉन्फ़िगरेशन प्रबंधन ?

जवाबों:


19

शब्द बहुत समान अवधारणाओं और जिम्मेदारियों का वर्णन करते हैं, और सामान्य तौर पर वे कुछ समानार्थी हैं। "DevOps" शब्द एक अपेक्षाकृत नया है, जिसे Devopsdays गेन्ट 2009 सम्मेलन और उसके बाद के Devopsdays घटनाओं द्वारा लोकप्रिय बनाया गया है । यह इस आरेख में सबसे अच्छा वर्णित है :

यहाँ छवि विवरण दर्ज करें

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

कार्य उत्पादों की पहचान करने के लिए परिवर्तन को नियंत्रित करने के लिए डिज़ाइन की गई गतिविधियों का एक समूह है, जो उनके बीच संबंधों को स्थापित करने, इन कार्य उत्पादों के विभिन्न संस्करणों के प्रबंधन के लिए तंत्र को परिभाषित करने, लगाए गए परिवर्तनों को नियंत्रित करने और किए गए परिवर्तनों की ऑडिटिंग और रिपोर्टिंग करता है।

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

DevOps बढ़ती जागरूकता के लिए एक प्रतिक्रिया है कि परंपरागत रूप से विकास गतिविधि के रूप में क्या माना जाता है और पारंपरिक रूप से संचालन गतिविधि क्या है के बीच एक डिस्कनेक्ट है। यह डिस्कनेक्ट अक्सर खुद को संघर्ष और अक्षमता के रूप में प्रकट करता है।

एक ही लेख में, SCM के साथ समानताएं नोट की गई हैं:

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

शर्तों के उपयोग के लिए, आपकी तुलना वास्तव में मायने नहीं रखती है:

  1. SCM सीएम का सबसेट है, प्रतिस्पर्धी शब्द नहीं है,
  2. DevOps एक नया शब्द है, स्थापित शर्तों के खिलाफ तुलना करने का कोई मतलब नहीं है,
  3. DevOps डेवलपर ऑपरेशन (स्पष्ट रूप से) से उत्पन्न होता है, लेकिन शायद ही कभी इस तरह का विस्तार किया जाता है।

क्या आप का मतलब है कि SCM सोर्स कोड मैनेजमेंट या सॉफ्टवेयर कॉन्फ़िगरेशन मैनेजमेंट CM का सबसेट है?
वैकल्पिक

@zaphod_beeblebrox: वह चित्र विकिपीडिया लेख से लिया गया है: en.wikipedia.org/wiki/DevOps :)
वैकल्पिक

सुंदर चित्र के तहत @altern पैराग्राफ: "दूसरी ओर, सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन पेशे के भीतर कहीं अधिक स्थापित शब्द है, और गैर सॉफ़्टवेयर विशिष्ट शब्द कॉन्फ़िगरेशन प्रबंधन से प्राप्त होता है।" : P इसके अलावा चित्र उस ब्लॉग से लिया गया है जिसे मैंने लिंक किया है। अगर लेखक इसे विकिपीडिया से लेता है, तो मुझे नहीं पता होगा।
यानिस

@zaphod_beeblebrox: मुझे शायद अपने सवाल का शीर्षक बदलना चाहिए
वैकल्पिक

@altern क्या मतलब है तुम्हारा? सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन केवल शीर्षक में नहीं है। इसके अलावा क्या बिल्ली "स्रोत कोड प्रबंधन" है। क्या आपका मतलब संशोधन नियंत्रण है? यदि हाँ, संशोधन नियंत्रण सॉफ्टवेयर कॉन्फ़िगरेशन प्रबंधन का एक पहलू है, तो इसका उत्तर है। लेकिन देवों के लिए संशोधन नियंत्रण की तुलना करना कम से कम कहने के लिए अजीब है।
यानिस

6

व्यक्तिगत रूप से कई वर्षों (10+) के लिए एक सीनियर सॉफ्टवेयर कॉन्फ़िगरेशन मैनेजर होने के नाते मैं विभिन्न वास्तविक जीवन स्थितियों में बेमेल शब्दों को सुनता हूं। यह पदों के सापेक्ष प्रकृति के कारण गैर तकनीकी कर्मियों के लिए असामान्य नहीं है। उनकी दोनों विशिष्ट भूमिकाएं, आवश्यकताएं और आवश्यकताएं हैं जो समान हैं लेकिन फिर भी स्पष्ट रूप से मेरी राय में विभाजित हो सकती हैं।

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

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

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

अब, यह एक शेख़ी के रूप में नहीं है, न ही एक निश्चित उत्तर के रूप में, बल्कि प्रत्येक स्थिति के अंतर की एक व्यक्तिगत पहचान है। मैं जानना चाहूंगा कि क्या मैं अच्छी तरह से आधार हूं, या इस उत्तर से चीजें स्पष्ट हो जाती हैं।


2
ईमानदारी से, जब यह सब उबला हुआ होता है, तो DevOps सॉफ़्टवेयर डेवलपर्स को सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन के लिए पूरी तरह से जागरूक और जवाबदेह बनाता है। जब आप ऐसा करते हैं, तो आपको पारंपरिक रूप से किए गए तुलना में SCM के लिए एक पूरी तरह से अलग दृष्टिकोण मिलता है - एक निरंतर एकीकरण और निरंतर वितरण पर अधिक ध्यान केंद्रित किया जाता है, और एक (आमतौर पर) मिश्रण में कम मनुष्यों के साथ। DevOps को SCM पर लागू लीन के रूप में देखा जा सकता है (और अक्सर) उसी तरह देखा जा सकता है, जैसा कि एजाइल को सॉफ्टवेयर विकास के लिए लीन के रूप में देखा जा सकता है।
कैलफूल

4

DevOps के लिए एक ठोस परिभाषा खोजने के लिए आपको कड़ी मेहनत करनी होगी। यह एक नौकरी से ज्यादा एक विचार है। और यह बिल्कुल नया है कि हर कोई इस बात पर सहमत हो कि इसका क्या मतलब है। बहरहाल, यहाँ मेरा ले रहा है।

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

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


1

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

सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन इस समन्वय को प्राप्त करने का एक साधन है। SCM ने विकास से उत्पादन (संचालन) की ओर बढ़ने की प्रक्रिया के स्वचालन के प्रबंधन के लिए उपकरणों और तकनीकों को शामिल किया

संक्षेप में, SCM देव और ऑप्स को जोड़ता है।

विकास और संचालन के बीच संबंध SCM है


-1

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


4
यह प्रश्न के उत्तर की तुलना में अधिक शेख़ी जैसा लगता है
gnat

हिरण हंटर, ए रेंट, हाँ, यकीन है, लेकिन प्रासंगिक है? 100%। इस पर मेरा विश्वास करो - जब तक उद्योग बड़ा नहीं होता और नौटंकी बंद कर देता है, तब तक मौत का सिलसिला न केवल जारी रहेगा, वे बदतर हो जाएंगे। यह एक वादा है।
जैक

रेंट ठीक हैं, लेकिन स्टैकएक्सचेंज उनके लिए जगह नहीं है।
मैट फ्राई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.