जेनकिंस को ठीक से कैसे मापें?


27

मेरे प्रोजेक्ट में हमारे पास एक AWS सर्वर चल रहा है जो जेनकिंस मास्टर + 1 जेनकिंस दास (2 निष्पादक) ... और हमें
अपनी निर्माण शक्ति को बढ़ाने के लिए हमें तीन विकल्प चाहिए:

  1. स्केल अप : AWS उदाहरण को बड़ा करें और अधिक निष्पादक जोड़ें।
  2. स्केल अप : एडब्ल्यूएस उदाहरण को बड़ा करें और एक और जेनकींस दास प्रक्रिया जोड़ें।
  3. स्केल आउट : जेनकिंस दास के साथ एक और AWS उदाहरण बनाएँ और इसे मास्टर से कनेक्ट करें

हम 2 करना चाहते हैं। जैसा कि हम एक बड़े संगठन में हैं और हमारे वर्तमान जेनकिंस मास्टर के पास हर उस जगह की पहुंच है, जिसकी उन्हें जरूरत है। विकल्प 3. "नया सर्वर" जटिल है क्योंकि इसमें अधिक नौकरशाही अनुमोदन की आवश्यकता होती है जो सप्ताह लगेंगे।

तो मेरे सवाल हैं:

  • क्या विकल्प 2 में कोई तकनीकी समस्या है? । हो सकता है कि प्रत्येक जेनकिंस गुलाम के निष्पादकों को अन्य दास निष्पादकों के बारे में पता न हो?
  • सामान्य तौर पर, जेनकिंस को स्केल करने के लिए सबसे अच्छा तरीका क्या है? स्केलिंग या स्केलिंग?

आपके पास एक नुकसान होगा, यदि आप किसी भिन्न हार्डवेयर प्रकार पर चलते हैं, तो एक उदाहरण प्रकार बदलना समस्याग्रस्त हो सकता है, क्योंकि आपके वॉल्यूम को बैकअप लेना होगा और नए उदाहरण में पुनर्स्थापित करना होगा।
तेनसीबाई

2
क्यों नहीं नंबर 3? जेनकिंस को नौकरी भेजने का सामान्य तरीका मास्टर करना है। और कुछ मानदंडों के आधार पर मास्टर इसे सहज दास को भेजेगा
रोमियो निनोव

FWIW, आपको अपनी बिल्ड संरचना का विश्लेषण करने की भी आवश्यकता है कि यह कैसे निर्माण मशीन के संसाधनों का उपयोग करता है - स्केलिंग में मदद नहीं मिल सकती है - मुझे ऐसे मामलों का सामना करना पड़ा जिसमें एक ही मशीन पर 2 समानांतर बिल्ड के लिए बिल्ड समय संयुक्त बिल्ड समय से अधिक था वही 2 क्रमिक रूप से निष्पादित, गैर-अतिव्यापी बनाता है। ऐसे मामले में # 3 वास्तव में एकमात्र व्यावहारिक विकल्प उपलब्ध होगा।
डैन कॉर्निलेस्कु

मैं मानता हूं कि # 3 बेहतर है, लेकिन मेरे पास इसके लिए तर्क नहीं हैं या # 1 और # 2 के खिलाफ तर्क नहीं है ...
ऑस्कर फोली

यदि आपके पास आपके वातावरण का अवसर है, तो मैं एक पंचांग समाधान के बारे में सोचूंगा। यह देखते हुए कि आप पहले से ही AWS में हैं, आप कार्यभार को संभालते हुए आसानी से मशीनों को ऊपर और नीचे ला सकते हैं। wiki.jenkins.io/display/JENKINS/Amazon+EC2+Plugin
casey vega

जवाबों:


11

एक ही मशीन पर कई जेनकींस दासों को चलाने के साथ कोई मौलिक तकनीकी समस्याएं नहीं हैं । वास्तव में एक ही मशीन पर मल्टीपल स्लेव्स रन करना कई अच्छे कारणों को सूचीबद्ध करता है:

हालांकि निष्पादकों का सही उपयोग एक ही मशीन पर कई दास उदाहरणों की आवश्यकता को कम करता है, पर विचार करने के लिए कुछ अद्वितीय उपयोग हैं:

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

सामान्य स्केलिंग में प्राथमिकता दी जाती है, मुख्यतः क्योंकि स्केल करने की क्षमता आमतौर पर उपलब्ध भौतिक संसाधनों के प्रकार / आकारों द्वारा सीमित होती है।

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

उदाहरण के लिए मुझे ऐसे मामलों का सामना करना पड़ा जिनमें एक ही मशीन पर 2 समानांतर बिल्ड के लिए बिल्ड टाइम समान मशीन पर क्रमानुसार निष्पादित (नॉन-ओवरलैपिंग) किए गए 2 बिल्ड के संयुक्त बिल्ड समय से अधिक लंबा था। ऐसे मामले में मैं स्केलिंग पर विचार नहीं करूंगा क्योंकि यह वास्तव में समग्र भवन क्षमता में कमी करेगा ।



3

मुझे लगता है कि आपको न तो करना चाहिए;)

हाँ उस जैसा। मुझे लगता है कि आपको अधिक निष्पादकों की आवश्यकता है, शायद आपके बिल्ड वास्तव में संसाधन गहन हैं? मैं कम से कम 4 चलाऊंगा, लेकिन हम नौकरियों के आधार पर 6 से 8 चलाते हैं। मुझे एक्सर्स की # लाशों का मिलान करना पसंद है। तो आप अपने नोड्स को बड़ा करना चाहते हैं, मुझे लगता है कि हम अपने 4-8 निष्पादकों के लिए एक एम 4 बड़ा चलाते हैं।

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


2

मैं स्केल अप करने के बजाय विकल्प के लिए जा रहा हूं। 3. हमने एक सेटअप बनाया है, जहां हम सभी जेनकींस एजेंट एक ऑटो-स्केलिंग समूह के साथ ईसीएस (कस्टम डॉकर आधारित जेनकींस) पर चल रहे हैं। हमारे पास हमारे सभी जेनकिंस स्वामी हैं जो ईसीएस से संपर्क करते हैं, इस प्रकार ईसीएस पर काम का बोझ साझा करते हैं, और एक बड़े पैमाने पर व्यायाम में जेनकिंस मास्टर को फिर से बनाने की कोई आवश्यकता नहीं है।

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