शेफ कुकबुक संस्करणों को नियंत्रण में रखने के लिए सर्वश्रेष्ठ रणनीति


10

मैं बावर्ची रसोई की किताबों के संस्करण प्रबंधन के बारे में विचारों की तलाश कर रहा हूं। मुझे पता है कि आप पर्यावरण में विशिष्ट संस्करणों को पिन करते हैं, लेकिन मुझे यकीन नहीं है कि इसके बारे में कैसे जाना जाए।

हम लाइब्रेरियन-शेफ का उपयोग करते हैं जो कि कुकबुक फोल्डर में 3 पार्टी कम्युनिटी बुक्स स्थापित करता है। हम उन पुस्तकों को कभी नहीं छूते हैं और समय-समय पर हाल के संस्करणों में अपडेट करते हैं।

हमारे पास हमारी कस्टम साइट-विशिष्ट कुकबुक हैं, जहां से हम समुदाय वाले ( include_recipe) शामिल हैं।

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

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

इस समय मैं जो एकमात्र समाधान देख सकता हूं, वह यह है कि हम हर एक रसोई की क्रिया को निर्दिष्ट करें जिसमें हम पर्यावरण कॉन्फ़िगरेशन में उपयोग करते हैं, जिसमें समुदाय और कस्टम शामिल हैं। लेकिन फिर मुझे प्रत्येक कुकबुक से गुजरना होगा और उन संस्करणों का पता लगाना होगा।

हम समय-समय पर लाइब्रेरियन-शेफ अपडेट भी करते हैं और मुझे लगता है कि समय बदलने पर संस्करणों को ट्रैक करना मुश्किल हो सकता है और समय आने पर एनवायरमेंट में अपडेट करना न भूलें।

कृपया, अपने अनुभव और सर्वोत्तम अभ्यासों को साझा करें। मुझे यकीन है कि यह अन्य लोगों के लिए सुपर उपयोगी होगा।

जवाबों:


11

यह लंबे समय से नहीं था जब मैंने बयाना में शेफ का उपयोग करना शुरू किया था कि मैं इन समान मुद्दों के खिलाफ आ रहा था। मुझे केवल कुछ समझ में आया जब मैंने चार काम करना शुरू किया। ध्यान दें कि ये बावर्ची समुदाय के कुछ लोगों द्वारा "सर्वोत्तम प्रथाओं" को नहीं माना जा सकता है। बहरहाल, यह है कि मैं अपनी दुनिया में पवित्रता, पुनरावृत्ति और आदेश कैसे लाया।

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

आशा है कि यह किसी की मदद करता है!

- अपडेट करें -

लगभग तीन साल बाद, ये सिद्धांत मेरे लिए मददगार बने हुए हैं। लेकिन मैं सलाह का एक और टुकड़ा जोड़ दूंगा, और यह वास्तव में उन्हीं कारणों से है जो मैंने शेफ के ऊपर शेफ-सोलो को पसंद किया था।

  1. USE ANSIBLE INSTEAD

3

2 समस्याएं हैं:

  1. विभिन्न पर्यावरणीय वस्तुओं में कुकबुक संस्करण का प्रबंधन करें
  2. नोड run_list में नुस्खा संस्करण का प्रबंधन करें ।

लेख आवश्यक रसोई की किताबों के संस्करणों कीरसोई की किताब के संस्करणों के लिए सबसे अच्छा संदर्भ है। # 1 के अनुसार, आप सही हैं क्योंकि अलग-अलग कॉन्फ़िगरेशन सेट परोसने के लिए कुकबुक के विभिन्न संस्करण को प्रबंधित करना एक कठिन काम है, विशेष रूप से इसे कुकबुक निर्भरता के साथ मिलाया जाता है, जहां कुकबुक साइट से अधिकांश रसोई की किताब इस काम को अच्छी तरह से नहीं करती है। तो कॉन्फ़िगरेशन टूट सकता है। और यदि आपने किसी घटक के रनटाइम व्यवहार का परीक्षण करके संस्करणों का प्रबंधन नहीं किया है, तो यह टूट जाता है। तो यह एक बुरा विचार है कि आप पर्यावरण वस्तु में संस्करण संख्या निर्दिष्ट किए बिना रसोई की किताब अपलोड करें। तो पर्यावरण ऑब्जेक्ट में रसोई की किताब के संस्करणों का प्रबंधन करें, और किसी भी नई रसोई की किताब के संस्करण को बढ़ावा देने पर सावधानीपूर्वक परीक्षण करें। मैं आमतौर पर SCM में पर्यावरण वस्तु का प्रबंधन करता हूं और स्वचालित नौकरी के माध्यम से शेफ सर्वर पर अपलोड नहीं करता हूं जब तक कि परिवर्तित रसोई की किताब अन्य मौजूदा घटक के साथ अच्छी तरह से काम नहीं कर सकती।

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

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