जेनकिंस क्या है?
जेनकिंस एक खुला स्रोत है निरंतर एकीकरण सर्वर उन कार्यों की एक श्रृंखला को ऑर्केस्ट्रेट करने में सक्षम है जो एक स्वचालित फैशन में निरंतर एकीकरण प्रक्रिया (और न केवल) को प्राप्त करने में मदद करते हैं।
जेनकिंस स्वतंत्र है और पूरी तरह जावा में लिखा गया है। जेनकिंस दुनिया भर में एक व्यापक रूप से उपयोग किया जाने वाला अनुप्रयोग है जिसमें लगभग 300k इंस्टॉलेशन और दिन-प्रतिदिन बढ़ते हैं।
यह एक सर्वर-आधारित अनुप्रयोग है और इसके लिए Apache Tomcat जैसे वेब सर्वर की आवश्यकता होती है। जेनकिंस के लोकप्रिय होने का कारण बार-बार होने वाले कार्यों की निगरानी करना है जो किसी परियोजना के विकास के दौरान उत्पन्न होते हैं। उदाहरण के लिए, यदि आपकी टीम एक परियोजना विकसित कर रही है, तो जेनकिन्स आपके परियोजना के निर्माण का लगातार परीक्षण करेगा और आपको आपके विकास के शुरुआती चरणों में त्रुटियों को दिखाएगा।
जेनकिंस का उपयोग करके, सॉफ्टवेयर कंपनियां अपनी सॉफ्टवेयर विकास प्रक्रिया को तेज कर सकती हैं, क्योंकि जेनकींस तेजी से दर पर निर्माण और परीक्षण को स्वचालित कर सकती है। जेनकिंस सॉफ्टवेयर के निर्माण, परीक्षण, सॉफ्टवेयर का दस्तावेजीकरण, तैनाती और सॉफ्टवेयर विकास जीवनचक्र के अन्य चरणों से सॉफ्टवेयर के पूर्ण विकास जीवनचक्र का समर्थन करता है।
इस ट्यूटोरियल में, आप सीखेंगे
- जेनकिंस क्या है?
- निरंतर एकीकरण क्या है?
- जेनकिन इतिहास
- जेनकींस के साथ निरंतर एकीकरण का उपयोग क्यों करें?
- निरंतर एकीकरण की वास्तविक दुनिया के मामले का अध्ययन
- जेनकिंस का उपयोग करने के फायदे
- जेनकिंस का उपयोग करने के नुकसान
निरंतर एकीकरण क्या है?
कोड कमिट के बाद कंटीन्यूअस इंटीग्रेशन में, सॉफ्टवेयर को तुरंत बनाया और परखा जाता है। कई डेवलपर्स के साथ एक बड़ी परियोजना में, दिन में कई बार कमिट किए जाते हैं। प्रत्येक प्रतिबद्ध कोड के साथ बनाया और परीक्षण किया जाता है। यदि परीक्षण पारित किया जाता है, तो तैनाती के लिए बिल्ड का परीक्षण किया जाता है। यदि तैनाती एक सफलता है, तो कोड को उत्पादन में धकेल दिया जाता है। यह प्रतिबद्ध, निर्माण, परीक्षण और तैनाती एक सतत प्रक्रिया है और इसलिए नाम निरंतर एकीकरण / तैनाती है।
एक सतत एकीकरण पाइपलाइन एक शक्तिशाली उपकरण है जिसमें उपकरण की मेजबानी , मॉनिटर , संकलन और परीक्षण कोड, या कोड परिवर्तन जैसे डिज़ाइन किए गए उपकरणों का एक सेट शामिल है :
- निरंतर एकीकरण सर्वर (जेनकींस, बांस, क्रूज़कंट्रोल, टीमसिटी और अन्य)
- स्रोत नियंत्रण उपकरण (उदाहरण के लिए, CVS, SVN, GIT, Mercurial, Perforce, ClearCase और अन्य)
- उपकरण बनाएँ (मेक, एएनटी, मेवेन, आइवी, ग्रैडल और अन्य)
- ऑटोमेशन टेस्टिंग फ्रेमवर्क (सेलेनियम, एपियम, टेस्टकम्प्लीट, यूएफटी और अन्य)
जेनकिन इतिहास
- सन माइक्रोसिस्टम्स में काम करने वाले एक जावा डेवलपर कोहसुके कावागुची ने कोड के निर्माण और त्रुटियों को दोहराते हुए ठीक किया। 2004 में, हडसन नामक एक स्वचालन सर्वर बनाया जो निर्माण और परीक्षण कार्य को स्वचालित करता है।
- 2011 में, ओरेकल, जिसके पास सन माइक्रोसिस्टम्स था, का हडसन ओपन सोर्स समुदाय के साथ विवाद था, इसलिए उन्होंने हडसन को त्याग दिया और इसका नाम बदलकर जेनकिंस कर दिया।
- हडसन और जेनकिन्स दोनों स्वतंत्र रूप से काम करते रहे। लेकिन कुछ ही समय में, जेनकिन्स ने बहुत सी परियोजनाएं और योगदान प्राप्त कर लिए, जबकि हडसन केवल 32 परियोजनाओं के साथ ही रहा। समय के साथ, जेनकिंस अधिक लोकप्रिय हो गए, और हडसन अब भी बनाए नहीं हैं।
जेनकींस के साथ निरंतर एकीकरण का उपयोग क्यों करें?
कुछ लोग सोच सकते हैं कि सॉफ्टवेयर विकसित करने का पुराना तरीका बेहतर तरीका है। आइए निम्नलिखित उदाहरणों के साथ जेनकिन्स के साथ सीआई के फायदों को समझें
आइए हम कल्पना करें, कि लगभग 10 डेवलपर्स हैं जो एक साझा भंडार पर काम कर रहे हैं। कुछ डेवलपर अपने कार्य को 25 दिनों में पूरा करते हैं जबकि अन्य को पूरा करने में 30 दिन लगते हैं।
जेनकिंस से पहले | जेनकिंस के बाद |
---|---|
एक बार सभी डेवलपर्स ने अपने असाइन किए गए कोडिंग कार्यों को पूरा कर लिया था, वे एक ही समय में अपने कोड को पूरा करने के लिए उपयोग करते थे। बाद में, बिल्ड का परीक्षण और परिनियोजन किया जाता है। कोड प्रतिबद्ध बनाया गया, और परीक्षण चक्र बहुत ही निराला था, और कई दिनों के बाद एक ही निर्माण किया गया था। | जैसे ही डेवलपर कोड शुरू करता है कोड बनाया और परीक्षण किया जाता है। जेनकिन दिन में कई बार कोड का निर्माण और परीक्षण करेगा यदि बिल्ड सफल होता है, तो जेनकिन्स स्रोत को टेस्ट सर्वर में तैनात करेगा और तैनाती टीम को सूचित करेगा। यदि बिल्ड विफल हो जाता है, तो जेनकिन्स डेवलपर टीम को त्रुटियों को सूचित करेगा। |
चूंकि कोड एक ही बार में बनाया गया था, कुछ डेवलपर्स को तब तक इंतजार करना होगा जब तक कि अन्य डेवलपर्स अपने बिल्ड की जांच करने के लिए कोडिंग खत्म नहीं कर देते | किसी भी डेवलपर के आने के तुरंत बाद कोड बनाया जाता है। |
एकाधिक कमिट के लिए त्रुटियों को अलग करना, पता लगाना और उन्हें ठीक करना आसान काम नहीं है। | चूंकि कोड एकल डेवलपर के प्रत्येक कमिट के बाद बनाया गया है, इसलिए यह पता लगाना आसान है कि किसके कोड के कारण विफल हुआ |
कोड का निर्माण और परीक्षण की प्रक्रिया पूरी तरह से मैनुअल है, इसलिए विफलता की संभावना बहुत अधिक है। | स्वचालित निर्माण और परीक्षण प्रक्रिया समय की बचत और दोषों को कम करती है। |
एक बार सभी त्रुटियों को ठीक करने और परीक्षण करने के बाद कोड को तैनात किया जाता है। | प्रत्येक सफल निर्माण और परीक्षण के बाद कोड की तैनाती की जाती है। |
विकास चक्र धीमा है | विकास चक्र तेज है। नई सुविधाएँ उपयोगकर्ताओं के लिए अधिक आसानी से उपलब्ध हैं। मुनाफा बढ़ाता है। |
निरंतर एकीकरण की वास्तविक दुनिया के मामले का अध्ययन
मुझे यकीन है कि आप सभी पुराने फोन नोकिया से वाकिफ होंगे। नोकिया एक प्रक्रिया का उपयोग करता था जिसे नाइटली बिल्ड कहा जाता था। दिन के दौरान विविध डेवलपर्स से कई काम आने के बाद, सॉफ्टवेयर हर रात बनाया जाता है। चूंकि सॉफ्टवेयर दिन में केवल एक बार बनाया गया था, इसलिए यह एक बड़े कोड बेस में त्रुटियों को अलग करने, पहचानने और ठीक करने के लिए बहुत बड़ा दर्द है।
बाद में, उन्होंने निरंतर एकीकरण दृष्टिकोण अपनाया। डेवलपर द्वारा प्रतिबद्ध कोड के रूप में सॉफ़्टवेयर का निर्माण और परीक्षण किया गया था। यदि किसी त्रुटि का पता चला है, तो संबंधित डेवलपर दोष को जल्दी से ठीक कर सकता है।
जेनकिंस प्लगइन्स
डिफ़ॉल्ट रूप से, जेनकिंस सीमित सुविधाओं के साथ आता है। यदि आप Git जैसे संस्करण नियंत्रण उपकरण के साथ अपने जेनकींस इंस्टॉलेशन को एकीकृत करना चाहते हैं, तो आपको Git से संबंधित प्लगइन्स इंस्टॉल करने की आवश्यकता है। वास्तव में, मावेन, अमेज़ॅन ईसी 2 जैसे उपकरणों के साथ एकीकरण के लिए, आपको अपने जेनकींस में संबंधित प्लगइन्स स्थापित करने की आवश्यकता है।

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