क्या AWS CodeDeploy को गति देने का एक तरीका है


15

मैं अपनी साइटों को तैनात करने के लिए AWS CodeDeploy का उपयोग कर रहा हूं, और मैंने देखा कि यह गति में बहुत सुसंगत नहीं है; कभी-कभी यह बहुत तेज़ होता है, लेकिन दूसरी बार परिनियोजन के प्रत्येक चरण में मिनट लग सकते हैं। यह बहुत कष्टप्रद है जब बग या आउटेज के मामले में एक तैनाती तेजी से की जानी चाहिए।

मुझे हालांकि कोडडिप्लॉय की गति पर कोई भी दस्तावेज नहीं मिल सकता है, और यह भी कि जब यह धीमा होता है या जब यह तेज होता है तो मुझे कोई तर्क नहीं मिल सकता है। क्या इसे गति देने का कोई तरीका है और क्या यह जानने का कोई तरीका है कि इतनी देर क्या है?

जवाबों:


10

CodeDeploy डिफ़ॉल्ट रूप से बहुत कम करता है - यह S3 या Github से कोड को पकड़ता है, फिर फ़ाइल के निर्देशों के अनुसार आपकी स्क्रिप्ट चलाता है appspec.yml

यदि आपकी तैनाती S3 से डेटा के गीगाबाइट्स को हथिया रही है, तो आप पाएंगे कि डेटा ट्रांसफर के लिए कुछ समय लगता है (विशेष रूप से सीमित बैंडविड्थ के साथ छोटे EC2 इंस्टेंसेस पर), लेकिन उस तैनाती के अतिरिक्त अन्य जो कुछ भी आपके कारण होने की संभावना है। अपनी तैनाती लिपियों में कर रहे हैं।

CodeDeploy परिनियोजन में निम्न चरण हैं:

  • ApplicationStop - आप इस हुक को नियंत्रित करते हैं
  • DownloadBundle - S3 / Github से कोडडेपल कोड कोड
  • इससे पहले कि आप इस हुक को नियंत्रित करें
  • इंस्टॉल करें - कोडडिप्लो कॉप्स एक अस्थायी स्थान से अंतिम गंतव्य तक कोड
  • AfterInstall - आप इस हुक को नियंत्रित करते हैं
  • ApplicationStart - आप इस हुक को नियंत्रित करते हैं
  • ValidateService - आप इस हुक को नियंत्रित करते हैं

बोल्ड किए गए लोग कोडडिप्लॉय तक हैं, बाकी लोग आपके ऊपर हैं। यदि आप बोल्ड वाले में अलग-अलग देरी देख रहे हैं, तो एडब्ल्यूएस समर्थन से संपर्क करें, लेकिन अन्यथा संभावना है कि आपको अपने हुक की जांच करने की आवश्यकता है।


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

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

@JasperKennis हाँ, छोटे उदाहरण प्रकार काफी बैंडविड्थ-सीमित हो सकते हैं, खासकर यदि आप शोर पड़ोसियों के साथ एक मेजबान पर हैं। यह समझ में आता है।
सिजयोज़

21

BlockTraffic और AllowTraffic

बस अपने लक्ष्य समूह की स्वास्थ्य जांच सेटिंग्स को समायोजित करके कुछ मिनटों का समय निकाल सकते हैं।

इससे पहले

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

उपरांत

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

व्याख्या

यह काम करता है क्योंकि BlockTrafficऔर AllowTrafficदोनों सफल स्वास्थ्य जांच की प्रतीक्षा करते हैं। डिफ़ॉल्ट स्वास्थ्य जांच अंतराल हर 30 सेकंड में 1 जांच है, और एक सफल स्वास्थ्य जांच में 5 लगातार 200 प्रतिक्रियाओं की आवश्यकता होती है। इस प्रकार यह डिफ़ॉल्ट रूप से 2 मिनट 30 सेकंड से अधिक समय लेता है। और यह हर EC2 उदाहरण के लिए है। स्वास्थ्य जांच अंतराल को कम करने और आवश्यक सफल जांचों की संख्या को सीमित करने से तैनाती के समय में सुधार होगा।


यह बदलाव करने के बाद मुझे मिल रहा है Script at specified location: ... failed to complete in 5 seconds। (यह appspec.yml-> हुक में सेट किया गया है: -> इससे पहले कि :) :) (कृपया मुझे बताएं क्यों)
येवगेनी

क्या प्री-इनस्टॉल कॉन्फ़िगरेशन में कोई टाइमआउट सेट है? docs.aws.amazon.com/codedeploy/latest/userguide/…
पीटर ताओ

धन्यवाद, अब मैं देख रहा हूं कि यह संबंधित नहीं है, बल्कि एक संयोग है।
येवगेनी अफानसेयेव

2

जाँच करने के लिए एक और सेटिंग लक्ष्य समूह की "डेरेगेटरी विलंब" है। मेरी स्वास्थ्य जांच की सेटिंग पहले से ही कम थी और यह मेरे मामले में अड़चन थी।

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