Continuous delivery
निरंतर वितरण (सी. डी.) एक सॉफ्टवेयर इंजीनियरिंग दृष्टिकोण है जिसमें दल छोटे चक्रों में सॉफ्टवेयर का उत्पादन करते हैं, यह सुनिश्चित करते हुए कि सॉफ्टवेयर को किसी भी समय विश्वसनीय रूप से जारी किया जा सकता है और मैन्युअल रूप से ऐसा किए बिना "उत्पादन जैसे वातावरण" के माध्यम से पाइपलाइन का पालन किया जा सकता है। इसका उद्देश्य अधिक गति और आवृत्ति के साथ सॉफ्टवेयर का निर्माण, परीक्षण और जारी करना है। यह दृष्टिकोण उत्पादन में अनुप्रयोगों के लिए अधिक वृद्धिशील अद्यतन की अनुमति देकर लागत, समय और परिवर्तन देने के जोखिम को कम करने में मदद करता है। निरंतर वितरण के लिए एक सीधी और दोहराने योग्य परिनियोजन प्रक्रिया महत्वपूर्ण है। सिद्धांत निरंतर वितरण एक परिनियोजन पाइपलाइन की सामान्य धारणा को एक दुबला पोका-योक के रूप में मानता हैः सत्यापन का एक समूह जिसके माध्यम से सॉफ़्टवेयर का एक टुकड़ा जारी करने के लिए अपने रास्ते से गुजरना चाहिए। यदि आवश्यक हो तो कोड संकलित किया जाता है और फिर हर बार जब कोई परिवर्तन स्रोत नियंत्रण भंडार के लिए प्रतिबद्ध होता है तो एक बिल्ड सर्वर द्वारा पैक किया जाता है, फिर इसे जारी करने योग्य के रूप में चिह्नित करने से पहले कई अलग-अलग तकनीकों (संभवतः मैनुअल परीक्षण सहित) द्वारा परीक्षण किया जाता है। लंबे समय तक चलने वाले डेवलपर्स को सीडी वातावरण में काम करते समय अपनी मानसिकता बदलने की आवश्यकता हो सकती है। यह समझना महत्वपूर्ण है कि कोई भी कोड किसी भी समय ग्राहकों को जारी किया जा सकता है। फीचर टॉगल जैसे पैटर्न कोड को जल्दी करने के लिए बहुत उपयोगी हो सकते हैं जो अभी तक अंतिम उपयोगकर्ताओं द्वारा उपयोग के लिए तैयार नहीं है। एन. ओ. एस. क्यू. एल. का उपयोग डेटा माइग्रेशन और योजना परिवर्तनों के चरण को समाप्त कर सकता है, अक्सर मैनुअल कदम या निरंतर वितरण कार्यप्रवाह के अपवाद। अलग-अलग कोड विकसित करने के लिए अन्य उपयोगी तकनीकें जैसे कि कोड शाखाएं सीडी की दुनिया में अप्रचलित नहीं हैं, लेकिन सीडी के सिद्धांतों के अनुरूप अनुकूलित होनी चाहिए-उदाहरण के लिए, कई लंबे समय तक चलने वाली कोड शाखाओं को चलाना अव्यावहारिक साबित हो सकता है, क्योंकि यदि इसे पाइपलाइन के सभी चरणों से गुजरना है तो एकल कोड शाखा से सीडी प्रक्रिया में एक जारी करने योग्य कलाकृति का निर्माण किया जाना चाहिए। परिनियोजन पाइपलाइन के माध्यम से निरंतर वितरण को सक्षम किया जाता है। परिनियोजन पाइपलाइन के उद्देश्य के तीन घटक हैंः दृश्यता, प्रतिक्रिया और लगातार परिनियोजन। दृश्यता-सहयोग को बढ़ावा देने के लिए टीम के प्रत्येक सदस्य को निर्माण, तैनाती, परीक्षण और जारी करने सहित वितरण प्रणाली के सभी पहलू दिखाई देते हैं। प्रतिक्रिया-टीम के सदस्य जितनी जल्दी हो सके समस्याओं के बारे में सीखते हैं ताकि वे उन्हें जल्द से जल्द ठीक कर सकें। निरंतर परिनियोजन-एक पूरी तरह से स्वचालित प्रक्रिया के माध्यम से, आप किसी भी वातावरण में सॉफ्टवेयर के किसी भी संस्करण को तैनात और जारी कर सकते हैं। उपकरण/उपकरण प्रकार निरंतर वितरण उत्पादन के माध्यम से स्रोत नियंत्रण से स्वचालन लेता है। विभिन्न उपकरण हैं जो इस प्रक्रिया के सभी या भाग को पूरा करने में मदद करते हैं। ये उपकरण परिनियोजन पाइपलाइन का हिस्सा हैं जिसमें निरंतर वितरण शामिल है। प्रक्रिया के विभिन्न भागों को निष्पादित करने वाले उपकरणों के प्रकारों में शामिल हैंः निरंतर एकीकरण, अनुप्रयोग रिलीज स्वचालन, स्वचालन का निर्माण, अनुप्रयोग जीवनचक्र प्रबंधन। निरंतर वितरण के लिए वास्तुकला निरंतर वितरण का प्रभावी ढंग से अभ्यास करने के लिए, सॉफ्टवेयर अनुप्रयोगों को संरचनात्मक रूप से महत्वपूर्ण आवश्यकताओं (ए. एस. आर.) जैसे कि परिनियोजन, परिवर्तनशीलता और परीक्षण क्षमता के एक समूह को पूरा करना होता है। इन ए. एस. आर. को उच्च प्राथमिकता की आवश्यकता होती है और इन्हें हल्के में नहीं लिया जा सकता है। निरंतर वितरण के लिए वास्तुकला करते समय अक्सर सूक्ष्म सेवाओं का उपयोग किया जाता है। माइक्रोसर्विसेज के उपयोग से सॉफ्टवेयर सिस्टम की परिनियोजन क्षमता और परिवर्तनशीलता में वृद्धि हो सकती है। परिनियोजन क्षमता सुधारों में शामिल हैंः परिनियोजन स्वतंत्रता, कम परिनियोजन समय, सरल परिनियोजन प्रक्रियाएं और शून्य डाउनटाइम परिनियोजन। अवलोकित परिवर्तनीयता सुधारों में शामिल हैंः छोटे वृद्धिशील कार्यात्मक परिवर्तनों के लिए कम चक्र समय, आसान प्रौद्योगिकी चयन परिवर्तन, वृद्धिशील गुणवत्ता विशेषता परिवर्तन, और आसान भाषा और पुस्तकालय उन्नयन। कार्यान्वयन और उपयोग जेज़ हम्बल और डेविड फ़ार्ले (2010) द्वारा लिखित मूल सीडी पुस्तक ने इस शब्द को लोकप्रिय बनाया; हालाँकि, इसके निर्माण के बाद से परिभाषा आगे बढ़ती रही है और अब इसका अधिक विकसित अर्थ है। कंपनियां आज इन निरंतर वितरण सिद्धांतों और सर्वोत्तम प्रथाओं को लागू कर रही हैं। डोमेन में अंतर, जैसे। चिकित्सा बनाम वेब, अभी भी महत्वपूर्ण है और कार्यान्वयन और उपयोग को प्रभावित करता है। यह दृष्टिकोण रखने वाली प्रसिद्ध कंपनियों में याहू!, अमेज़ॅन, फेसबुक, गूगल, पैडी पावर और वेल्स फार्गो शामिल हैं। लाभ और बाधाएं निरंतर वितरण के कई लाभ बताए गए हैं। बाजार के लिए त्वरित समयः निरंतर वितरण एक संगठन को ग्राहकों को नए सॉफ़्टवेयर रिलीज़ में निहित व्यावसायिक मूल्य को अधिक तेज़ी से वितरित करने देता है। यह क्षमता कंपनी को प्रतिस्पर्धा से एक कदम आगे रहने में मदद करती है। सही उत्पाद का निर्माणः बार-बार जारी होने से अनुप्रयोग विकास दल उपयोगकर्ता की प्रतिक्रिया अधिक तेज़ी से प्राप्त कर सकते हैं। यह उन्हें केवल उपयोगी विशेषताओं पर काम करने देता है। यदि वे पाते हैं कि कोई सुविधा उपयोगी नहीं है, तो वे उस पर आगे कोई प्रयास नहीं करते हैं। इससे उन्हें सही उत्पाद बनाने में मदद मिलती है। उत्पादकता और दक्षता में सुधारः डेवलपर्स, परीक्षकों, संचालन इंजीनियरों आदि के लिए महत्वपूर्ण समय की बचत। स्वचालन के माध्यम से। विश्वसनीय रिलीजः रिलीज से जुड़े जोखिम काफी कम हो गए हैं, और रिलीज प्रक्रिया अधिक विश्वसनीय हो गई है। निरंतर वितरण के साथ, उत्पादन में परिनियोजन से पहले परिनियोजन प्रक्रिया और स्क्रिप्ट का बार-बार परीक्षण किया जाता है। इसलिए, परिनियोजन प्रक्रिया और स्क्रिप्ट में अधिकांश त्रुटियों का पता पहले ही चल चुका है। अधिक बार रिलीज के साथ, प्रत्येक रिलीज में कोड परिवर्तन की संख्या कम हो जाती है। इससे होने वाली किसी भी समस्या को ढूंढना और ठीक करना आसान हो जाता है, जिससे उस समय को कम किया जा सकता है जिसमें उनका प्रभाव पड़ता है। उत्पाद की गुणवत्ता में सुधारः खुले कीड़े और उत्पादन की घटनाओं की संख्या में काफी कमी आई है। ग्राहकों की संतुष्टि में सुधारः ग्राहकों की संतुष्टि का एक उच्च स्तर प्राप्त किया जाता है। बाधाओं की भी जांच की गई है। ग्राहक वरीयताएँः कुछ ग्राहक अपने सिस्टम में निरंतर अद्यतन नहीं चाहते हैं। यह विशेष रूप से उनके संचालन के महत्वपूर्ण चरणों में सच है। डोमेन प्रतिबंधः दूरसंचार और चिकित्सा जैसे कुछ क्षेत्रों में, नए संस्करणों को संचालन चरण में प्रवेश करने की अनुमति देने से पहले नियमों को व्यापक परीक्षण की आवश्यकता होती है। परीक्षण स्वचालन की कमीः परीक्षण स्वचालन की कमी विकासकर्ता के आत्मविश्वास की कमी की ओर ले जाती है और निरंतर वितरण के उपयोग को रोक सकती है। वातावरण में अंतरः विकास, परीक्षण और उत्पादन में उपयोग किए जाने वाले विभिन्न वातावरणों के परिणामस्वरूप अज्ञात मुद्दे उत्पादन वातावरण में फिसल सकते हैं। मानव दैवज्ञ की आवश्यकता वाले परीक्षणः सभी गुणवत्ता विशेषताओं को स्वचालन से सत्यापित नहीं किया जा सकता है। इन विशेषताओं के लिए लूप में मनुष्यों की आवश्यकता होती है, जिससे वितरण पाइपलाइन धीमी हो जाती है। चेन द्वारा गोद लेने की आठ और चुनौतियों को उठाया गया और विस्तार से बताया गया। ये चुनौती संगठनात्मक संरचना, प्रक्रियाओं, उपकरणों, बुनियादी ढांचे, विरासत प्रणालियों, निरंतर वितरण के लिए वास्तुकला, गैर-कार्यात्मक आवश्यकताओं का निरंतर परीक्षण और परीक्षण निष्पादन अनुकूलन के क्षेत्रों में हैं। गोद लेने की चुनौतियों को दूर करने के लिए रणनीतियाँ निरंतर वितरण अपनाने की चुनौतियों को दूर करने के लिए कई रणनीतियाँ बताई गई हैं। देवऑप्स देवऑप्स के साथ संबंध एक सॉफ्टवेयर इंजीनियरिंग दृष्टिकोण है जो सांस्कृतिक परिवर्तन के आसपास केंद्रित है, विशेष रूप से सॉफ्टवेयर वितरण (डेवलपर्स, संचालन, गुणवत्ता आश्वासन, प्रबंधन, आदि) में शामिल विभिन्न टीमों का सहयोग। ), साथ ही सॉफ्टवेयर वितरण में प्रक्रियाओं को स्वचालित करना। निरंतर परिनियोजन से संबंध निरंतर परिनियोजन एक सॉफ्टवेयर इंजीनियरिंग दृष्टिकोण है जो स्वचालित सॉफ्टवेयर परिनियोजन का उपयोग करता है। इसमें, सॉफ़्टवेयर का उत्पादन छोटे चक्रों में किया जाता है, लेकिन उस अंतिम चरण के लिए "एक बटन के क्लिक" की आवश्यकता के बजाय स्वचालित सॉफ़्टवेयर परिनियोजन के माध्यम से भी उत्पादन किया जाता है। इसलिए, निरंतर परिनियोजन को स्वचालन का एक अधिक परिष्कृत रूप माना जा सकता है। अकादमिक साहित्य परिनियोजन विधि के अनुसार निरंतर वितरण और निरंतर परिनियोजन के बीच अंतर करता है; मैनुअल बनाम स्वचालित। एप्लीकेशन लाइफसाइकिल मैनेजमेंट एप्लीकेशन रिलीज ऑटोमेशन बिल्ड मैनेजमेंट चेंज मैनेजमेंट सी. आई./सी. डी. कंटीन्यूअस कॉन्फ़िगरेशन ऑटोमेशन कंटीन्यूअस डिलीवरी प्रैक्टिस कंटीन्यूअस इंटीग्रेशन कंटीन्यूअस टेस्टिंग देवऑप्स रिलीज मैनेजमेंट सॉफ्टवेयर कॉन्फ़िगरेशन मैनेजमेंट वर्जन विनऑप्स आगे पढ़ने के लिए संदर्भ सॉफ्टवेयर रिलीज सॉफ्टवेयर डिज़ाइन सॉफ्टवेयर डेवलपमेंट प्रोसेस देखें।