2010-01-08 5 views
6

एक ऐप सर्वर पर जिसमें कुछ स्रोत फ़ाइलें अक्सर बदलती हैं, क्या निम्न दृष्टिकोण की अनुशंसा की जाती है?एडब्ल्यूएस ईसी 2- एस 3 के साथ स्रोत कोड फाइलों को सिंक करना - क्या यह एक उचित दृष्टिकोण है?

S3 निजी बाल्टी (उदाहरण के लिए प्रत्येक 15 मिनट) के साथ स्रोत फ़ाइलों को सिंक करने के लिए S3tools के साथ एक क्रॉन नौकरी का उपयोग करें।

सर्वर शुरू होने पर - नवीनतम स्रोतों को पुनर्प्राप्त करने के लिए स्रोत बाल्टी के साथ समन्वयित करने के लिए उपयोगकर्ता डेटा स्क्रिप्ट का उपयोग करें।

लाभ: 1. अनुप्रयोग सर्वर के लिए EBS संलग्न करने के लिए बस सभी एप्लिकेशन सर्वर 3. सूत्रों का कहना है अपने आप बैकअप लिया करने के लिए 2. इसी प्रकार के सेटअप में कुछ फाइलों को बचाने के लिए कोई ज़रूरत नहीं। 4. एक उपज के रूप में, स्वचालित रूप से एकाधिक ऐप सर्वरों को कोड वितरित करता है।

नुकसान: एस 3 अन्य पर स्रोत कोड रखते हुए?

इस पद्धति के बारे में आप क्या सोचते हैं? स्रोत कोड बदलते समय ईसी 2 का उपयोग करने का यह सही तरीका है (दिन में कुछ बार) कृपया ईसी 2 उदाहरण चलाने के लिए सबसे अच्छा तरीका सुझाएं जहां स्रोत अक्सर बदलते हैं।

उत्तर

2

यदि आप बड़ी संख्या में ईसी 2 उदाहरण चला रहे हैं, तो उन्हें केंद्रीय स्थान से स्वयं को सिंक करने के लिए कम प्रयास होगा (यानी, आप निजी बाल्टी से सिंक करते हैं, उस बाल्टी से ऐप-सर्वर सिंक)।

हालांकि, यह मान लें कि एस 3 बाल्टी के अपडेट केवल ऑब्जेक्ट स्तर पर परमाणु हैं, और अधिक महत्वपूर्ण बात यह है कि तत्काल सुसंगत होने की गारंटी नहीं है (हालांकि मुझे हाल ही में एक नोट को याद है कि हमें-वेस्ट एंडपॉइंट पढ़ने- लिखने के बाद स्थिरता)।

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

+0

धन्यवाद, मैं लिखने की स्थिरता के बाद पढ़ने के कारण चिंतित नहीं हूं। S3 को लिखने के बाद केवल क्रॉन रन के दौरान कोड फ़ाइल में बदलाव होने के बाद ही ऐसा होगा, ऐसा कुछ भी नहीं होगा जो सर्वर को पुनरारंभ करता है और स्रोतों को सर्वर पर वापस सिंक करने की आवश्यकता होती है। EC2 पर किसी ऐप सर्वर में स्रोत कोड दृढ़ता प्राप्त करने का सबसे अच्छा अभ्यास क्या है? – Nir

4

मुझे लगता है कि आप एस 3 पर स्रोत फ़ाइलों को संग्रहीत करने के बजाय, एक उचित स्रोत कोड भंडार, जैसे सबवर्सन या गिट का उपयोग करना बेहतर कर रहे हैं। इस तरह से आपके द्वारा उल्लिखित अद्यतन स्थिरता समस्याओं से बचते समय स्रोत फ़ाइलों के लिए एक केंद्रीय स्थान हो सकता है।

आप ईसी 2 के बाहर अपने स्वयं के सर्वरों में स्रोत भंडार डाल सकते हैं, या इसे ईसी 2 इंस्टेंस पर होस्ट कर सकते हैं (सुनिश्चित करें कि रिपॉजिटरी फाइल बाद के मामले में ईबीएस वॉल्यूम पर हैं)।

+0

मैं सेटअप में बाहरी सर्वर को शामिल नहीं करना चाहता हूं। मैं एक साधारण विश्वसनीय सेटअप करना चाहता हूं जिसमें कुछ होता है तो सिस्टम स्वचालित रूप से आकार में वापस आ जाता है। बाहरी सर्वर जोड़ना सादगी का आकर्षण खो देता है और सिस्टम को एक और प्रदाता की विफलता के लिए उजागर करता है। S3 में फ़ाइलों को ओवरराइट करने के बजाय, स्रोत नियंत्रण का उपयोग करने के लिए – Nir

+0

+1। क्या होगा यदि आप पिछले संस्करण में वापस रोल करना चाहते हैं? व्यक्तिगत रूप से, मुझे लगता है कि एक निजी गिट भंडार में स्रोत कोड को संग्रहीत नहीं करना (गिटूब पर होस्ट किया गया है) कहें कि इसे एस 3 बाल्टी में संग्रहीत करने से विफलता का अधिक मौका है। न तो सेवा जल्द ही नीचे जा रही है, और यदि वे करते हैं, तो आप निश्चित रूप से इसके बारे में जानेंगे। –

संबंधित मुद्दे