क्यों लोग CloudInit का उपयोग करने के बजाय Amazon Cloud Formation के साथ कठपुतली / बावर्ची का उपयोग करते हैं?


84

हम AMI EC2 उदाहरणों का उपयोग करने की योजना बना रहे हैं जो "प्री-बेक्ड" नहीं हैं। यानी जब वे काट दिए जाते हैं, तो वे AWS लाइनक्स के नंगे इंस्टाल होते हैं। हमारी बूटस्ट्रैप प्रक्रिया विभिन्न संस्थापनों में खींचेगी, जिनकी हमें आवश्यकता है जैसे कि अजगर, टॉमकैट। हम 3 उदाहरणों की न्यूनतम और अधिकतम 8 होंगे।

इन आवश्यकताओं को देखते हुए, Amazon Cloud Formation (CloudInit) का उपयोग करने के बजाय Puppet / Chef का उपयोग करना उपयोगी होगा?

सबसे अच्छा मैं देख सकता हूं कि अगर हमने कठपुतली का इस्तेमाल किया है, तो हमारे पास घोषणात्मक प्रोग्रामिंग होगी जो यह देखने के लिए ऑडिट करना आसान है कि एक स्क्रिप्ट में क्या हो रहा है। इसके अलावा CloudInit में 16k स्क्रिप्ट का आकार सीमा है जो हम में चला सकते हैं या नहीं।

क्या किसी ने CloudInit से कठपुतली या रसोइये के लिए एक विशेष कारण से स्थानांतरित किया है जो वे मेरे प्रश्न के उत्तर में यहां प्रदान कर सकते हैं?


2
कुछ लोग (मेरे जैसे) CloudFormation के साथ सरल उपयोगकर्ता-डेटा स्क्रिप्ट (क्लाउड-इनिट द्वारा समर्थित) का उपयोग करते हैं। लंबी लिपियों को S3 से डाउनलोड किया जा सकता है और प्रारंभिक उपयोगकर्ता-डेटा स्क्रिप्ट द्वारा चलाया जा सकता है।
एरिक हैमंड

क्लाउड-इनिट अज्ञेयवादी है, और कई क्लाउड प्रदाता इसका उपयोग करते हैं। यह AWS, google क्लाउड प्लेटफॉर्म और Microsoft Azure पर चल सकता है। ( Cloud-init.io ) जबकि, AWS :: CloudFormation :: Init अज्ञेय नहीं है। यह अमेज़न विशिष्ट है।
जॉर्डन स्टीवर्ट

जवाबों:


83

क्या CloudInit पर कोई फायदा है? हाँ, बिल्कुल, उनमें से कई!

ज़रूर, आप एक सर्वर को प्रोविज़न करने के लिए CloudInit स्क्रिप्ट को एक बार ऊपर से नीचे चला सकते हैं। लेकिन क्या होता है जब आपको कॉन्फ़िगरेशन फ़ाइल बदलने, उपयोगकर्ता जोड़ने, पैकेज अपडेट करने या नया पैकेज स्थापित करने की आवश्यकता होती है? आप सर्वर में लॉगिंग करेंगे या ऐसा करने के लिए स्क्रिप्ट लिखेंगे, और अनिवार्य रूप से सर्वरों की एक गंभीर स्थिति होगी।

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

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

जब आपका एप्लिकेशन स्टैक बदलता है और आप RabbitMQ, या Jetty, या एक नए RDBMS का उपयोग करना शुरू करते हैं, तो आप दसियों या हजारों सर्वरों में परिवर्तनों का आसानी से परीक्षण और तैनाती कर सकते हैं।

कॉन्फ़िगरेशन प्रबंधन सॉफ़्टवेयर का उपयोग करने के कई अन्य कारण हैं जैसे बैक एंड रिपोर्टिंग, ऑडिटिंग और सुरक्षा अनुपालन।


14
निर्भर करता है। लंबे समय तक चलने वाली सेवाओं के लिए (आमतौर पर AD, DBs), कॉन्फ़िगरेशन प्रबंधन की आवश्यकता हो सकती है। लेकिन अन्य बदली दूर सर्वरों के लिए, वास्तव में नहीं; वेब सर्वर ASG के तहत प्रबंधित किया गया, हडूप या इलास्टिक्सखोज में क्लस्टर नोड्स। अगर मुझे कॉन्फ़िगरेशन बदलना था, तो मैं बस सर्वर को फेंक दूंगा और एक नया बूट करूंगा।
स्लीपर स्मिथ

64

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

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

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


1
@ U0001: वीडियो लिंक तय किया
क्रिस्टोफर

5

सर्वरों को फेंकने के लिए, यह कहना कि एक ऑटोस्कोलिंग समूह के पीछे दौड़ना मैं कहूंगा कि क्लाउडिनिट शायद पर्याप्त है। linux खोल स्क्रिप्ट या विंडोज़ पॉवर्सशेल स्क्रिप्ट को ट्रिक करना चाहिए।

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


मैं पूरी तरह से सहमत। कठपुतली और बावर्ची जटिल हैं और यदि आप एक सर्वर को केवल हटाने और एक नया लाकर बदल सकते हैं - तो मैं वास्तव में उनका उपयोग करने को हतोत्साहित करूंगा। कुछ परिदृश्य हैं कठपुतली / महाराज महान हैं, लेकिन आपको प्रत्येक परिदृश्य में उपयोग करने की अतिरिक्त जटिलता का वजन करने की आवश्यकता है।
10

0

मेरे अनुभव में, ऐसी सरल चीजें हैं जो आसानी से आउट-ऑफ-द-बॉक्स GUI टूल के साथ की जाती हैं, जो AWS प्रदान करता है, लेकिन जैसे-जैसे आप अधिक जटिल चीजों में शामिल होते हैं, आपको पता चलने लगता है कि आपके साथ क्या कर सकते हैं इसकी सीमाएं हैं उनके उपकरण।

उस बिंदु पर, आप या तो रुक सकते हैं, या आप अन्य उपकरण (जैसे बावर्ची या कठपुतली) पा सकते हैं जो आपको और अधिक जटिल लक्ष्यों को प्राप्त करने में मदद कर सकते हैं और साथ ही साथ सरल चीजें भी कर सकते हैं।

आपकी पंसद।

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