अन्य तैनाती रणनीतियों की तुलना में एडब्ल्यूएस इलास्टिक बीनस्टॉक के पेशेवरों और विपक्ष क्या हैं?


17

मैं पूरे नेटफ्लिक्स ओएसएस स्टैक और सामान्य रूप से तैनाती के लिए बहुत नया हूं। मेरे वर्तमान स्तर के ज्ञान-विज्ञान के लिए एक पृष्ठभूमि के रूप में, मेरी मुख्य भूमिका एक फ्रंट-एंड एप्लिकेशन इंजीनियर के रूप में है। हालांकि, मैं चीजों के संचालन पक्ष का आनंद लेता हूं, इसलिए मैं एक नई तैनाती रणनीति और एक नई परियोजना के लिए टूलिंग स्थापित करने का प्रयास कर रहा हूं।

हमारे लक्ष्य

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

हम थोड़ा और प्रारंभिक सेटअप समय के साथ ठीक हैं यदि ऐसा करने से भविष्य में हमें कुछ सिरदर्द से बचाएंगे।

तो, इन पंक्तियों के साथ, मैं पॉडकास्ट सुन रहा हूं, ऑप्स वार्ता देख रहा हूं, और ब्लॉग पोस्टों के टन को पढ़ रहा हूं और हमारे लक्ष्यों पर आधारित है और मैंने कुछ सर्वोत्तम प्रथाओं का निर्माण किया है, हमने एक योजना का उपयोग करना शुरू कर दिया है असगर, हमारे पैकेज को जार में घुमाकर और एएमआई में रोल कर रहे हैं।

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

मैंने इसमें देखा है और एक WAR फ़ाइल और एक संलग्न RDS डेटाबेस के साथ एक परीक्षण वातावरण का निर्माण किया है। चीजें काम करने लगती हैं और मेरा मानना ​​है कि हम एडब्ल्यूएस एपीआई के माध्यम से जेनकिंस का उपयोग करके एक परीक्षण वातावरण में deploys को स्वचालित कर सकते हैं। काफी सरल लगता है ... शायद बहुत सरल है।

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

क्या आप इलास्टिक बीनस्टॉक का उपयोग करते हैं? यदि हां, तो क्यों और क्या कारक उस निर्णय का नेतृत्व करते हैं? आपको क्या पसंद है और क्या नापसंद?

यदि आप Elastic Beanstalk का उपयोग नहीं करते हैं, लेकिन इस पर विचार करते हैं, तो आप क्या उपयोग करते हैं और आपने Elastic Beanstalk का उपयोग क्यों नहीं किया?

एक एसओए के लिए एक लोचदार बीनस्टॉक आधारित तैनाती रणनीति के फायदे और नुकसान क्या हैं? यही है, क्या इलास्टिक बीनस्टॉक कई छोटे अनुप्रयोगों के साथ अच्छी तरह से काम करेगा जो काम करने के लिए एक दूसरे पर भरोसा करते हैं?

जवाबों:


11

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

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

समस्याएं जो मैं अपने आवेदन के साथ चला रहा था:

  • Git आधारित परिनियोजन - मैं उनसे प्यार करता हूं लेकिन हमारा रेपो 1+ GB है। बल्कि नियमित रूप से पुश करने के लिए बड़ा। इस रेपो में लगभग 40 एप्लिकेशन शामिल हैं (जिन्हें वास्तव में विभाजित किया जाना चाहिए) लेकिन इसमें कुछ समय लगेगा। किसी भी प्रकार के पैकेज को अपलोड करने से काम चल सकता है लेकिन हमारे अधिकांश एप्लिकेशन इसे पैकेज में बनाने के लिए बड़ी मात्रा में काम करेंगे।

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

अपने मूल्यांकन में मैंने OpsWorks और CloudFormation को भी शामिल किया। इन अनुप्रयोगों के लिए मौजूदा स्वचालन कैसे काम कर रहा था, OpsWorks के समान एकीकरण के मुद्दे हैं। CloudFormation ने कुछ अधिक नहीं किया जो कुछ पायथन स्क्रिप्ट और शेफ हमारे लिए पहले से ही देखभाल कर रहे थे।

मैं कुछ द्वारा प्रदान की स्वचालन के साथ बजाय एडब्ल्यूएस Autoscaling समूहों का उपयोग करने को चुनने को बंद कर एस्गर्ड । यह मौजूदा कॉन्फ़िगरेशन / एप्लिकेशन कोड में सबसे छोटा परिवर्तन था और हमें उन लाभों के साथ प्रदान किया गया था जिन्हें हम AWS API के माध्यम से उपलब्ध कई सर्वरों के सरल प्रबंधन के लिए देख रहे थे।

आपके आवेदन पर इलास्टिक बीनस्टॉक द्वारा लगाए गए प्रतिबंध बहुत मददगार हैं। आपको यह सुनिश्चित करना होगा कि आपका एप्लिकेशन ज्यादातर स्टेटलेस है, एक सेवा के लिए एक समापन बिंदु प्रदान करता है, और राज्य के लिए अन्य सेवाओं पर निर्भर करता है। यदि आप पुन: प्रयोज्य स्टैंड-अलोन सेवाओं को बनाने की कोशिश कर रहे हैं जो कि बीनस्टॉक में कई अनुप्रयोग एक शानदार शुरुआत है।

यदि / जब आप अधिक कॉन्फ़िगरेशन चाहते हैं तो OpsWorks एक बेहतरीन अगला कदम है। पूर्वनिर्धारित भूमिकाओं को संक्रमण को शुरू करना आसान बनाना चाहिए और यह कई सर्वरों के समन्वय में मदद करने के लिए शेफ के चारों ओर एक स्वचालन ढांचा प्रदान करता है।


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

0

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

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