जेनकिंस क्या है? निरंतर एकीकरण (CI) टूल का उपयोग क्यों करें?

जेनकिंस क्या है?

जेनकींस एक ओपन-सोर्स सतत एकीकरण सर्वर है जो में लिखा गया है Java स्वचालित तरीके से सतत एकीकरण प्रक्रिया को प्राप्त करने के लिए क्रियाओं की एक श्रृंखला को व्यवस्थित करने के लिए। जेनकिंस सॉफ्टवेयर के निर्माण, परीक्षण, दस्तावेजीकरण, तैनाती और सॉफ्टवेयर विकास जीवन चक्र के अन्य चरणों से लेकर सॉफ्टवेयर के संपूर्ण विकास जीवन चक्र का समर्थन करता है।

जेनकिंस दुनिया भर में व्यापक रूप से इस्तेमाल किया जाने वाला एप्लिकेशन है, जिसके लगभग 300k इंस्टॉलेशन हैं और यह दिन-प्रतिदिन बढ़ रहा है। जेनकिंस का उपयोग करके, सॉफ्टवेयर कंपनियां अपनी सॉफ्टवेयर विकास प्रक्रिया को तेज कर सकती हैं, क्योंकि जेनकिंस तेजी से निर्माण और परीक्षण को स्वचालित कर सकता है।

यह एक सर्वर-आधारित एप्लिकेशन है और इसके लिए Apache Tomcat जैसे वेब सर्वर की आवश्यकता होती है। जेनकिंस सॉफ्टवेयर के इतने लोकप्रिय होने का कारण यह है कि यह किसी प्रोजेक्ट के विकास के दौरान होने वाले दोहराए जाने वाले कार्यों की निगरानी करता है। उदाहरण के लिए, यदि आपकी टीम कोई प्रोजेक्ट विकसित कर रही है, तो जेनकिंस आपके प्रोजेक्ट बिल्ड का लगातार परीक्षण करेगा और आपको आपके विकास के शुरुआती चरणों में त्रुटियाँ दिखाएगा।

सतत एकीकरण क्या है?

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

यह प्रतिबद्धता, निर्माण, परीक्षण और तैनाती एक सतत प्रक्रिया है और इसलिए इसका नाम सतत एकीकरण/तैनाती है।

जेनकिंस कैसे काम करता है?

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

  • सतत एकीकरण सर्वर (जेनकिंस, Bamboo, CruiseControl, TeamCity, और दूसरे)
  • स्रोत नियंत्रण उपकरण (उदाहरणार्थ, सी.वी.एस., एस.वी.एन., जी.आई.टी., मर्क्युरियल, परफोर्स, क्लियरकेस और अन्य)
  • निर्माण उपकरण (मेक, एएनटी, मावेन, आइवी, Gradle, और दूसरे)
  • स्वचालन परीक्षण ढांचा (Selenium, Appium, टेस्टकम्पलीट, यूएफटी, और अन्य)

जेनकिन इतिहास

  • कोहसुके कावागुची, Java सन माइक्रोसिस्टम्स में काम करने वाले डेवलपर कोड बनाने और बार-बार त्रुटियों को ठीक करने से थक गए थे। 2004 में, हडसन नामक एक ऑटोमेशन सर्वर बनाया जो बिल्ड और टेस्ट टास्क को स्वचालित करता है।
  • 2011 में, Oracle सन माइक्रोसिस्टम्स के स्वामित्व वाली कंपनी का हडसन ओपन सोर्स समुदाय के साथ विवाद हो गया था, इसलिए उन्होंने हडसन को अलग कर दिया और इसका नाम बदलकर जेनकिन्स रख दिया।
  • हडसन और जेनकिंस दोनों स्वतंत्र रूप से काम करते रहे। लेकिन कम समय में ही जेनकिंस ने बहुत सारे प्रोजेक्ट और योगदानकर्ता हासिल कर लिए, जबकि हडसन के पास सिर्फ़ 32 प्रोजेक्ट रह गए। समय के साथ जेनकिंस ज़्यादा लोकप्रिय हो गया और हडसन का अब रखरखाव नहीं किया जाता।

जेनकिंस के साथ सतत एकीकरण का उपयोग क्यों करें?

कुछ लोगों को लग सकता है कि सॉफ़्टवेयर विकसित करने का पुराना तरीका ही बेहतर तरीका है। आइए नीचे दिए गए उदाहरण से जेनकिंस के साथ CI के फ़ायदों को समझते हैं

आइए कल्पना करें कि लगभग 10 डेवलपर्स हैं जो एक प्रोजेक्ट पर काम कर रहे हैं। साझा भंडारकुछ डेवलपर अपना कार्य 25 दिनों में पूरा कर लेते हैं जबकि अन्य को इसे पूरा करने में 30 दिन लगते हैं।

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

कोड कमिट का निर्माण किया गया, तथा परीक्षण चक्र बहुत ही अनियमित था, तथा एक भी निर्माण कई दिनों के बाद किया गया।

डेवलपर द्वारा कोड कमिट किए जाने के तुरंत बाद कोड बनाया और परीक्षण किया जाता है। जेनकिन दिन में कई बार कोड बनाएगा और उसका परीक्षण करेगा

यदि निर्माण सफल होता है, तो जेनकिंस स्रोत को परीक्षण सर्वर में तैनात करेगा और तैनाती टीम को सूचित करेगा।

यदि बिल्ड विफल हो जाता है, तो जेनकिन्स डेवलपर टीम को त्रुटियों की सूचना देगा।

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

सतत एकीकरण का वास्तविक विश्व केस अध्ययन

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

Laterउन्होंने निरंतर एकीकरण दृष्टिकोण अपनाया। डेवलपर द्वारा कोड प्रतिबद्ध किए जाने के तुरंत बाद सॉफ़्टवेयर का निर्माण और परीक्षण किया गया। यदि कोई त्रुटि पाई जाती है, तो संबंधित डेवलपर तुरंत दोष को ठीक कर सकता है।

सतत एकीकरण का वास्तविक विश्व केस अध्ययन

जेनकिंस प्लगइन्स

डिफ़ॉल्ट रूप से, जेनकिंस सीमित सुविधाओं के साथ आता है। यदि आप अपने जेनकिंस इंस्टॉलेशन को Git जैसे संस्करण नियंत्रण टूल के साथ एकीकृत करना चाहते हैं, तो आपको Git से संबंधित प्लगइन्स इंस्टॉल करने की आवश्यकता है। वास्तव में, Maven जैसे टूल के साथ एकीकरण के लिए, Amazon EC2 के लिए, आपको अपने जेनकिंस में संबंधित प्लगइन्स स्थापित करने की आवश्यकता है।

जेनकिंस प्लगइन्स
जेनकिंस में प्लगइन्स एकीकरण

जेनकिंस का उपयोग करने के लाभ

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

जेनकिंस का उपयोग करने के नुकसान

यद्यपि जेनकिन्स एक बहुत शक्तिशाली उपकरण है, फिर भी इसमें कुछ खामियां हैं।

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

निष्कर्ष

  • सतत एकीकरण में, कोड प्रतिबद्ध होने के बाद, सॉफ्टवेयर का निर्माण और परीक्षण तुरंत किया जाता है
  • जेनकिंस का उपयोग किसी सॉफ्टवेयर परियोजना में सतत एकीकरण के लिए क्रियाओं की श्रृंखला को व्यवस्थित करने के लिए किया जाता है
  • जेनकिंस से पहले जब सभी डेवलपर्स अपने निर्धारित कोडिंग कार्य पूरे कर लेते थे, तो वे एक ही समय में अपना कोड कमिट कर देते थे। Later, बिल्ड का परीक्षण और तैनाती की जाती है।
  • जेनकिंस के बाद डेवलपर द्वारा कोड कमिट किए जाने के तुरंत बाद कोड बनाया और परीक्षण किया जाता है। जेनकिन दिन में कई बार कोड बनाएगा और उसका परीक्षण करेगा
  • डिफ़ॉल्ट रूप से, जेनकिंस सीमित सुविधाओं के साथ आता है। यदि आप अपने जेनकिंस इंस्टॉलेशन को Git जैसे संस्करण नियंत्रण टूल के साथ एकीकृत करना चाहते हैं, तो आपको Git से संबंधित प्लगइन्स इंस्टॉल करने की आवश्यकता है। यह भी देखें सर्वश्रेष्ठ जेनकिंस वैकल्पिक उपकरण
  • जेनकिंस का सबसे बड़ा लाभ यह है कि इसका प्रबंधन समुदाय द्वारा किया जाता है जो सार्वजनिक बैठकें आयोजित करता है और जेनकिंस परियोजनाओं के विकास के लिए जनता से इनपुट लेता है
  • जेनकिंस का सबसे बड़ा नुकसान यह है कि इसका इंटरफ़ेस पुराना है और वर्तमान UI रुझानों की तुलना में उपयोगकर्ता के अनुकूल नहीं है। यदि आप अन्य विकल्पों पर विचार कर रहे हैं जो अधिक आधुनिक उपयोगकर्ता अनुभव प्रदान कर सकते हैं, तो आप इनमें से कुछ का पता लगाना चाह सकते हैं शीर्ष सतत एकीकरण उपकरण उपलब्ध है.